Memory Forensics com Volatility 3: Analisando Dumps em Lab Reproduzivel
Workflow tecnico de analise de memoria com Volatility 3, dumps reproduzidos em sandbox e validacao cruzada com Rekall e MemProcFS.
Tres da manha, alerta no SIEM, processo PowerShell encerrado antes do EDR coletar artefatos. Sem disco util, sobra a RAM. Memory forensics deixou de ser luxo academico e virou linha de frente, especialmente contra fileless malware e living-off-the-land que nao tocam NTFS. Neste lab vamos reproduzir um cenario real com Volatility 3.2, dumps de 8GB e 16GB capturados de Windows 11 23H2 e Ubuntu 22.04, validando achados contra Rekall e MemProcFS. A premissa: tudo reproduzivel, nada de hand-waving. Quem ja brigou com profile mismatch sabe que confiar em uma unica ferramenta e receita para conclusao errada em laudo.
Montar o lab leva uma tarde. Use VirtualBox 7.0 ou QEMU/KVM com 16GB de RAM dedicada a VM-alvo, snapshot limpo antes de cada execucao e captura via vboxmanage debugvm dumpvmcore ou virsh dump --memory-only. Para Windows, winpmem 4.0 ainda funciona; para Linux, AVML da Microsoft entrega dumps consistentes em kernels 5.x e 6.x. O lab de Pentest Web do Zero: Montando um Lab Seguro com DVWA, Juice Shop e Burp Suite serve como gerador de trafego pre-incidente, e para detonar payloads controlados aproveite o pipeline de Analise de Malware em Lab Isolado: Setup Seguro com FlareVM e Remnux. Documente hash SHA-256 de cada dump no momento da captura, senao sua cadeia de custodia evapora.
Volatility 3 abandonou os profiles em favor de symbol tables baixadas sob demanda. Primeiro comando obrigatorio: vol -f dump.raw windows.info, que confirma kernel build, DTB e timestamp. Em seguida windows.pslist, windows.psscan e windows.pstree em paralelo, sempre comparando. Processo que aparece em psscan mas nao em pslist e classico de DKOM ou unlinking via _EPROCESS. Para o caso Linux, linux.pslist.PsList e linux.bash sao o ponto de partida; bash devolve historico recuperado da heap, util quando o atacante limpou .bash_history mas esqueceu da memoria. Anote PIDs suspeitos e parta para handles, dlls e malfind.
O verdadeiro divisor de aguas e windows.malfind. Ele varre VADs com PAGE_EXECUTE_READWRITE e header MZ ausente, achando injection classica. Num dos meus dumps de teste, malfind sinalizou explorer.exe PID 4820 com regiao RWX contendo shellcode de 3.2KB, hash identico ao de um stager Sliver, conectando com o material de Construindo Infra de C2 com Sliver em Lab Isolado para Estudo Defensivo. Cruze com windows.netscan para extrair sockets ativos, mesmo TCP em estado CLOSE_WAIT aparece. Se o suspeito conversa com IP nao-RFC1918, dump o processo com windows.dumpfiles e jogue no Remnux para analise estatica. Para tecnicas de injection no contexto ofensivo, Evasao de EDR para Pesquisa: Direct Syscalls Explicados sem Romantizacao mostra o outro lado da mesa.
Casos Linux exigem outro vocabulario. linux.check_modules detecta rootkits LKM via discrepancia entre /proc/modules e a lista do kernel, enquanto linux.check_syscall identifica hooks na sys_call_table comparando enderecos com o System.map. Num dump infectado com Diamorphine 1.0.7, check_syscall apontou 11 entradas modificadas em segundos. Para containers, o desafio dobra: o dump captura todos os namespaces, mas voce precisa correlacionar PIDs com cgroups, processo tedioso que Container Forensics: Investigando Comprometimentos em Kubernetes detalha. Combine com timeline do host usando Timeline Forensics no Windows: Plaso, Log2Timeline e KAPE na Pratica para correlacionar eventos de disco e RAM no mesmo eixo temporal.
Validacao cruzada nao e opcional. Rode os mesmos dumps no MemProcFS, que monta a memoria como filesystem virtual em /mnt/memprocfs, permitindo grep e find sobre estruturas do kernel. Discrepancias entre Volatility e MemProcFS geralmente vem de symbol table desatualizada, atualize com pdbparse. Documente tudo em Jupyter notebook versionado em Git privado, com celulas reproduzindo cada comando, hash de entrada e saida esperada. Esse rigor conecta com OPSEC para Pesquisadores de Seguranca: Modelo de Ameaca Pessoal: laudo forense vaza tanto quanto exploit. Takeaway pratico: mantenha tres dumps gold padrao no seu lab, um limpo, um com Mimikatz residente, um com rootkit LKM, e teste cada nova versao do Volatility contra eles antes de tocar caso real.