
Un script integral todo-en-uno basado en Python para descubrir y explotar una vulnerabilidad crítica de omisión de autenticación (CVE-2024-55591) en ciertos dispositivos Fortinet.
Un script integral todo-en-uno de prueba de concepto basado en Python para descubrir y explotar una vulnerabilidad crítica de bypass de autenticación (CVE-2024-55591) en ciertos dispositivos Fortinet. Este script:
nmapCVE-2024-55591 es un bypass crítico de autenticación en ciertos productos Fortinet (FortiOS y FortiProxy). Al explotar una falla en la interfaz de administración WebSocket/Telnet, un atacante puede obtener acceso CLI privilegiado sin credenciales válidas.
Según el Aviso del PSIRT de Fortinet (FG-IR-24-535), se sabe que las siguientes versiones están afectadas:
git clone https://github.com/exfil0/CVE-2024-55591-POC.git
cd CVE-2024-55591-POC
python3 attack.py
Al ejecutarse, el script automáticamente comprueba si faltan dependencias de Python (requests, urllib3) e intenta instalarlas.
Se te solicitará lo siguiente:
Una vez que confirmes, el script prueba la conectividad, comprueba la vulnerabilidad, actualiza la conexión a WebSocket e intenta el bypass de autenticación.
Al iniciar, este script comprueba requests y urllib3. Si faltan, intenta instalarlos mediante pip.
Si lo eliges, el script ejecuta nmap -sS -p- --min-rate 500 <host> para descubrir puertos TCP abiertos y, luego, o bien:
Si se descubren varios puertos abiertos, puedes indicar al script que los pruebe todos. Esto es útil si los servicios Fortinet están escuchando en puertos no estándar.
Si el exploit tiene éxito, opcionalmente puedes ejecutar comandos adicionales en la misma sesión Telnet, como:
diag sys topdiag debug crashlog readexecute shellPuedes modificar estos comandos de post-explotación en el script para recopilar datos más avanzados.
El script intenta analizar la versión del dispositivo a partir de la salida de get system status o get system info. Si coincide con un rango vulnerable conocido, te lo notifica.
192.168.1.50y (Sí) para descubrir puertos abiertosy si te conectas mediante HTTPS/443get system statusy o nSi Nmap encuentra varios puertos abiertos, puedes elegir probar todos los puertos automáticamente o seleccionar uno específico.
/login?redir=/ng devuelve la interfaz de administración de Fortinetservice-worker.js?local_access_token=ScaryBYte contiene la subcadena api/v2/staticget system statusSi el modo de post-explotación está habilitado, el script envía comandos adicionales de depuración o del sistema. La salida se recopila y se muestra en tu consola.
Este script de prueba de concepto se proporciona únicamente con fines educativos y de prueba. La explotación no autorizada de sistemas sin permiso explícito es ilegal. Asegúrate siempre de contar con las aprobaciones adecuadas antes de escanear o probar cualquier sistema, y consulta el Aviso de Fortinet (FG-IR-24-535) para obtener información sobre parches.