Analizando el volcado con Volatility

Iniciado por Muppet, Enero 07, 2015, 05:14:38 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 07, 2015, 05:14:38 AM Ultima modificación: Enero 07, 2015, 05:20:12 AM por hdbreaker
Analizando el volcado con Volatility


Este post pretende ser una extensión del aporte Análisis Dinámico de Spy-Net, los invito a repasar los antiguos post para no perder el hilo del tema

Análisis Estático Spy-Net:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Análisis Dinámico Spy-Net:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

En este post retomaremos desde el momento en que generamos el volcado de memoria con DumpIT, pero esta vez analizaremos su contenido con Volatility, un framework desarrollado especificamente para el Análisis de Volcados de Memoria, Gracias a [Q]3rv[0] por la recomendación

Este framework nos permitira rapidamente aislar las secciones de memoria de un proceso comprometido para reducir la cantidad de memoria a analizar. Lo que resalta de este framework es que al estar totalmente programado en python permite utilizarlo con la distribución que mas nos guste, en mi caso usare un Ubuntu 14.04 un poco tuneado por mi, ganando estabilidad y teniendo todas las herramientas que me permitirán potenciar el alcance de Volatility

Instalacion de Volatility:

Descargamos la versión mas reciente de Volatility desde la fuente original del proyecto:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Luego lo descomprimimos, nos movemos a su ubicación y ejecutamos:

"sudo python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta install"

Aguardamos la finalización y listo, hora de trabajar con Volatility.

Volatility

Primero: Damos una leida a todo lo que nos ofrece este gran framework: "vol.py -h"


(la verdad es que no me da la pantalla para mostrar toda la ayuda, va a depender de su mano explorar un poco más)

Lo sorprendente de este framework es la cantidad de plugins que posee para extender el alcance del Forense.

Ahora que conocen un poco sobre Volatility, retomemos el Análisis.

Obtenemos un volcado de memoria con DumpIT (mem.raw) tal como vimos en el post anterior, una vez listo lo copiamos a linux, y procemos a analizarlo.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -f mem.raw imageinfo (esto nos devuelve el profile correspondiente a nuestro volcado)


Una vez indentificado el profile en nuestro caso: Win7SP0x86 pasaremos a recuperar los procesos que se encontraban en ejecución en ese momento:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -f mem.raw --profile=Win7SP0x86 pslist


Al final de la imagen podemos apreciar explorer.exe, el cual es el proceso que identificamos realizaba la conexión al host remoto.
A este proceso lo detectamos con CurrPorts, pero podemos identificarlo mucho mas rápido y sin necesidad de instalar un programa externo
ejecutando el comando: "netstat -b" (Gracias Turka por el TIP)


(Como se puede apreciar el host/ip, puerto y proceso que realiza la conexión)

Con volatility aislaremos todas las secciones de memoria que pertenecen a explorer.exe generando un Subvolcado de la memoria, para eso nos ayudaremos del plugin: memdump 
Para esto necesitaremos el PID de explorer.exe que nos arrojo pslist (1344)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -f mem.raw --profile=Win7SP0x86 -p 1344 memdump -D ./ (Esto nos generar un Subvolcado PID.dmp)


Con esto hemos reducido el peso de 268 Mb a 203 Mb (esto significa, muchisimas lineas menos que analizar :) )


Pero recordemos que al final, en este caso, solo analizamos las cadenas de texto dentro de la memoria, por lo cual en este subvolcado todavía hay mucho codigo binario que no nos interesa, para reducirlo aun más nos ayudaremos de una poderosa herramienta de linux, que ya muchos deben conocer: strings

strings 1344.dmp >> explorer.txt


El resultado es sorprendente son solo 6 Mb de Strings para analizar, y no solo eso... con la ayuda de grep podemos obtener resultados filtrados a la velocidad de un chasquido.

Memorandum:

¿Que buscar?
no-ip, ddns, explorer.exe, update.exe, Juego.exe, Claves de Registros, etc


La verdad es con la primer busqueda nos va demaciado bien:

cat explorer.txt | grep no-ip


Conclusión:

Con el Framework Volatility hemos reducido el proceso de busqueda de información a menos de 5 minutos (realmente me tomo 5 minutos de reloj encontrar esta información) cuando analizando todo el volcado desde un editor hexadecimal tariamos mucho mas (recuerden que este volcado es de 256 Mb imaginen un volcado de 4 u 8 Gb), con este metodo corremos el riesgo de perder caracteres binarios especiales, que sean importantes para el malware y no necesariamente sean un string, pero es un framework muy poderoso y recomendable!

Happy Hunting :)

Entonces él dijo, "cruzad con vuestras tropas y atacad porque es lo único que le queda a nuestro pueblo...".

De nada por el TIP :)

Excelente paper  ;)

Saludos
Turka