48 lines
3.1 KiB
Markdown
48 lines
3.1 KiB
Markdown
|
|
# Camera MITM — Remaining Work
|
||
|
|
|
||
|
|
## Done in this session
|
||
|
|
- [x] Migrated tooling to new network (192.168.1.x)
|
||
|
|
- [x] Built PyQt6 GUI dashboard wrapping the same Controller
|
||
|
|
- [x] Added per-service start/stop (clickable Service buttons)
|
||
|
|
- [x] Added log rotation at 1 GiB
|
||
|
|
- [x] Added intruder detection service (ARP spoof / unknown LAN peer / unexpected outbound)
|
||
|
|
- [x] Added protocol fingerprint module (TLS/HTTP/IOTC/etc) and wired into sniffer + http_server
|
||
|
|
- [x] Fixed http_server to peek-before-wrap so non-TLS traffic on :443 is captured raw
|
||
|
|
- [x] Regen'd MITM cert with full SAN list for ubianet/aliyuncs/myqcloud
|
||
|
|
- [x] Added 146 endpoints to fuzzer KNOWN_ENDPOINTS (harvested from decompiled APK)
|
||
|
|
- [x] Editable dropdown in Cloud tab Raw POST for known endpoints
|
||
|
|
- [x] Built `firmware_fetch.py` with multi-version check_version/v3 attempts
|
||
|
|
- [x] Built `ota_bucket_probe.py` to enumerate Tencent COS firmware buckets
|
||
|
|
- [x] Built `cve_checks.py` with original verifiers for CVE-2025-12636, CVE-2021-28372, CVE-2023-6322/3/4
|
||
|
|
- [x] Built CVE tab in GUI with per-CVE Verify buttons + Generate Report
|
||
|
|
- [x] Built Help tab in GUI documenting every tab and command
|
||
|
|
- [x] Discovered V11-V18 (8 new findings) and documented in `~/dumps/findings.md`
|
||
|
|
|
||
|
|
## Phase 1: TUTK Library (still blocked on firmware)
|
||
|
|
- [ ] Need device-side firmware to extract `libIOTCAPIs.so` (the app version is symbol-stripped + has no static auth key)
|
||
|
|
- [ ] Alternative: Frida-hook the running UBox app to dump `p4p_crypto_init` arguments at runtime
|
||
|
|
- [ ] Once we have a TUTK lib, write Python ctypes wrapper for IOTC connect/send/recv
|
||
|
|
- [ ] Connect to camera with admin/yyc1G::HPEv7om3O OR admin/iotCam31
|
||
|
|
- [ ] Send DEVINFO_REQ (cmd 816), FILE_LIST_REQ (cmd 4864), CAPTURE_PICTURE_REQ (cmd 8482)
|
||
|
|
|
||
|
|
## Phase 2: Firmware Acquisition
|
||
|
|
- [ ] **Run `Probe OTA Bucket` button** on Cloud tab — try to find a public-read FW object
|
||
|
|
- [ ] **MITM the camera's boot-time check** — start MITM, power-cycle camera, capture the real check_version request and response
|
||
|
|
- [ ] If MITM works: inject fake check_version response with our URL and observe how the camera downloads (V7)
|
||
|
|
- [ ] Pull the **second** Javiscam app `com.macrovideo.javiscam` and diff against `cn.ubia.ubox` for different OTA URLs / keys
|
||
|
|
- [ ] FCC ID 2AYAGJXJ-DQ6B-SW1 — pull Internal Photos PDF to identify SoC for hardware-side dump option
|
||
|
|
|
||
|
|
## Phase 3: API Enumeration
|
||
|
|
- [ ] Run full Fuzz Endpoints job (146 known + ~600 wordlist) and document any new endpoints
|
||
|
|
- [ ] Try IDOR via kuid swap on `user/account/get_current_user`
|
||
|
|
- [ ] Try IDOR via uuid swap on `user/families`, `user/qry/notification/get`
|
||
|
|
- [ ] Enumerate OAM endpoints using leaked HMAC secret `2894df25f8f740dff5266bc155c662ca`
|
||
|
|
- [ ] Test the leaked Google/AMap API keys for damage assessment (V11)
|
||
|
|
|
||
|
|
## Phase 4: Paper + Disclosure
|
||
|
|
- [ ] Generate CVE report from CVE tab and attach to SECURITY_PAPER.md
|
||
|
|
- [ ] Add V11-V18 to SECURITY_PAPER.md
|
||
|
|
- [ ] Add OAM endpoint findings (Phase 3) to paper
|
||
|
|
- [ ] Final review and formatting
|
||
|
|
- [ ] Decide on coordinated disclosure to UBIA (CISA already attempted for CVE-2025-12636; UBIA did not respond)
|