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 Local\Temp, 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:\Windows\Prefetch. 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 Local\Temp, 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:\Windows\Prefetch. 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:\triage-%1.html
wmic /node:%1 startup list full /format:htable >> c:\triage-%1.html
wmic /node:%1 process get description,processid,parentprocessid,commandline /format:htable >> c:\triage-%1.html
wmic /node:%1 service get name,processid,startmode,state,status,pathname /format:htable >> c:\triage-%1.html
wmic /node:%1 job list full /format:htable >> c:\triage-%1.html
parte 2 :)
ResponderEliminarhttp://909research.com/find-a-windows-infection-quickly-part-2-with-tools/
con herramientas ya se nos abre el abanico enormente.. pero sí, sobretodo process hacker indispensable
ResponderEliminarD:\>wmic /node: computersystem get model,name,username,domain /format:htable 1>c:\triage-.html
ResponderEliminarget - Alias no encontrado.
D:\>wmic /node: startup list full /format:htable 1>>c:\triage-.html
list - Alias no encontrado.
D:\>wmic /node: process get description,processid,parentprocessid,commandline /format:htable 1>>c:\triage-.html
get - Alias no encontrado.
D:\>wmic /node: service get name,processid,startmode,state,status,pathname /format:htable 1>>c:\triage-.html
get - Alias no encontrado.
D:\>wmic /node: job list full /format:htable 1>>c:\triage-.html
list - Alias no encontrado.
Te falta indicar el nodo (hostname o dirección IP). Por ejemplo:
Eliminarwmic /node:127.0.0.1 computersystem get model,name,username,domain
Formato XSL no válido (o) nombre de archivo
Eliminarwmic /node:127.0.0.1 job list full /format:htable >> c:\test.html
Eliminarsalida (ese 1 que pone en la salida??)
wmic /node:127.0.0.1 job list full /format:htable 1>>c:\test.html
No hay instancias disponibles.
Formato XSL no válido (o) nombre de archivo.