lunes, 12 de octubre de 2009

Crónica de una infección, día 2

Continuando por donde lo dejé llega el momento de la infección, autoinfección o como quiera que deba llamársele, que al final el resultado va a ser el mismo. Ya tengo todo lo que necesito en el directorio C:\analisis, incluyendo el programa fileverifier++ (C:\analisis\fv), regshot (C:\analisis\regshot) y las utilidades de sysinternals que he escogido para estas labores (C:\analisis\sysinternals).

Dentro de ese mismo directorio además tengo un fichero con las sumas md5 para el sistema "limpio" (C:\analisis\fv\baseline.01.txt) y una instantánea del registro, también en las mismas condiciones (C:\analisis\baseline.regshot.01.hiv).

Por último, y también en esa ubicación, he extraido el contenido del fichero descargado de offensivecomputing, con nombre malware. Así que vamos con la acción. Ah, casi olvido mencionar que, cuando terminé la instalación de Windows en la máquina virtual agregué las VMware-tools. Tendré que tener más cuidado a partir de ahora e intentar registrar detalladamente cada uno de mis pasos, mejor que sobre a que falte.

Comienza la batalla

'Colgando la herreruza en mano diestra y asida toledana en la siniestra enfilo al sarraceno plantado en el centro de la arena doblando el gesto en mala gana, pués tanto es al matar ser hábil con las armas como asustar con traza y semblante'.

No he podido evitarlo y he dejado volar mi prosa en forma de homenaje, a fín de cuentas éste
es mi diario y hago con él lo que me place. Pero mejor vuelvo a la tierra y continúo con lo que me trae liado.

No puedo evitar sentir cierto nerviosismo, y sin querer mi mente vuela al pasado, cuando todo el PC consituía para mí un insondable misterio; pero no tan lejano, apenas unos 10 años. En aquel entonces, y atraido de rebote por el mundo de la informática por cuestiones que no vienen ahora al caso, me dedicaba a saturar mi conexión a internet descargando cualquier manual que incluyera la palabra hacker, proviniera de fuentes de dudosa reputación o destacara multitud de calaveras estampadas sobre fondos negros, negros como los supuestos y arcanos conocimientos que pretendían desvelar.

El día en cuestión estrenaba mi flamante antivirus, y tras unos pocos clics guiado por un asistente de instalación finalizaba la primera actualización de la base de datos de firmas. En ese momento el miedo se apoderaba de mí cuando una onerosa advertencia clamaba numerosas infecciones, destacando entre ellas una variante del famosos CIH, del cual todavía conservo una copia en un diskette de 3,5. Y mírame ahora, provocando lo que entonces parecía el fín de mis sueños informáticos.

Inicio el proceso y para ello lanzo antes procmon (aka Process Monitor), el cual se pone de inmediato a registrar cualquier evento que se produzca en el sistema. Inicio también Wireshark y accedo al menú Capture, Interfaces... seleccionando como tal "VMware Accelerated AMD PCNet Adapter (Microsoft's Packet Scheduler) 192.168.198.133" y pulsando a continuación el botón Start para comenzar con el registro de conexiones. Temo que de momento voy a prescindir del resto de aplicaciones dado que tengo la intuición de que con lo anterior tendré más que suficiente.

La instalación del bicho comienza solicitando el idioma, donde dejo la opción predeterminada a Español. Siguiente, acepto las condiciones de licencia, dejo el directorio de instalación por defecto continuando con Instalar para realizar el proceso que, tras pulsar Finalizar, muestra un mensaje de felicitación indicando que ya podemos utilizar las características de MailSkinner y abre el navegador predeterminado llevándome a la web de los desarrolladores, cuyo dominio parece no estar actualmente activo.

Regreso al intefaz de Wireshark, menú Capture y detengo el registro de conexiones con la opción Stop, tras lo que guardo el resultado con File, Save As... en el directorio C:\analisis y nombre malware.pcap, cerrando por último la aplicación.

Procedo de forma similar ahora con procmon y para ello, en el menú File, desmarco Capture Events lo que detendrá el registro de eventos. Para guardar los resultados, también el menú File escojo Save y en el cuadro de diálogo marco All events y Native Process Monitor Format (PML) utilizando como destino el directorio C:\analisis\sysinternals.

Ahora, y seguro de tener ya el bicho suelto procedo a obtener las sumas md5 de todos los ficheros del sistema. Utilizo fileverifier++, como antes, ejecutándolo en la forma siguiente:

C:\analisis\fv>fvc -a Md5 -f MD5SUM -c -r C:\ > baseline.02.txt
Error: Error opening file "C:\\pagefile.sys"
Error: Error opening file "C:\\Documents and Settings\Administrador\NTUSER.DAT"
Error: Error opening file "C:\\Documents and
Settings\Administrador\ntuser.dat.LOG"
Error: Error opening file "C:\\Documents and
Settings\Administrador\Configuracion local\Datos de
programa\Microsoft\Windows\UsrClass.dat"
Error: Error opening file "C:\\Documents and
Settings\Administrador\Configuracion local\Datos de
programa\Microsoft\Windows\UsrClass.dat.LOG"
Error: Error opening file "C:\\Documents and
Settings\Administrador\Configuracion local\Temp\Perflib_Perfdata_13c.dat"
Error: Error opening file "C:\\Documents and Settings\LocalService\NTUSER.DAT"
Error: Error opening file "C:\\Documents and
Settings\LocalService\ntuser.dat.LOG"
Error: Error opening file "C:\\Documents and
Settings\LocalService\Configuracion local\Datos de
programa\Microsoft\Windows\UsrClass.dat"
Error: Error opening file "C:\\Documents and
Settings\LocalService\Configuracion local\Datos de
programa\Microsoft\Windows\UsrClass.dat.LOG"
Error: Error opening file "C:\\Documents and
Settings\NetworkService\NTUSER.DAT"
Error: Error opening file "C:\\Documents and
Settings\NetworkService\ntuser.dat.LOG"
Error: Error opening file "C:\\Documents and
Settings\NetworkService\Configuracion local\Datos de
programa\Microsoft\Windows\UsrClass.dat"
Error: Error opening file "C:\\Documents and
Settings\NetworkService\Configuracion local\Datos de
programa\Microsoft\Windows\UsrClass.dat.LOG"
Error: Error opening file "C:\\WINDOWS\system32\config\default"
Error: Error opening file "C:\\WINDOWS\system32\config\default.LOG"
Error: Error opening file "C:\\WINDOWS\system32\config\SAM"
Error: Error opening file "C:\\WINDOWS\system32\config\SAM.LOG"
Error: Error opening file "C:\\WINDOWS\system32\config\SECURITY"
Error: Error opening file "C:\\WINDOWS\system32\config\SECURITY.LOG"
Error: Error opening file "C:\\WINDOWS\system32\config\software"
Error: Error opening file "C:\\WINDOWS\system32\config\software.LOG"
Error: Error opening file "C:\\WINDOWS\system32\config\system"
Error: Error opening file "C:\\WINDOWS\system32\config\system.LOG"
Error: Error opening file "C:\\WINDOWS\Temp\Perflib_Perfdata_7c8.dat"

Aparecen los mismos errores que para la captura inicial, así que parece que no voy del todo mal. El siguiente paso es el estado del registro por lo que lanzo regshot y, como antes, incluyo las siguientes opciones:
  • En Scan dir, indico C:
  • En Output path C:\analisis
  • En Add comment into the log esta vez lo dejo vacio
Continúo con 1st shot, Shot and Save... y como directorio y nombre del fichero indico:
C:\analisis\baseline.regshot.02.hiv

Creo que ya lo tengo todo, así que detengo la máquina virtual mediante el interfaz de vmware server y, desde el sistema operativo anfitrión, procedo a recuperar los ficheros de registro. Esto no resulta difícil dado que tengo instalado el Virtual Disk Development Kit y, lo más
importante para que funcione correctamente en Windows Vista, deshabilitado UAC.

El procedimiento para montar el disco virtual asignándole la letra de unidad Z: es tal cual sigue:
C:\Users\javi>cd \

C:\>cd "%ProgramFiles%\VMware\VMware Virtual Disk Development Kit\bin"
 
C:\Program Files\VMware\VMware Virtual Disk Development Kit\bin>vmware-mount.exe
Z: "D:\Maquinas Virtuales\Windows XP SP3\Windows XP SP3-000001.vmdk"
C:\Program Files\VMware\VMware Virtual Disk Development Kit\bin>vmware-mount.exe
 
Z:\ => D:\Maquinas Virtuales\Windows XP SP3\Windows XP SP3-000001.vmdk

Y ahora utilizando mi socorrida gui, entendiendo por tal el Explorador de archivos de Windows Vista, recupero los ficheros adecuados, es decir:
C:\analisis\fv\baseline.01.txt
C:\analisis\fv\baseline.02.txt
C:\analisis\baseline.regshot.01.hiv
C:\analisis\baseline.regshot.02.hiv

Como de momento no necesito más ficheros mejor desmonto el disco virtual:
C:\Program Files\VMware\VMware Virtual Disk Development Kit\bin>vmware-mount.exe
/d Z:

y continúo la campaña...

Descubriendo a los infiltrados

Comenzaré identificando los ficheros creados por el bicho, y para ello se me ocurre comparar las sumas md5 para los resultados de fileverifier++. Dado que existe un estado inicial y un estado posterior a la infección debería poder detectarlos fácilmente. Para esta tarea tengo dos opciones, una de línea de comandos y otra en modo gráfico.

La opción de línea de comandos pasa por utilizar fc, aka file compare, tal como sigue:
C:\>fc /L /W baseline.01.txt baseline.02.txt > diferencias.txt

Si abro el fichero resultante observo como las diferencias aparecen por bloques, indicando las líneas que no coinciden precedidas del nombre del fichero en el que se encuentran. Pero para hacerlo un poco mas visual voy a utilizar ahora windiff.

El binario podemos encontrarlo junto a las herramientas de soporte incluidas en el CD de instalación a partir de Windows 2000 y hasta Windows XP y la versión para servidores, Windows 2003. Para los más vagos o, que como yo, están utilizando Windows Vista, podremos descargarla desde aquí.

Una vez desempaquetado y ejecutado, menú File, Compare Files... y abro primero baseline.01.txt y luego baseline.02.txt. Aparece un mensaje indicando que, efectivamente, los ficheros son diferentes. Para ver estas diferencias pulso Expand, y para limpiar un poco la salida facilitando así su análisis menú Options y desmarco Show Identical Lines y en el menú, View Picture.

Las líneas correspondientes al primer fichero van precedidas del simbolo <! y las del segundo por !>. Para poder tratar los resultados mediante el menú Edit, Edit Composite File se abrirá el editor de textos establecido por defecto con el contenido mostrado por la aplicación. Una vez eliminada la paja descubro los ficheros generados como resultado de la instalación del malware:
 !> 1a8e612eaf5fd2c0cef092f13c0d6c03 ?Md5*C:\\Archivos de programa\
MailSkinner\anim_0.gif
!> 84068d65550d997ad34de5370802ee43 ?Md5*C:\\Archivos de programa\MailSkinner
\anim_help.gif
!> 8c36ac4555d727a99d99ddfe3b1bf085 ?Md5*C:\\Archivos de programa\MailSkinner
\MailSkinner.exe
!> d23a7ac46be84f97dd212b1828af8dbf ?Md5*C:\\Archivos de programa\MailSkinner
\OLSkinner.dll
!> 37c4c38362eaef9fae307086d12bca5f ?Md5*C:\\Archivos de programa\MailSkinner
\uninst.exe
!> 0e701d85faf33eebbfc3b31adabeceb1 ?Md5*C:\\WINDOWS\msskinner\msbackup.dat
!> 80bc32dd690bdfc7a0e73ff608ea095d ?Md5*C:\\WINDOWS\system32\uwyoq.dat
!> 9b900c774f0ea4d52b5ad1332cd5fe0a ?Md5*C:\\WINDOWS\system32\uwyoq.exe
!> 798831331633f45a88915bf1a7018366 ?Md5*C:\\WINDOWS\system32\uwyoq_nav.dat
!> 2a71f842809fc4294ba35a1fb0386822 ?Md5*C:\\WINDOWS\system32\uwyoq_navps.dat

Y guardo lo anterior, que seguro me servirá para posteriores consultas, o quizás para comprobar que voy por buén camino, quien sabe.

Ahora analizaré las diferencias detectadas en las dos capturas del registro de Windows. Y para ello abro regshot, botón 1st shot, Load... y cargo el fichero baseline.regshot.01.hiv. Luego botón 2nd shot, Load... y cargo el fichero baseline.regshot.02.hiv. Por último pulso el botón cOmpare y como resultado se abrirá un txt en el bloc de notas con las modificaciones sufridas en el registro tras la instalación del malware. Nuevamente, una vez eliminada la paja me quedo con:
HKLM\SOFTWARE\Classes\CLSID\{180B4EE9-1795-4429-9651-F17A6515726D}\
VersionIndependentProgID\: "OutlookAddin.Addin"
HKLM\SOFTWARE\Classes\CLSID\{180B4EE9-1795-4429-9651-F17A6515726D}\
TypeLib\: "{5BAD7FAE-81F0-4439-8C1A-3E8907998047}"
HKLM\SOFTWARE\Classes\CLSID\{180B4EE9-1795-4429-9651-F17A6515726D}\
ProgID\: "OutlookAddin.Addin.1"
HKLM\SOFTWARE\Classes\CLSID\{180B4EE9-1795-4429-9651-F17A6515726D}\
InprocServer32\: "C:\Archivos de programa\MailSkinner\OLSkinner.dll"
HKLM\SOFTWARE\Classes\CLSID\{180B4EE9-1795-4429-9651-F17A6515726D}\
InprocServer32\ThreadingModel: "Apartment"
HKLM\SOFTWARE\Classes\CLSID\{180B4EE9-1795-4429-9651-F17A6515726D}\
: "Addin Class"
HKLM\SOFTWARE\Classes\Interface\{0A089E22-5736-4092-B3F8-3F0D5F345482}\
: "IEGEmailSkinnerAddin"
HKLM\SOFTWARE\Classes\TypeLib\{5BAD7FAE-81F0-4439-8C1A-3E8907998047}\
1.0\0\win32\: "C:\Archivos de programa\MailSkinner\OLSkinner.dll"
HKLM\SOFTWARE\Classes\TypeLib\{5BAD7FAE-81F0-4439-8C1A-3E8907998047}\
1.0\HELPDIR\: "C:\Archivos de programa\MailSkinner\"
HKLM\SOFTWARE\Classes\TypeLib\{5BAD7FAE-81F0-4439-8C1A-3E8907998047}\
1.0\FLAGS\: "0"
HKLM\SOFTWARE\Classes\TypeLib\{5BAD7FAE-81F0-4439-8C1A-3E8907998047}\
1.0\: "OutlookAddin 1.0 Type Library"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MailSkinner\
DisplayName: "MailSkinner"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MailSkinner\
UninstallString: "C:\Archivos de programa\MailSkinner\uninst.exe"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MailSkinner\
UninstallString2: ""C:\Archivos de programa\MailSkinner\uninst.exe" /S"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MailSkinner\
DisplayIcon: "C:\Archivos de programa\MailSkinner\MailSkinner.exe"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MailSkinner\
DisplayVersion: "1.0"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MailSkinner\
URLInfoAbout: "http://www.mailskinner.com"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MailSkinner\
Publisher: "OOO «Favorit»"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\uwyoq\
DisplayName: "Favorit"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\uwyoq\
UninstallString: ""c:\windows\system32\uwyoq.exe" -uninstall"
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\uwyoq\
NoRemove: 0x00000000
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\uwyoq\
NoModify: 0x00000001
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\uwyoq\
NoRepair: 0x00000001
 
HKLM\SOFTWARE\MailSkinner\grpid: "37"
HKLM\SOFTWARE\MailSkinner\InstallOpt1: "1"
HKLM\SOFTWARE\MailSkinner\installdt: "20090127"
HKLM\SOFTWARE\MailSkinner\Installer Language: "1034"
HKLM\SOFTWARE\MailSkinner\nums: ""
HKLM\SOFTWARE\MailSkinner\bnrid: ""
 
HKU\S-1-5-21-1078081533-2146883321-1417001333-500\Software\Microsoft\
Windows\CurrentVersion\Run\MailSkinner: "c:\archivos de programa\
mailskinner\mailskinner.exe"
HKU\S-1-5-21-1078081533-2146883321-1417001333-500\Software\Microsoft\
Windows\CurrentVersion\Run\uwyoq: ""c:\windows\system32\uwyoq.exe" uwyoq"
HKU\S-1-5-21-1078081533-2146883321-1417001333-500\Software\
MailSkinner\grpid: "37"
HKU\S-1-5-21-1078081533-2146883321-1417001333-500\Software\
MailSkinner\InstallOpt1: "1"
HKU\S-1-5-21-1078081533-2146883321-1417001333-500\Software\
MailSkinner\installdt: "20090127"
HKU\S-1-5-21-1078081533-2146883321-1417001333-500\Software\
MailSkinner\UrlMV: "http://www.mailskinner.com/?hitmail=true&grpid=37"

Como curiosidad indicar que, en base a las modificaciones sufridas por el registro de Windows, en el resultado final obtenido de regshot aparece al final una lista con los nuevos archivos generados en el sistema.

Y con todas estas pistas, y mucha, mucha paciencia mañana seguiré analizando la actividad sufrida en el sistema durante el proceso de infección, comprobando detalladamente el log de process monitor.

Crónica de una infección, día 1
Crónica de una infección, día 3

3 comentarios:

manuonda dijo...

Hola que tal muy buen post queria preguntarte donde puedo bajar imagenes sobre dumpeos de memoria con malware para poder realizar auditorias con volatility
Y si pudiste resolver sobre ptk en windows sobre la instalacion lo pudiste ver
Bueno muchas graxias por todo y esperando el siguiente tutorial
Nos vemos la proxcima

neofito dijo...

Hola

Aqui puedes encontrar algunos.

Respecto al tema de PTK no he tenido tiempo, lo siento.

Saludos

manuonda dijo...

Muchas grax neofito grax y esta muy buenos los tutoriales que realizas sobre analisis espero que algun dia hagas algo de IDA PRO jeje
Esperando el 3er tutorial que te debe estar tomando mucho tiempo
Bueno muchas grax y suerte en este nuevo tutorial