Traeger Grill Wi-Fi控制器安全漏洞分析:从硬件拆解到MQTT协议逆向

本文详细记录了Bishop Fox安全团队对Traeger Grill Wi-Fi控制器的完整安全评估过程,包括硬件拆解、UART调试接口利用、固件提取、MQTT协议分析以及发现的严重授权漏洞,攻击者可借此远程控制任意用户的智能烤炉。

硬件逆向分析

安全团队首先拆解了Traeger Grill的Wi-Fi控制器模块,发现其采用ESP32-WROVER-E芯片。PCB板上暴露的10针调试接口通过万用表测量确认与ESP32的TXD0/RXD0 UART引脚相连(存在100Ω电阻)。

通过Attify调试工具建立UART连接后,成功捕获设备启动日志:

1
2
3
4
5
6
7
8
9
% sudo picocom -b 115200 /dev/cu.usbserial-2
ets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
I (29) boot: ESP-IDF v3.1.3-51-g39c6b2f90 2nd stage bootloader
I (47) boot: Partition Table:
I (51) boot: ## Label Usage Type ST Offset Length
I (58) boot: 0 nvs WiFi data 01 02 00009000 00010000
I (66) boot: 1 otadata OTA data 01 00 00019000 00002000
...

固件提取与分析

通过将GPIO引脚接地强制进入下载模式,使用esptool.py成功提取4MB完整固件:

1
% sudo esptool.py --port /dev/cu.usbserial-2 read_flash 0 0x400000 flash.bin

利用esp32_image_parser工具解析分区表后,从storage分区提取出关键证书文件:

1
2
% python3 esp32_image_parser.py dump_partition flash.bin -p storage
/clientCert.pem > ./dest/clientCert.pemsize: 1261 Bytes

MQTT协议逆向工程

分析发现设备采用MQTT over TLS协议与云端通信。通过复现配对流程,捕获到以下关键交互:

  1. 移动应用获取配对令牌:
1
2
3
POST /prod/pairing-sessions HTTP/2
{"thingName":"803428743EA7"}
 返回配对令牌 fde5f0f06d4aad2bd11d6ad66272fdeae2fa3c0ce8d9227a92ef8148fdddc8fc
  1. 烤炉通过/certs API获取设备证书:
1
2
3
4
5
6
POST /certs HTTP/2
{
 "thingName": "803428743EA7",
 "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICgTCCAWk..."
}
→ 返回X.509证书

关键授权漏洞

研究发现存在严重的设计缺陷:任何经过认证的用户都可以通过以下步骤劫持其他用户的烤炉:

  1. 使用合法账户获取目标烤炉的thingName(如通过Wi-Fi嗅探)
  2. 调用/certs API注册新证书
  3. 通过MQTT订阅prod//run_cmd主题

实际测试中,安全团队成功远程将测试烤炉温度设置为500°F并触发关机循环,证明漏洞的可利用性。

漏洞详情

主要漏洞

  • CWE-285: 不当授权
    CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
    允许攻击者完全控制任意用户的智能烤炉

辅助漏洞

  1. 未加密固件(CWE-311)
    通过UART接口可提取包含敏感信息的明文固件

  2. 暴露调试接口(CWE-1191)
    未防护的UART接口允许物理攻击者获取设备控制权

修复建议

  1. 实施严格的设备所有权验证机制
  2. 为MQTT主题添加用户级访问控制
  3. 加密固件并禁用生产设备的调试接口
  4. 实现证书撤销检查机制

该研究揭示了物联网设备在云端集成时常见的授权设计缺陷,强调了产品安全评审在IoT开发生命周期中的重要性。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计