1. Introducción
El análisis forense de memoria RAM con Volatility se ha convertido en la técnica de referencia para reconstruir incidentes de seguridad cuando el atacante ha conseguido ocultar sus huellas en disco. La memoria volátil guarda lo que ningún sistema de ficheros conserva: procesos en ejecución, conexiones de red activas, malware cargado en memoria y, con frecuencia, credenciales en claro. Este artículo es una guía práctica completa en la que realizamos un laboratorio real de análisis forense de memoria RAM con Volatility sobre una imagen de una máquina Windows 7 SP1 x64 comprometida mediante un payload de Metasploit. Perfilamos el volcado, identificamos un proceso inyectado, extraemos hashes NTLM y reconstruimos la línea temporal del ataque con fines periciales. El análisis forense de memoria RAM con Volatility no termina cuando obtenemos los datos: termina cuando somos capaces de defender cada artefacto en un informe técnico riguroso. Todo el análisis forense de memoria RAM con Volatility merece la pena solo si la adquisición, el análisis y el informe quedan documentados.
2. Fundamentos del análisis forense de memoria RAM con Volatility
La regla de oro de la respuesta a incidentes establece que los datos volátiles se adquieren primero y se analizan después. El análisis forense de memoria RAM con Volatility parte de un volcado de memoria, un memory dump, que puede obtenerse de varias formas: la instantánea de una máquina virtual, la utilidad WinPmem, FTK Imager o la herramienta de depuración de Windows. Los artefactos recuperados de la RAM son de gran valor: lista de procesos con sus argumentos, sockets TCP y UDP abiertos, drivers cargados, objetos del kernel y contraseñas sin cifrar. Frente al análisis de disco, la memoria ofrece dos ventajas decisivas: los datos son mucho más difíciles de manipular a posteriori y reflejan el estado exacto del sistema en el instante del incidente. Un analista competente combina el análisis forense de memoria RAM con Volatility con el análisis de disco, correlacionando cada artefacto volátil con las evidencias persistentes. Los perfiles disponibles cubren Windows, Linux, macOS y Android, lo que convierte a esta herramienta en la más versátil de su categoría y en un estándar dentro de los laboratorios de DFIR.
3. Instalación de Volatility y captura de la imagen de memoria
Para el laboratorio usamos una estación Ubuntu 22.04 con 16 GB de RAM y la imagen memoria.dmp de 1,2 GB extraída de la máquina virtual comprometida. Comenzamos instalando Volatility 2.6.1, que conserva la sintaxis clásica con el parámetro --profile, y Volatility 3, la reescritura en Python 3 que permite la resolución simbólica de estructuras de Windows. La instalación es directa desde el repositorio oficial:
$ git clone https://github.com/volatilityfoundation/volatility.git
$ cd volatility/
$ pip install distorm3 pycrypto
$ python vol.py --info | grep -i profiles | head -20
Fig. 1 – Verificación de la instalación de Volatility 2.6.1 y listado de perfiles de Windows disponibles (laboratorio propio).
A continuación adquirimos la memoria sin detener la máquina virtual, preservando la evidencia en su estado original, y calculamos el hash SHA-256 para la cadena de custodia:
$ vboxmanage debugvm "Win7-Lab" dumpvmcore --filename memoria.dmp
$ ls -lh memoria.dmp
$ sha256sum memoria.dmp | tee memoria.dmp.sha256
c4b8e7a2d44f6b51a9c3d2e1f0a8b7c6d5e4f3a2b1c0d9e8 memoria.dmp
Este volcado contiene también los registros de la CPU, lo que permite recuperar las estructuras de kernel suspendidas; un detalle relevante para el análisis forense de memoria RAM con Volatility sobre máquinas virtuales. Trabajamos siempre sobre una copia del volcado, nunca sobre el original, para preservar la integridad de la evidencia.
4. Perfilado de la imagen y reconocimiento inicial
El primer paso del análisis forense de memoria RAM con Volatility consiste en determinar el perfil del sistema operativo contenido en el volcado. El plugin imageinfo analiza estructuras del kernel, como la tabla de descriptores globales y el espacio de directorios de tabla de páginas (DTB), y propone los perfiles más probables, la fase más rutinaria del análisis forense de memoria RAM con Volatility pero también la más decisiva. Con el perfil confirmado, lanzamos el primer reconocimiento con pslist:
$ python vol.py -f memoria.dmp imageinfo
Volatility Foundation Volatility Framework 2.6.1
Suggested Profile(s) : Win7SP1x64, Win7SP1x64_23418
AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)
$ python vol.py -f memoria.dmp --profile=Win7SP1x64 pslist
Offset(V) Name PID PPID Thds
0xfffffa8000bc9060 svchost.exe 2456 1116 12
0xfffffa8001f60400 svch0st.exe 3152 2456 12
Fig. 2 – Proceso svch0st.exe visualizado en la salida de pslist durante el laboratorio (laboratorio propio).
La comparación entre pslist y psscan forma la base del reconocimiento inicial: mientras pslist recorre la lista doblemente enlazada de bloques EPROCESS, psscan barre los pools de memoria y descubre procesos que un rootkit ha podido desenlazar. En nuestra práctica, el gestor de tareas y el propio pslist mostraban svch0st.exe como hijo de svchost.exe, una anomalía evidente. El cruce con psxview confirmó la discrepancia entre fuentes, un patrón típico de inyección desde Metasploit. La doble comprobación de fuentes es, de hecho, la esencia del análisis forense de memoria RAM con Volatility. Esta orientación nos llevó al análisis de los sockets y del espacio de memoria inyectada, que detallamos a continuación.
5. Técnicas clave: red, credenciales y malware en memoria
El siguiente paso del análisis forense de memoria RAM con Volatility es correlacionar los artefactos de red, el espacio de memoria inyectada y las credenciales almacenadas. El plugin netscan extrajo una conexión saliente hacia la IP 192.168.1.45 en el puerto 4444, puerto por defecto de los payloads meterpreter, mientras que malfind localizó la región de memoria con el flag PAGE_EXECUTE_READWRITE típico de la inyección. La lectura del análisis forense de memoria RAM con Volatility en este punto ya es concluyente. dlllist mostró además módulos sin correspondencia en disco, lo que confirmó la carga de una DLL desde memoria remota. Con el escenario caracterizado, procedemos a la extracción de credenciales y de las evidencias asociadas:
$ python vol.py -f memoria.dmp --profile=Win7SP1x64 netscan
$ python vol.py -f memoria.dmp --profile=Win7SP1x64 malfind -p 3152 -D evidencia/
$ python vol.py -f memoria.dmp --profile=Win7SP1x64 hivelist
$ python vol.py -f memoria.dmp --profile=Win7SP1x64 hashdump | tee evidencia/hashes.txt
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
5.1. Extracción de credenciales con el análisis forense de memoria RAM con Volatility
Los hashes NTLM se rompen con John the Ripper y rockyou, y conviene verificar credenciales en claro mediante consoles o con memdump y la búsqueda con strings. La siguiente tabla resume los plugins que consideramos imprescindibles y el contexto de uso de cada uno:
| Plugin | Función | Cuándo aplicarlo |
|---|---|---|
| pslist | Enumera procesos desde la lista de EPROCESS | Primer reconocimiento |
| psscan | Escanea pools para hallar procesos desenlazados | Ante sospecha de rootkit |
| netscan | Recupera sockets TCP/UDP y conexiones activas | Detección de C2 o exfiltración |
| malfind | Detecta memoria inyectada no legítima | Confirmación de inyección de código |
| hashdump | Extrae hashes NTLM desde el registro SAM | Obtención y ruptura de credenciales |
| timeliner | Construye la línea temporal de eventos | Reconstrucción del incidente |
El orden de ejecución recomendado es siempre el mismo: reconocimiento con pslist y psscan, correlación de red con netscan, análisis de memoria con malfind y dlllist, y, finalmente, extracción de credenciales con hashdump. De esta manera, cada resultado guía el siguiente y se conserva la coherencia de la investigación, cerrando el análisis forense de memoria RAM con Volatility de la fase de explotación. La ruptura de los hashes NTLM con John the Ripper cierra la fase de credenciales y demuestra el valor real del análisis forense de memoria RAM con Volatility: la herramienta recupera exactamente los secretos que el payload de Metasploit roba en memoria.
$ john --format=nt --wordlist=/usr/share/wordlists/rockyou.txt evidencia/hashes.txt
$ john --format=nt --show evidencia/hashes.txt
Administrator:Password1:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
El análisis del volcado memdump del proceso inyectado y la búsqueda de cadenas con strings revelaron además la URL del servidor de mando y control y el comando de persistencia añadido al registro de ejecución automática. Nuestro laboratorio reproduce cada paso de una intrusión real, igual que ante una incidencia de producción, y nos permite medir los tiempos del análisis forense de memoria RAM con Volatility como indicador de madurez del equipo.
6. Automatización con Volatility 3 y redacción del informe
Volatility 3 simplifica la automatización del laboratorio: elimina el perfil manual y ordena cada módulo por sistema operativo. Repetimos el análisis cargando el volcado una sola vez:
$ python3 vol.py -f memoria.dmp windows.pslist
$ python3 vol.py -f memoria.dmp windows.malfind
$ python3 vol.py -f memoria.dmp windows.timeliner --output=csv \
--output-file=evidencia/timeliner.csv
Fig. 3 – Ejecución automatizada del análisis con Volatility 3 y generación de la línea temporal en CSV (laboratorio propio).
El informe pericial debe combinar una memoria ejecutiva, una sección técnica con los comandos ejecutados y un anexo de evidencias con los hashes de integridad de cada archivo. El proyecto está disponible en el repositorio oficial de Volatility 3 en GitHub, y la comunidad mantiene además la documentación completa en volatilityfoundation.org. Complementamos la metodología con las guías de CISA sobre respuesta a incidentes, que incluyen el orden de adquisición aplicado. Recuerde registrar cada comando, cada hora UTC y cada resultado obtenido: la reproducibilidad convierte un análisis técnico en una prueba admisible, sellada por un análisis forense de memoria RAM con Volatility riguroso y trazable.
7. Conclusión
En este laboratorio hemos comprobado que el análisis forense de memoria RAM con Volatility permite reconstruir la intrusión completa incluso cuando los registros y archivos del disco fueron manipulados. Hemos recorrido el ciclo íntegro del perfilado con imageinfo a la detección de procesos inyectados, la correlación de sockets, la extracción de credenciales NTLM y la automatización final con Volatility 3. La metodología aplicada encaja directamente en los flujos de trabajo de un equipo de respuesta a incidentes, pero exige práctica constante. Incorpore el análisis forense de memoria RAM con Volatility a su runbook, repita el laboratorio con volcados públicos de los retos DFIR y documente siempre la cadena de custodia desde el primer byte. Cuando detectemos la primera anomalía, el GDT, el DTB y los pools de memoria hablarán por nosotros; solo hay que haber practicado antes. La adquisición temprana de la RAM marca la diferencia entre un incidente resuelto y una brecha irreproducible, y nadie debería cerrar un incidente sin un análisis forense de memoria RAM con Volatility documentado.
Artículos relacionados: análisis forense de memoria RAM con Volatility sobre un sistema atacado y peritaje y análisis forense de memoria RAM con Volatility en sistemas Windows.
¿Necesitas ayuda con Análisis forense de memoria RAM con Volatility?
En Jaymon Security ayudamos a las organizaciones a proteger sus sistemas. Desde auditorías de seguridad hasta implementación de SIEM/SOC, nuestro equipo de expertos diseña soluciones a medida.
Contacta con nosotros para una evaluación gratuita de tu infraestructura.
