Files
cam-mitm/TODO.md

48 lines
3.1 KiB
Markdown
Raw Normal View History

# 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)