Herramienta de explotación de CVE-2023-26469
Resumen
Esta es una herramienta de explotación (PoC) para la versión 1.0.0 de Jorani, que permite a un atacante lograr la ejecución remota de código mediante técnicas de path traversal e inyección de registros.
⚠️ Advertencia: Esta herramienta es solo para investigación de seguridad y pruebas autorizadas. El uso no autorizado de esta herramienta para ataques es ilegal.
Descripción de la vulnerabilidad
CVE-2023-26469 es una vulnerabilidad de seguridad grave en Jorani 1.0.0 que combina los siguientes dos vectores de ataque:
- Inyección de registros: Inyecta código PHP malicioso en el archivo de registro de la aplicación a través del formulario de inicio de sesión.
- Path traversal: Utiliza la vulnerabilidad de path traversal para acceder y ejecutar el archivo de registro inyectado.
Un atacante puede utilizar esta vulnerabilidad para ejecutar comandos arbitrarios del sistema en el servidor objetivo.
Características
- Obtención automática del token CSRF
- Inyección de código PHP malicioso en archivos de registro
- Acceso a archivos de registro mediante path traversal
- Proporciona un pseudo-terminal interactivo para ejecutar comandos del sistema
- Compatibilidad con Windows (usando pyreadline3)
- Codificación automática de comandos para evadir detección
Requisitos del entorno
- Python 3.x
- Librerías dependientes:
- requests
- pyreadline3 (entorno Windows)
Instalación
pip install requests pyreadline3
Uso
python poc.py <URL_objetivo>
Ejemplo
python poc.py http://target-server.com
Ejecución interactiva de comandos
Una vez que el script se ejecuta correctamente, entra en una interfaz de pseudo-terminal donde puedes ejecutar comandos del sistema:
user@jorani(PSEUDO-TERM)
$ whoami
$ ls -la
$ cat /etc/passwd
Ingresa exit, quit o x para salir del programa.
Principio de funcionamiento
- Inicialización de sesión: Envía una solicitud al servidor objetivo para obtener la cookie de sesión y el token CSRF.
- Inyección de código malicioso: Realiza path traversal a través del parámetro
language del formulario de inicio de sesión para inyectar código PHP en el archivo de registro.
- Desencadenar ejecución: Accede a la página del archivo de registro para ejecutar el código PHP inyectado.
- Ejecución de comandos: Transmite comandos codificados en Base64 a través de cabeceras HTTP personalizadas para obtener el resultado de la ejecución.
Detalles técnicos
- Utiliza nombres de campos de cabecera HTTP generados aleatoriamente para evadir ciertos mecanismos de seguridad.
- Los comandos se transmiten codificados en Base64.
- Utiliza la cabecera
X-REQUESTED-WITH para evadir la protección de redirección.
- Genera automáticamente el nombre del archivo de registro objetivo basado en la fecha actual.
Aviso legal
Esta herramienta es solo para fines de investigación de seguridad y educación. Los usuarios deben:
- Usar esta herramienta solo en sistemas con autorización explícita.
- Cumplir con todas las leyes y regulaciones aplicables.
- Asumir toda la responsabilidad por cualquier consecuencia derivada del uso de esta herramienta.
Los autores no se hacen responsables por cualquier uso indebido o ilegal de esta herramienta.
Referencias
- CVE-2023-26469
- Sitio web oficial de Jorani
Licencia
Este proyecto es solo para fines educativos y de investigación de seguridad.