Análise de Arquivos PDF
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Para mais detalhes, consulte: https://trailofbits.github.io/ctf/forensics/
O formato PDF é conhecido por sua complexidade e potencial para ocultar dados, tornando-se um ponto focal para desafios de forense em CTF. Ele combina elementos de texto simples com objetos binários, que podem ser comprimidos ou criptografados, e pode incluir scripts em linguagens como JavaScript ou Flash. Para entender a estrutura do PDF, pode-se consultar o material introdutório de Didier Stevens, ou usar ferramentas como um editor de texto ou um editor específico de PDF, como o Origami.
Para exploração ou manipulação aprofundada de PDFs, ferramentas como qpdf e Origami estão disponíveis. Dados ocultos dentro de PDFs podem estar escondidos em:
- Camadas invisíveis
- Formato de metadados XMP da Adobe
- Gerações incrementais
- Texto com a mesma cor do fundo
- Texto atrás de imagens ou imagens sobrepostas
- Comentários não exibidos
Para análise personalizada de PDF, bibliotecas Python como PeepDF podem ser usadas para criar scripts de parsing sob medida. Além disso, o potencial do PDF para armazenamento de dados ocultos é tão vasto que recursos como o guia da NSA sobre riscos e contramedidas de PDF, embora não esteja mais hospedado em sua localização original, ainda oferecem insights valiosos. Uma cópia do guia e uma coleção de truques do formato PDF de Ange Albertini podem fornecer mais leitura sobre o assunto.
Estruturas Maliciosas Comuns
Os atacantes frequentemente abusam de objetos e ações específicas do PDF que são executadas automaticamente quando o documento é aberto ou interagido. Palavras-chave que valem a pena serem procuradas:
- /OpenAction, /AA – ações automáticas executadas ao abrir ou em eventos específicos.
- /JS, /JavaScript – JavaScript embutido (frequentemente ofuscado ou dividido entre objetos).
- /Launch, /SubmitForm, /URI, /GoToE – lançadores de processos externos / URL.
- /RichMedia, /Flash, /3D – objetos multimídia que podem ocultar cargas úteis.
- /EmbeddedFile /Filespec – anexos de arquivos (EXE, DLL, OLE, etc.).
- /ObjStm, /XFA, /AcroForm – fluxos de objetos ou formulários comumente abusados para ocultar shell-code.
- Atualizações incrementais – múltiplos marcadores %%EOF ou um /Prev muito grande podem indicar dados anexados após a assinatura para contornar AV.
Quando qualquer um dos tokens anteriores aparece junto com strings suspeitas (powershell, cmd.exe, calc.exe, base64, etc.), o PDF merece uma análise mais profunda.
Folha de dicas de análise estática
# Fast triage – keyword statistics
pdfid.py suspicious.pdf
# Deep dive – decompress/inspect the object tree
pdf-parser.py -f suspicious.pdf # interactive
pdf-parser.py -a suspicious.pdf # automatic report
# Search for JavaScript and pretty-print it
pdf-parser.py -search "/JS" -raw suspicious.pdf | js-beautify -
# Dump embedded files
peepdf "open suspicious.pdf" "objects embeddedfile" "extract 15 16 17" -o dumps/
# Remove passwords / encryptions before processing with other tools
qpdf --password='secret' --decrypt suspicious.pdf clean.pdf
# Lint the file with a Go verifier (checks structure violations)
pdfcpu validate -mode strict clean.pdf
Projetos adicionais úteis (mantidos ativamente 2023-2025):
- pdfcpu – Biblioteca/CLI Go capaz de lint, decrypt, extract, compress e sanitize PDFs.
- pdf-inspector – Visualizador baseado em navegador que renderiza o gráfico de objetos e streams.
- PyMuPDF (fitz) – Motor Python scriptável que pode renderizar páginas em imagens de forma segura para detonar JS embutido em um sandbox reforçado.
Técnicas de ataque recentes (2023-2025)
- MalDoc em PDF polyglot (2023) – JPCERT/CC observou atores de ameaça anexando um documento Word baseado em MHT com macros VBA após o final %%EOF, produzindo um arquivo que é tanto um PDF válido quanto um DOC válido. Motores AV que analisam apenas a camada PDF perdem a macro. Palavras-chave estáticas de PDF estão limpas, mas
file
ainda imprime%PDF
. Trate qualquer PDF que também contenha a string<w:WordDocument>
como altamente suspeito. - Atualizações incrementais de sombra (2024) – adversários abusam do recurso de atualização incremental para inserir um segundo /Catalog com
/OpenAction
malicioso enquanto mantêm a primeira revisão benigna assinada. Ferramentas que inspecionam apenas a primeira tabela xref são contornadas. - Cadeia UAF de análise de fonte – CVE-2024-30284 (Acrobat/Reader) – uma função vulnerável CoolType.dll pode ser acessada a partir de fontes CIDType2 embutidas, permitindo execução remota de código com os privilégios do usuário uma vez que um documento elaborado é aberto. Corrigido em APSB24-29, maio de 2024.
Modelo rápido de regra YARA
rule Suspicious_PDF_AutoExec {
meta:
description = "Generic detection of PDFs with auto-exec actions and JS"
author = "HackTricks"
last_update = "2025-07-20"
strings:
$pdf_magic = { 25 50 44 46 } // %PDF
$aa = "/AA" ascii nocase
$openact = "/OpenAction" ascii nocase
$js = "/JS" ascii nocase
condition:
$pdf_magic at 0 and ( all of ($aa, $openact) or ($openact and $js) )
}
Dicas defensivas
- Atualize rapidamente – mantenha o Acrobat/Reader na versão mais recente; a maioria das cadeias de RCE observadas na natureza aproveita vulnerabilidades n-day corrigidas meses antes.
- Remova conteúdo ativo no gateway – use
pdfcpu sanitize
ouqpdf --qdf --remove-unreferenced
para eliminar JavaScript, arquivos incorporados e ações de lançamento de PDFs recebidos. - Desarmamento e Reconstrução de Conteúdo (CDR) – converta PDFs em imagens (ou PDF/A) em um host sandbox para preservar a fidelidade visual enquanto descarta objetos ativos.
- Bloqueie recursos raramente usados – as configurações de “Segurança Aprimorada” da empresa no Reader permitem desativar JavaScript, multimídia e renderização 3D.
- Educação do usuário – engenharia social (isca de fatura e currículo) continua sendo o vetor inicial; ensine os funcionários a encaminhar anexos suspeitos para a IR.
Referências
- JPCERT/CC – “MalDoc em PDF – Bypass de detecção ao incorporar um arquivo Word malicioso em um arquivo PDF” (Ago 2023)
- Adobe – Atualização de segurança para Acrobat e Reader (APSB24-29, Mai 2024)
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.