Parte: 6 — Análisis de malware · Fuente: Learning Malware Analysis (Monnappa) y recursos de Didier Stevens ⏱️ Duración estimada: 110 min · Nivel: Intermedio
Analizar el vector de entrega más común en phishing: documentos ofimáticos con macros VBA y PDFs maliciosos. El alumno aprenderá a extraer y desofuscar macros, seguir la cadena de descarga/ejecución, examinar la estructura interna de un PDF y encontrar el JavaScript o los objetos que detonan la infección, todo sin abrir el documento en su aplicación real.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Formatos OLE vs OOXML | Determina la herramienta de extracción |
| 2 | Macros VBA y autoejecución | AutoOpen/Document_Open detonan |
| 3 | Desofuscación de VBA | El código real está escondido |
| 4 | Estructura de PDF | Objetos, streams, xref |
| 5 | JavaScript y acciones en PDF | /OpenAction, /JS, /Launch |
| 6 | Cadena de entrega (LOLBins) | mshta, powershell, wscript |
| 7 | Extracción de IOCs | Alimenta detección y bloqueo |
AutoOpen.olevba, oleid, oledump.py) para Office.⚠️ Nota ética y de seguridad: analiza los documentos con herramientas de línea de comandos sin abrirlos en Word/Adobe, y siempre en la VM aislada. Abrir el documento en su aplicación puede detonar la macro o el exploit. Trabaja solo con muestras autorizadas.
Documento Office con macros:
oleid documento.doc. ¿Tiene macros?, ¿VBA?, ¿objetos embebidos?olevba documento.doc. Localiza AutoOpen/Document_Open y marca las cadenas ofuscadas.Chr(), base64 y XOR con CyberChef hasta obtener el comando real (típicamente un powershell -enc ...).-EncodedCommand es base64 UTF-16LE) y extrae la URL de descarga y el payload de segunda etapa.PDF malicioso:
pdfid.py doc.pdf para contar /JS, /OpenAction, /Launch, /EmbeddedFile.pdf-parser.py --search JavaScript doc.pdf y vuelca el stream del JS.T1566, T1059)..doc (OLE) y .docx/.xlsm (OOXML).Chr() + concatenación.powershell -enc y extrae la URL.pdfid.py y prioriza qué objeto revisar./OpenAction con /Launch.Analiza un documento malicioso (Office o PDF) y entrega la cadena de ejecución reconstruida desde la apertura hasta el payload de segunda etapa, con la macro/JS desofuscado y los IOCs. Criterio de aceptación: presentas el comando final desofuscado (p. ej. el PowerShell decodificado) y al menos una URL/IOC de la segunda etapa, sin haber abierto nunca el documento en su aplicación.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| Abrir el doc en Word para "verlo" | Detona la macro; usa solo oletools |
olevba sin resultados |
Macro en objeto embebido; revisa oledump.py por stream |
| PowerShell ilegible | Está en base64 UTF-16LE; decodifica con CyberChef |
| PDF "sin JS" pero sospechoso | Revisa /Launch, /EmbeddedFile y URIs, no solo /JS |
| Perder la segunda etapa | La URL responde en INetSim; captura el payload en el lab |
❓ ¿Por qué no abrir el documento? Porque la macro o el exploit se ejecutan al abrir. Las herramientas de línea de comandos extraen el contenido sin detonarlo.
❓ ¿Siguen usándose macros? Menos desde que Office bloquea macros de Internet por defecto, pero persisten junto a otros vectores (HTML smuggling, LNK, contenedores).
❓ ¿Cómo decodifico un PowerShell ofuscado? Empieza por -EncodedCommand (base64 UTF-16LE) y luego deshaz capas (gzip, replace, format) con CyberChef.
Clase 151 — Rootkits y bootkits
Clase 153 — Análisis de malware en scripts: PowerShell y JavaScript