
Exploit en Python para CVE-2023-32315 dirigido a servidores Openfire. Omite la autenticación del panel de administración mediante un recorrido de ruta Unicode para crear un usuario administrador, permitiendo la carga de plugins maliciosos y el acceso a una web shell.
La vulnerabilidad CVE-2023-32315 afecta a servidores Openfire, permitiendo a un atacante bypassear el login del panel administrativo web sin credenciales válidas. El exploit agrega un usuario administrativo, permitiendo al atacante cargar un plugin malicioso y obtener una shell web.
CVE-2023-32315 es una vulnerabilidad en Openfire que permite acceder a los JSPs del asistente de configuración inicial (/setup/setup-s/...)
incluso después de haber sido completado, explotando una mala validación de rutas mediante path traversal con codificación Unicode/"best-fit"
(%u002e%u002e, equivalente a ../), en vez de caracteres literales. Esto permite alcanzar user-groups.jsp y user-create.jsp sin autenticación,
como si el servidor estuviera recién instalado, y crear un usuario administrador nuevo. El script valida el resultado de dos formas: revisando si
el usuario aparece en user-summary.jsp, y verificando que las credenciales creadas funcionen en login.jsp. Una vez dentro del panel, el
siguiente paso (fuera del alcance de este script) sería subir un plugin malicioso para ejecutar comandos arbitrarios.
git clone https://github.com/pulentoski/Explotacion-CVE-2023-32315-Openfire.git
cd Explotacion-CVE-2023-32315-Openfire
No requiere dependencias externas — usa únicamente librerías estándar de Python 3 (http.client, re, time, urllib.parse).
El script es interactivo, sin flags de línea de comandos:
python3 exploit.py
Te va a pedir elegir un modo:
[1] Objetivo único → ingresas la URL directamente (ej: http://127.0.0.1:9090)
[2] Lista de objetivos → ingresas la ruta a un .txt con una URL por línea
El usuario/contraseña que crea (pepe2/pepe2) está hardcodeado al inicio del script — cámbialo ahí si lo necesitas.
📄 Resultados: los objetivos confirmados quedan en exito.txt; si un objetivo falla la verificación, se guarda el HTML de respuesta en debug_<usuario>.html para revisión manual.
("openfire") && icon_hash=="1211608009"
Este script está pensado para entornos controlados y auditorías autorizadas. El autor no se hace responsable del uso indebido.