Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
disclosure-thinkware-u3000 — Thinkware U3000 行车记录仪本地 WiFi 控制协议中存在三个未认证漏洞:任意文件写入、任意文件读取以及明文 WiFi 凭据泄露。CVE-2026-101053、CVE-2026-101054、CVE-2026-101055。 | Kitploit
工具/GitHubGitHub/turretsec/disclosure-thinkware-u3000
嵌入式系统安全物联网安全漏洞分析逆向工程无线安全密码学硬件与物联网安全论文与研究

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
turretsec/disclosure-thinkware-u3000

disclosure-thinkware-u3000

Thinkware U3000 行车记录仪本地 WiFi 控制协议中存在三个未认证漏洞:任意文件写入、任意文件读取以及明文 WiFi 凭据泄露。CVE-2026-101053、CVE-2026-101054、CVE-2026-101055。

查看仓库
5天前尚未审核

Thinkware U3000 行车记录仪:安全漏洞

Thinkware U3000 行车记录仪本地 WiFi 控制协议中存在三个漏洞,通过逆向工程官方 Android 应用发现,并在真实硬件上得到确认。这三个漏洞都只需要本地网络访问权限:无需物理接触设备、无需事先认证,也无需设备所有者配合。

已于 2026-06-21 向 Thinkware 披露。30 天披露窗口已结束,仅收到一份非技术性的收到确认。

为什么这很重要

行车记录仪在这类暴露中属于一个不寻常的类别。它们持续记录车辆的行驶轨迹,并且经常通过租赁、车队管理和二手车销售而易手。当前能够接触车辆的人未必控制着车辆所配置的网络。再加上任意文件写入原语和控制协议上的零认证,这已经超出了隐私问题的范畴。这同样是一个篡改问题:设备上的任何文件,而不仅仅是视频,都可以在所有者不知情的情况下被修改或替换。

这也不是 Thinkware 行车记录仪中第一次出现这种形态的漏洞。独立研究员 geo-chen 此前披露了相关 F800 Pro 型号中的若干问题;参见 geo-chen/Thinkware-Dashcam。那些漏洞通常需要物理接触或本地文件系统访问才能利用。以下发现两者都不需要:仅凭网络访问就足够,而且文件写入发现比之前那组中的任何能力都更强。

关于受影响型号的说明: 以下所有发现均针对基础款 Thinkware U3000 得到确认。Thinkware 还销售单独的“U3000 Pro”变体;其是否共享相同的协议实现尚未测试。


发现 1:未认证的任意文件写入

CVE: CVE-2026-101053(VulDB #410915)

完整报告: findings/01-arbitrary-file-write.md

产品: Thinkware U3000 行车记录仪

受影响组件: TCP 控制协议(端口 7878 命令 / 端口 8787 数据),无认证

攻击向量: 同一本地网络上的任何设备都可以将攻击者控制的内容写入设备文件系统上的任意绝对路径。

描述

设备的控制协议暴露了一个 PUT_FILE 命令,该命令将攻击者提供的字节写入攻击者提供的绝对路径,完全没有路径验证或沙箱隔离。通过直接向设备的 /tmp 目录写入一个文件得到确认,该目录同时存放着设备自身的 WiFi 配置(wpa_supplicant.conf)以及至少一个 shell 脚本(hidraw0.sh),并逐字节读回以确认精确放置。

Put file proof

复现步骤

  1. 完成会话握手:START_SESSION -> SET_CLNT_INFO -> APP_CONNECT。
  2. 发送 PUT_FILE,将 param 设置为官方应用合法写入范围之外的某个路径。
  3. 将文件字节写入数据套接字。
  4. 摄像头立即响应 {"rval": 0, "msg_id": 1286},随后推送一个异步 NOTIFICATION(msg_id 7)确认完成。
  5. 对父目录执行 LS 确认该文件以所请求的确切名称存在,与系统文件并列。
  6. 对同一路径执行 GET_FILE 读回内容,与所发送内容进行逐字节比较。

发现 2:未认证的任意文件读取

CVE: CVE-2026-101054(VulDB #410916)

完整报告: findings/02-arbitrary-file-read.md

产品: Thinkware U3000 行车记录仪

受影响组件: TCP 控制协议(端口 7878 命令 / 端口 8787 数据),无认证

攻击向量: 同一本地网络上的任何设备都可以列出并读取设备文件系统上的任意绝对路径,而不仅仅是录制的视频。

描述

同一协议中的 LS 和 GET_FILE 命令可以枚举并读取任意绝对路径,没有任何限制。通过直接读取设备实时的 wpa_supplicant.conf 得到确认,该文件包含其真实的 WiFi SSID 和明文密码。这是发现 1 的读取侧镜像:相同的根本原因,相反的方向,并且是通往发现 3 中所暴露的相同凭据的一条机制上不同的路径。

复现步骤

  1. 完成会话握手:START_SESSION -> SET_CLNT_INFO -> APP_CONNECT。
  2. 对 /tmp 执行 LS 确认 wpa_supplicant.conf 存在,与其他系统文件(hidraw0.sh、aws.dat、resolv.conf 等)并列。
  3. 使用 param: "/tmp/wpa_supplicant.conf" 执行 GET_FILE 返回文件大小,随后完整内容通过数据套接字流式传输,与视频文件完全一样。
  4. 返回的内容包含与摄像头实际配置网络相匹配的 ssid=/psk= 行。

发现 3:通过状态查询泄露明文 WiFi 凭据

CVE: CVE-2026-101055(VulDB #410917)

完整报告: findings/03-wifi-credential-disclosure.md

产品: Thinkware U3000 行车记录仪

受影响组件: TCP 控制协议(端口 7878),无认证

攻击向量: 同一本地网络上的任何设备都可以直接获取摄像头的 WiFi 密码,无需认证,也无需事先访问权限。

描述

一个专用的状态查询 GET_STATUS "wifi_info" 直接返回设备的 WiFi SSID 和明文密码。这与发现 2 是不同的机制,完全不需要文件系统访问,只需一次普通的协议状态读取。

复现步骤

  1. 完成会话握手:START_SESSION -> SET_CLNT_INFO -> APP_CONNECT。
  2. 发送 GET_STATUS,使用 param: "wifi_info"。
  3. 响应:{"rval": 0, "msg_id": 2050, "type": "wifi_info", "param": [{"ssid": "<real SSID>"}, {"password": "<real plaintext password>"}, {"mac": "<real MAC>"}]}。

披露时间线

日期事件
2026-06-19针对固件 v1.02.00 确认发现
2026-06-21固件升级至 v1.02.04(当前生产版本);三个发现均重新确认,行为无变化
2026-06-21通过电子邮件向 [email protected] 通知厂商
2026-06-22(约)Thinkware 客户支持确认收到,确认报告已转发至其开发团队。未提供技术回应、时间表或修复确认。
2026-07-2130 天披露窗口结束。未收到厂商进一步联系。
2026-08-13公开披露
2026-9-27分配 CVE ID,发布 VulDB 条目

此处有意未包含的内容

与负责任的披露实践一致,本仓库记录了每个原语的存在与影响,但不提供可直接使用的利用工具:

  • 未发布可用的 PUT_FILE 概念验证脚本。上述复现步骤足以确认该发现;一个参数化的、可直接运行的任意写入工具对合法验证不会提供额外价值,却会为滥用提供实际价值。
  • 未调查通过 PUT_FILE 放置的文件是否可被执行,也未调查进一步的利用链。

工具

这些发现是使用 u3000py 确认的,这是一个用于 U3000 控制协议的开源 Python 客户端,作为本研究的一部分构建。

  • u3000py 的 ThinkLinkClient.download() 方法是发现 2 的直接、可运行复现:cam.download("/tmp/wpa_supplicant.conf") 无限制地读取设备的实时 WiFi 配置。
  • ThinkLinkClient.get_wifi_info() 是发现 3 的直接、可运行复现(真实密码在任何打印输出中默认被脱敏;真实值仍可在返回对象上访问,与该发现本身的工作方式一致)。
  • u3000py 有意不暴露通用目的的 PUT_FILE 能力(发现 1),原因见该发现的报告中所述。

致谢

由 Ryan Moore(turretsec)发现并披露。

下载工具