Análisis forense de memoria en sistemas Windows

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:

mdd

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:

volatility

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

volatility

La lista es, obviamente, mucho más larga. Está truncada intencionadamente.

Objetos EPROCESS

volatility

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,

8 comentarios sobre “Análisis forense de memoria en sistemas Windows

  1. 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,

Comentarios cerrados.