Analisando PDF Malicioso com peepdf
Quando Usar
- Ao triar anexos de PDF suspeitos de e-mails de phishing
- Durante análise de malware de documentos PDF que contêm exploits
- Ao extrair JavaScript incorporado, shellcode ou executáveis de PDFs
- Para exame forense de artefatos de documentos armados
- Ao construir assinaturas de detecção para ameaças baseadas em PDF
Pré-requisitos
- Python 3.8+ com peepdf-3 instalado (pip install peepdf-3)
- pdfid.py e pdf-parser.py do conjunto Didier Stevens
- Ambiente de análise isolado (VM ou sandbox)
- Opcional: PyV8 para emulação de JavaScript dentro do peepdf
- Opcional: Pylibemu para análise de shellcode
Fluxo de Trabalho
- Triagem com pdfid: Escaneie o PDF por palavras-chave suspeitas (/JS, /JavaScript, /OpenAction, /Launch, /EmbeddedFile).
- Análise Interativa: Abra o PDF no modo interativo do peepdf para explorar a estrutura de objetos.
- Identifique Objetos Suspeitos: Localize objetos contendo JavaScript, streams ou dados codificados.
- Extraia Conteúdo: Despeje streams suspeitos e decodifique filtros (FlateDecode, ASCIIHexDecode).
- Desofusque JavaScript: Analise o JS extraído em busca de shellcode, heap sprays ou código de exploit.
- Verifique no VirusTotal: Use peepdf vtcheck para cruzar o hash do arquivo com detecções de antivírus (AV).
- Gere IOCs: Extraia URLs, domínios, hashes e assinaturas de shellcode.
Conceitos Principais
| Conceito | Descrição |
|---|
| /OpenAction | Ação automática executada quando o PDF é aberto |
| /JavaScript /JS | Código JavaScript incorporado em objetos PDF |
| /Launch | Ação que inicia aplicativos externos |
| /EmbeddedFile | Arquivo incorporado dentro da estrutura do PDF |
| FlateDecode | Filtro de compressão zlib usado para ocultar conteúdo |
| Object Streams | Objetos PDF armazenados em streams compactados |
Ferramentas & Sistemas
| Ferramenta | Finalidade |
|---|
| peepdf / peepdf-3 | Análise interativa de PDF com emulação de JS |
| pdfid.py | Escaneamento rápido de triagem para palavras-chave suspeitas |
| pdf-parser.py | Análise profunda de PDF no nível de objetos |
| VirusTotal | Consulta de hash e referência cruzada de detecção de AV |
| CyberChef | Decodificar e transformar payloads extraídos |
Formato de Saída
Relatório de Análise: PDF-MAL-[DATA]-[SEQ]
Arquivo: [filename.pdf]
SHA-256: [hash]
Palavras-chave Suspeitas: [/JS, /OpenAction, etc.]
Objetos com JavaScript: [IDs de Objetos]
URLs Extraídas: [Lista]
Shellcode Detectado: [Sim/Não]
Arquivos Incorporados: [Quantidade e tipos]
Detecções do VirusTotal: [X/Y motores]
Nível de Risco: [Crítico/Alto/Médio/Baixo]