Hola,
Vamos a ver un ejemplo muy sencillo sobre cómo ejecutar una inspección forense de la memoria de un sistema Windows.
Para ello vamos a necesitar dos herramientas: Mantech Memory DD y Volatility, sobre el cual ya hablamos en este blog. Sobre la elección de ambas herramientas es principalmente porque son libres y gratuitas, con lo que experimentar no tendrá coste para nosotros.
El análisis forense de volcados de memoria cobra especial importancia en eventos de respuesta ante incidentes, ya que permite obtener una foto de cómo se encuentra la RAM, así como para obtener información relevante para los análisis de máquinas donde se desea saber el estado de la memoria antes de proceder a su apagado. La RAM es volátil, y si pulsamos off, nos quedamos sin información.
Extracción de un volcado de memoria
Tal y como hemos comentado, emplearemos una utilidad que se llama MDD. La sintaxis básica es la siguiente:
mdd_1.3.exe -o nombredelvolcado
Así, por ejemplo:
En este proceso hemos obtenido un fichero que se llama volcadomemoria.img, cuyo MD5 (importante para preservar la integridad de la evidencia) es cf1d38ca7dbf0ab7f1444df158cc7150 y que ha resultado exitosa para 258009 operaciones de mapeo, siendo infructuosa en 3634 operaciones. El tamaño resultante es de 1.071.689.728 bytes.
Análisis del volcado
Nos apoyaremos en Volatility. Este framework permite el análisis de volcados de memoria y es mutiplataforma (siempre y cuando tengamos Python instalado)
Es bastante fácil de usar. Así, por ejemplo, si deseamos conocer los procesos que estaban ejecutándose en memoria, emplearemos
$ python volatility pslist -f nombredelvolcado
En nuestro caso:
No muestro la totalidad de los procesos de una manera intencionada. En este ejemplo vemos los procesos smss.exe (gestor de sesiones de Windows), csrss.exe (client server runtime), winlogon.exe (aplicación de logon de Windows), services.exe (servicios y controlador) y lsass.exe (ejecutable LSA Windows)
Volatility permite lanzar muchas consultas interesantes desde el punto de vista forense. Veamos algunos ejemplos
Obtención de propiedades de la imagen
$ python volatility ident -f volcadomemoria.img
Image Name: volcadomemoria.img
Image Type: XP SP2
VM Type: pae
DTB: 0x73a000
Datetime: Tue Dec 02 22:19:29 2008
Fecha y hora del volcado
Aunque es parte de la consulta anterior, se puede invocar de modo independiente
$ python volatility datetime -f volcadomemoria.img
Image local date and time: Tue Dec 02 22:19:29 2008
Módulos cargados en el sistema
La lista es, obviamente, mucho más larga. Está truncada intencionadamente.
Objetos EPROCESS
En este ejemplo vemos un proceso correspondiente a la utilidad Blowfish Advanced CS (bfacs.exe), una utilidad que os recomiendo para cifrar información personal en vuestros discos.
Ficheros abiertos por cada proceso
Esta consulta es muy intensa, pero es extremadamente útil. Mostramos un ejemplo:
************************************************************************
Pid: 1036
File \WINDOWS\system32
File \WINDOWS\system32\ega.cpi
************************************************************************
Y para identificar ese PID recurrimos a la lista de procesos:
$ python volatility pslist -f volcadomemoria.img | grep 1036
csrss.exe 1036 960 13 704 Tue Dec 02 18:24:06 2008
De donde se deduce que el proceso csrss.exe está empleando el fichero fichero de codificación (codepage information file) \WINDOWS\system32\ega.cpi
En cuanto a aplicaciones convencionales:
************************************************************************
Pid: 4008
File \Archivos de programa\Mozilla Firefox
File \Documents and Settings\sergioadmin\Application Data\Mozilla\Firefox\Profiles\12hgbwhw.default\parent.lock
De donde se deduce que el usuario ejecutaba Firefox, con PID 4008, y empleando el perfil 12hgbwhw.default (el cual podremos inspeccionar con la imagen del disco duro que levantemos en el escenario).
Volatility tiene muchas más funciones, y estas tan sólo son algunas. La idea es mostrar cómo se adquiere un volcado de memoria, el tipo de información que puede almacenar, cómo se lanza un procesado básico, así como la importancia de levantar este tipo de información siempre que sea posible.
Espero que el texto os resulte de utilidad.
Un saludo,
Buenas,
Los amigos del lado del mal van a realizar un webcast sobre la materia el próximo día 10.
Teniendo en cuenta su especialidad, ya que es el terreno donde se mueven como pez en el agua, si os interesa el tema, os aconsejo asistir. Seguro que resulta interesante.
Inscripciones aqui
Un saludo,
La web del programa es http://sourceforge.net/projects/mdd/ .
La dirección que esta posteada tira error 404.