¿Qué hace Análisis de PDF Malicioso con peepdf?
Cuándo Usarlo
- Al triar archivos adjuntos PDF sospechosos de correos de phishing
- Durante el análisis de malware de documentos PDF con exploits
- Al extraer JavaScript incrustado, shellcode o ejecutables de PDFs
- Para examen forense de artefactos de documentos armados
- Al construir firmas de detección para amenazas basadas en PDF
Prerrequisitos
- Python 3.8+ con peepdf-3 instalado (pip install peepdf-3)
- pdfid.py y pdf-parser.py del conjunto de herramientas de Didier Stevens
- Entorno de análisis aislado (VM o sandbox)
- Opcional: PyV8 para emulación de JavaScript dentro de peepdf
- Opcional: Pylibemu para análisis de shellcode
Flujo de Trabajo
- Triaje con pdfid: Escanea el PDF en busca de palabras clave sospechosas (/JS, /JavaScript, /OpenAction, /Launch, /EmbeddedFile).
- Análisis Interactivo: Abre el PDF en modo interactivo de peepdf para explorar la estructura de objetos.
- Identificar Objetos Sospechosos: Localiza objetos que contengan JavaScript, streams o datos codificados.
- Extraer Contenido: Vuelca streams sospechosos y decodifica filtros (FlateDecode, ASCIIHexDecode).
- Desofuscar JavaScript: Analiza el JS extraído en busca de shellcode, heap sprays o código de exploit.
- Consultar VirusTotal: Usa peepdf vtcheck para cotejar el hash del archivo con detecciones de antivirus.
- Generar IOCs: Extrae URLs, dominios, hashes y firmas de shellcode.
Conceptos Clave
| Concepto | Descripción |
|---|
| /OpenAction | Acción automática ejecutada al abrir el PDF |
| /JavaScript /JS | Código JavaScript incrustado en objetos PDF |
| /Launch | Acción que lanza aplicaciones externas |
| /EmbeddedFile | Archivo incrustado dentro de la estructura PDF |
| FlateDecode | Filtro de compresión zlib usado para ocultar contenido |
| Object Streams | Objetos PDF almacenados en streams comprimidos |
Herramientas y Sistemas
| Herramienta | Propósito |
|---|
| peepdf / peepdf-3 | Análisis interactivo de PDF con emulación de JS |
| pdfid.py | Escaneo rápido de triaje para palabras clave sospechosas |
| pdf-parser.py | Análisis profundo a nivel de objetos PDF |
| VirusTotal | Consulta de hash y cotejo con detecciones de antivirus |
| CyberChef | Decodificar y transformar payloads extraídos |
Formato de Salida
Analysis Report: PDF-MAL-[DATE]-[SEQ]
File: [filename.pdf]
SHA-256: [hash]
Suspicious Keywords: [/JS, /OpenAction, etc.]
Objects with JavaScript: [Object IDs]
Extracted URLs: [List]
Shellcode Detected: [Yes/No]
Embedded Files: [Count and types]
VirusTotal Detections: [X/Y engines]
Risk Level: [Critical/High/Medium/Low]