jueves, 12 de noviembre de 2009

Localiza evidencias de Rootkits

Los rootkits son procesos que tienen la capacidad de ocultarse al usuario mediante varias técnicas. Una de ellas es mediante la inyección de código malicioso desde un proceso maligno a un proceso víctima.

Una de las funciones que utiliza el malware para realizar esta inyección es CreateRemoteThread, por tanto, conocer qué archivos ejecutables tienes en tu Windows que utilicen esta función puede sacar a la luz archivos sospechosos.

Mediante la herramienta Filealyzer podrás ver dentro de un archivo ejecutable, entre otras cosas interesantes, la tabla de importación donde aparecerá una lista de funciones que utiliza el archivo ejecutable en cuestión. Pero ¿cómo saber si un archivo ejecutable utiliza la función CreateRemoteThread para fines lícitos o no? Una forma rápida es buscar dentro de los archivos ejecutables de un Windows recién instalado e identificar los que utilizan la función CreateRemoteThread.

Hacer esto con Filealyzer es muy tedioso, así que para automatizar este proceso puedes utilizar la herramienta Strings de Sysinternals, ubicarla en una carpeta del Path (por ejemplo en c:\windows\system32), ir a esa misma ubicación en la línea de comandos y poner:

strings * | findstr CreateRemoteThread > report.txt

De esta forma,
Strings buscará CreateRemoteThread en todas las cadenas de texto de todos los archivos de c:\windows\system32 y pondrá el resultado en el archivo report.txt.

Observando el report.txt en un Windows XP SP3 recién instalado con las Windows Update al día, los archivos ubicados en c:\windows\system32 que utilizan la función CreateRemoteThread son:

csrsrv.dll
dbgeng.dll
kernel32.dll
safrslv.dll
usrcoina.dll
vdmdbg.dll
winlogon.exe
winsrv.dll

Todos ellos son archivos ejecutables de Windows que se suponen lícitos, pues al sistema, se supone que no le ha dado tiempo de infectarse con malware. Por tanto, si generas un report.txt de la manera mencionada en tu Windows XP SP3 y observas que además de los archivos listados hay alguno más, mosquéate, porque los que no aparezcan en esta lista utilizan la función CreateRemoteThread y no es de Windows.

No hay comentarios: