Cómo comprobar si un equipo Windows está infectado rápidamente y sin herramientas adicionales
Recientemente le�a una entrada de un instructor de SANS con amplia experiencia en respuesta ante incidentes que propone una breve lista de acciones para determinar r�pidamente si un equipo Windows est� infectado, sin necesidad de instalar un software de terceros, simplemente desde la linea de comandos. Obviamente y como dice su autor no es un m�todo infalible pero si es verdad que ayudar� a detectar muchas infecciones de una manera r�pida y eficiente.
Elementos de inicio mediante WMIC
Windows incorpora una herramienta muy potente que seguro que conoc�is: WMIC que, entre otras cosas, puede mostrar los elementos que se ejecutan al inicio para una posterior investigaci�n. S�lo tienes que abrir la consola y escribir wmic startup list full.
Como se muestra en el ejemplo es f�cil identificar un programa que se ejecuta en el directorio LocalTemp, para luego subir el hash sospechoso a malwr.com o VirusTotal.

Cach� DNS
Ahora si escribes ipconfig /displaydns se mostrar�n los dominios que se han resuelto recientemente. Si ves algo extra�o es recomendable buscar el nombre de dominio y la IP en VirusTotal o similar para determinar si es malicioso.

Lista de procesos con WMIC
De nuevo usamos WMIC, esta vez con wmic process list full | more o, si quieres una salida m�s compacta, aunque con un comando m�s largo de escribir:
wmic process get description,processid,parentprocessid,commandline /format:csv
Busca cosas que se ejecutan en lugares extra�os o nombres de procesos maliciosos/aleatorios/extra�os.

Lista de servicios con WMIC
Esto puede ser m�s dif�cil si no sabemos lo que estamos viendo, pero es f�cil de comprobar y a menudo el malware todav�a se encuentra f�cilmente por el nombre de la ruta de acceso o exe. El formato es el mismo que otros, o puedes ser m�s espec�fico con la versi�n "get".
wmic service list full | more
o
wmic service get name,processid,startmode,state,status,pathname /format:csv
A continuaci�n se muestra un terminal de ejemplo que muestra s�lo el nombre del servicio y la ruta:

Lista de jobs de WMIC
Con �ste es menos probable encontrar algo porque la mayor parte del malware no utiliza jobs, pero algunos como MPlug lo hacen, y una vez m�s es bastante f�cil de comprobar. Simplemente ejecuta wmic job list full, Probablemente recibas una respuesta del tipo Instance(s) Available lo que significa que no hay tareas programadas.
Prefetch de Windows
Es posible que esta caracter�stica no est� activada si tienes un SSD, pero si lo est�, tendr�s una lista con los �ltimos 128 ejecutables ejecutados (valga la redundancia). Comprueba los nombres de los archivos ".pf" en la carpeta C:WindowsPrefetch. Los nombres de cada archivo .pf se crean a partir del nombre del archivo ejecutable m�s un hash de la ruta donde se ejecut�. Estos archivos tambi�n almacenan el n�mero de ejecuci�n y las fechas en que fueron ejecutados la primera y �ltima vez, aunque extraer esta informaci�n puede requerir herramientas adicionales. Si quieres m�s info de prefetch visita:
http://www.hexacorn.com/blog/2012/06/13/prefetch-hash-calculator-a-hash-lookup-table-xpvistaw7w2k3w2k8/
Netstat
No olvidamos lo b�sico, aunque la info que muestra necesita de cierta b�squeda para descubrir si la IP es de Google o stealyourbanknumber.su. Normalmente ejecuta Netstat -abno y busca tambi�n n�meros de puertos extra�os con conexiones sitios externos, 25, 8080, 6667, etc.
Los par�metros netstat son:
-a Muestra todas las conexiones y puertos a la escucha.
-b Muestra el ejecutable implicado en la creaci�n de cada conexi�n o puerto de escucha.
-n Muestra las direcciones y los n�meros de puerto en forma num�rica.
-o Muestra el ID de proceso propietario asociado a cada conexi�n.
Versi�n en batch
�Qu� tienes que hacer estas comprobaciones de forma rutinaria? Pues lo mejor es hacerse un archivo por lotes y alimentarlo con el argumento de nombre de host. Incluso se puede utilizar a trav�s de una red dando los permisos adecuados en los otros equipos para una f�cil evaluaci�n remota. El siguiente script tiene como salida un informe HTML bastante decente incluyendo adem�s informaci�n sobre el equipo evaluado:
Elementos de inicio mediante WMIC
Windows incorpora una herramienta muy potente que seguro que conoc�is: WMIC que, entre otras cosas, puede mostrar los elementos que se ejecutan al inicio para una posterior investigaci�n. S�lo tienes que abrir la consola y escribir wmic startup list full.
Como se muestra en el ejemplo es f�cil identificar un programa que se ejecuta en el directorio LocalTemp, para luego subir el hash sospechoso a malwr.com o VirusTotal.
Cach� DNS
Ahora si escribes ipconfig /displaydns se mostrar�n los dominios que se han resuelto recientemente. Si ves algo extra�o es recomendable buscar el nombre de dominio y la IP en VirusTotal o similar para determinar si es malicioso.
Lista de procesos con WMIC
De nuevo usamos WMIC, esta vez con wmic process list full | more o, si quieres una salida m�s compacta, aunque con un comando m�s largo de escribir:
wmic process get description,processid,parentprocessid,commandline /format:csv
Busca cosas que se ejecutan en lugares extra�os o nombres de procesos maliciosos/aleatorios/extra�os.
Lista de servicios con WMIC
Esto puede ser m�s dif�cil si no sabemos lo que estamos viendo, pero es f�cil de comprobar y a menudo el malware todav�a se encuentra f�cilmente por el nombre de la ruta de acceso o exe. El formato es el mismo que otros, o puedes ser m�s espec�fico con la versi�n "get".
wmic service list full | more
o
wmic service get name,processid,startmode,state,status,pathname /format:csv
A continuaci�n se muestra un terminal de ejemplo que muestra s�lo el nombre del servicio y la ruta:
Lista de jobs de WMIC
Con �ste es menos probable encontrar algo porque la mayor parte del malware no utiliza jobs, pero algunos como MPlug lo hacen, y una vez m�s es bastante f�cil de comprobar. Simplemente ejecuta wmic job list full, Probablemente recibas una respuesta del tipo Instance(s) Available lo que significa que no hay tareas programadas.
Prefetch de Windows
Es posible que esta caracter�stica no est� activada si tienes un SSD, pero si lo est�, tendr�s una lista con los �ltimos 128 ejecutables ejecutados (valga la redundancia). Comprueba los nombres de los archivos ".pf" en la carpeta C:WindowsPrefetch. Los nombres de cada archivo .pf se crean a partir del nombre del archivo ejecutable m�s un hash de la ruta donde se ejecut�. Estos archivos tambi�n almacenan el n�mero de ejecuci�n y las fechas en que fueron ejecutados la primera y �ltima vez, aunque extraer esta informaci�n puede requerir herramientas adicionales. Si quieres m�s info de prefetch visita:
http://www.hexacorn.com/blog/2012/06/13/prefetch-hash-calculator-a-hash-lookup-table-xpvistaw7w2k3w2k8/
Netstat
No olvidamos lo b�sico, aunque la info que muestra necesita de cierta b�squeda para descubrir si la IP es de Google o stealyourbanknumber.su. Normalmente ejecuta Netstat -abno y busca tambi�n n�meros de puertos extra�os con conexiones sitios externos, 25, 8080, 6667, etc.
Los par�metros netstat son:
-a Muestra todas las conexiones y puertos a la escucha.
-b Muestra el ejecutable implicado en la creaci�n de cada conexi�n o puerto de escucha.
-n Muestra las direcciones y los n�meros de puerto en forma num�rica.
-o Muestra el ID de proceso propietario asociado a cada conexi�n.
Versi�n en batch
�Qu� tienes que hacer estas comprobaciones de forma rutinaria? Pues lo mejor es hacerse un archivo por lotes y alimentarlo con el argumento de nombre de host. Incluso se puede utilizar a trav�s de una red dando los permisos adecuados en los otros equipos para una f�cil evaluaci�n remota. El siguiente script tiene como salida un informe HTML bastante decente incluyendo adem�s informaci�n sobre el equipo evaluado:
wmic /node:%1 computersystem get model,name,username,domain /format:htable > c: riage-%1.html
wmic /node:%1 startup list full /format:htable >> c: riage-%1.html
wmic /node:%1 process get description,processid,parentprocessid,commandline /format:htable >> c: riage-%1.html
wmic /node:%1 service get name,processid,startmode,state,status,pathname /format:htable >> c: riage-%1.html
wmic /node:%1 job list full /format:htable >> c: riage-%1.htmldownload file now