
Analizador con GUI para examinar a fondo archivos PDF. Detecta payloads maliciosos, comprende las relaciones entre objetos y extrae información clave para el análisis de amenazas.
Análisis Interactivo de PDF (también llamado IPA) permite a cualquier investigador explorar los detalles internos de cualquier archivo PDF. Los archivos PDF pueden utilizarse para transportar cargas maliciosas que explotan vulnerabilidades, y problemas del visor de PDF, o pueden utilizarse en campañas de phishing como artefactos de ingeniería social. El objetivo de este software es permitir que cualquier analista profundice por su cuenta en el archivo PDF. Mediante IPA, puedes extraer cargas importantes de archivos PDF, comprender la relación entre objetos e inferir elementos que pueden ser útiles para el triaje de cargas maliciosas o no confiables.
La principal inspiración proviene de las fantásticas personas detrás de Zynamics, y su excelente producto, llamado PDF dissector.
Cuando empecé en la ingeniería inversa de malware, la principal herramienta disponible para analizar cargas maliciosas consistía en las excelentes herramientas de Didier Stevens. Habiéndose convertido en un estándar de facto, uno de los principales problemas con estas herramientas era el hecho de que se podían usar desde la línea de comandos, teniendo que recordar una combinación muy grande de flags, reportando los números de los distintos objetos. Aunque los analistas y desarrolladores tienen que lidiar con todo tipo de herramientas de línea de comandos a diario, esto no significa que no podamos crear una nueva herramienta gráfica de inspección de archivos.
De hecho, parte de los campos del análisis estático y la ingeniería inversa también se centran en cómo mostrar la información más relevante al analista desde el punto de vista de la experiencia de usuario. Las herramientas de Didier Stevens, así como peepdf, ya se usan y están bien rodadas. Sin embargo, el analista podría usar algo gráfico para poder entender la relación entre los distintos objetos, comprender a qué páginas se refieren y qué tipos de objetos (imágenes, fuentes, colores, metadatos), exportar el contenido de los streams de forma sencilla y ver el contenido de los diccionarios en forma de tabla.
La principal fuente de inspiración proviene de la herramienta desarrollada por Zynamics llamada PDF-dissector: los excelentes comentarios de algunos antiguos usuarios y las constantes peticiones para publicarla como código abierto me impulsaron a dedicar unos días a crear esta herramienta.
La herramienta se puede compilar con Rust y cargo. No se requieren dependencias aparte de Rust, y los crates descargados.
git clone https://github.com/seekbytes/IPA
cd IPA
## compile with debug symbols, the binary is inside ./target/debug/IPA
cargo b
## compile in release mode, the binary is inside ./target/release IPA
cargo b --release
IPA tiene las siguientes limitaciones por ahora:
Al final, la herramienta puede mejorarse realmente y apuesto a que algunas personas notarán lo malo que es mi código. Si eres una de ellas, por favor házmelo saber sobre posibles mejoras, mejores patrones y cualquier sugerencia.
Si tienes algún problema, mejora, o simplemente quieres escribirme, envía un correo a [email protected].