Forense

Memory Forensics con Volatility 3: Analizando Dumps en Lab Reproducible

Por Equipe Basilisk ·

Workflow tecnico de analisis de memoria con Volatility 3, dumps reproducidos en sandbox y validacion cruzada con Rekall y MemProcFS.

Tres de la manana, alerta en el SIEM, proceso PowerShell terminado antes de que el EDR recolectara artefactos. Sin disco util, queda la RAM. La forense de memoria dejo de ser un lujo academico y se volvio primera linea, sobre todo contra malware fileless y tecnicas living-off-the-land que no tocan NTFS. En este lab vamos a reproducir un escenario real con Volatility 3.2, dumps de 8GB y 16GB capturados de Windows 11 23H2 y Ubuntu 22.04, validando hallazgos contra Rekall y MemProcFS. La premisa: todo reproducible, nada de hand-waving. Quien ya peleo con profile mismatch sabe que confiar en una sola herramienta es receta para conclusion equivocada en informe pericial.

Montar el lab toma una tarde. Usa VirtualBox 7.0 o QEMU/KVM con 16GB de RAM dedicada a la VM objetivo, snapshot limpio antes de cada ejecucion y captura via vboxmanage debugvm dumpvmcore o virsh dump --memory-only. Para Windows, winpmem 4.0 sigue funcionando; para Linux, AVML de Microsoft entrega dumps consistentes en kernels 5.x y 6.x. El lab de Pentest Web desde Cero: Montando un Lab Seguro con DVWA, Juice Shop y Burp Suite sirve como generador de trafico previo al incidente, y para detonar payloads controlados aprovecha el pipeline de Analisis de Malware en Lab Aislado: Setup Seguro con FlareVM y REMnux. Documenta el hash SHA-256 de cada dump al momento de la captura, si no, tu cadena de custodia se evapora.

Volatility 3 abandono los profiles a favor de symbol tables descargadas bajo demanda. Primer comando obligatorio: vol -f dump.raw windows.info, que confirma build del kernel, DTB y timestamp. Despues windows.pslist, windows.psscan y windows.pstree en paralelo, siempre comparando. Proceso que aparece en psscan pero no en pslist es DKOM clasico o unlinking via _EPROCESS. Para el caso Linux, linux.pslist.PsList y linux.bash son el punto de partida; bash devuelve historial recuperado del heap, util cuando el atacante limpio .bash_history pero olvido la memoria. Anota PIDs sospechosos y pasa a handles, dlls y malfind.

El verdadero divisor de aguas es windows.malfind. Recorre los VADs con PAGE_EXECUTE_READWRITE y cabecera MZ ausente, encontrando injection clasica. En uno de mis dumps de prueba, malfind senalo explorer.exe PID 4820 con region RWX conteniendo shellcode de 3.2KB, hash identico al de un stager Sliver, conectando con el material de Construyendo Infra de C2 con Sliver en Lab Aislado para Estudio Defensivo. Cruza con windows.netscan para extraer sockets activos, incluso TCP en estado CLOSE_WAIT aparece. Si el sospechoso habla con IP no-RFC1918, dumpea el proceso con windows.dumpfiles y mandalo a Remnux para analisis estatico. Para tecnicas de injection en el contexto ofensivo, Evasion de EDR para Investigacion: Direct Syscalls Explicados sin Romantizar muestra el otro lado de la mesa.

Los casos Linux exigen otro vocabulario. linux.check_modules detecta rootkits LKM via discrepancia entre /proc/modules y la lista del kernel, mientras linux.check_syscall identifica hooks en la sys_call_table comparando direcciones con el System.map. En un dump infectado con Diamorphine 1.0.7, check_syscall apunto 11 entradas modificadas en segundos. Para contenedores, el desafio se duplica: el dump captura todos los namespaces, pero hay que correlacionar PIDs con cgroups, proceso tedioso que Container Forensics: Investigando Compromisos en Kubernetes detalla. Combina con timeline del host usando Timeline Forensics en Windows: Plaso, Log2Timeline y KAPE en la Practica para correlacionar eventos de disco y RAM en el mismo eje temporal.

La validacion cruzada no es opcional. Corre los mismos dumps en MemProcFS, que monta la memoria como filesystem virtual en /mnt/memprocfs, permitiendo grep y find sobre estructuras del kernel. Discrepancias entre Volatility y MemProcFS suelen venir de symbol table desactualizada, actualiza con pdbparse. Documenta todo en Jupyter notebook versionado en Git privado, con celdas reproduciendo cada comando, hash de entrada y salida esperada. Ese rigor conecta con OPSEC para Investigadores de Seguridad: Modelo de Amenaza Personal: un informe forense filtra tanto como un exploit. Takeaway practico: manten tres dumps patron oro en tu lab, uno limpio, uno con Mimikatz residente, uno con rootkit LKM, y prueba cada nueva version de Volatility contra ellos antes de tocar caso real.

Nenhum comentário ainda

Seja o primeiro a comentar.

Deixe seu comentário

Entre com sua conta Canverly para comentar. Você pode usar a mesma conta em qualquer site da rede.

Entrar com Canverly