如何为没有界面的IoT设备安装Burp Suite证书
IoT设备网络数据包抓包改包环境搭建分享
说起给那种连屏幕都没有的 IoT 小玩意儿装 Burp 证书,我的脑袋里立马浮现出上个月把一盏智能灯泡拆成零件的情景——它根本没有 UI,唯一能碰到的就是一根 UART 串口。于是我只能把手伸进命令行的海里,想办法让它信任 Burp 那张自签根证书。
准备工作
我先在自己的笔记本上装好 Burp Suite,打开「Proxy → Options」把 Certificate Authority 导出来,得到 burp_ca.der。随后把笔记本的两块网卡拔出来:一块连外网,另一块开成热点(hostapd + dnsmasq),让 IoT 设备只会看到我这块“专属” Wi‑Fi。
透明代理让设备不知情
只要把 80/443 的流量都 NAT 到 Burp 的 8080 端口,设备根本不需要手动配置代理。下面这几条 iptables 命令是我的必备:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 443 -j REDIRECT --to-ports 8080
把透明代理打开后,所有连上我热点的设备请求都会悄悄经过 Burp,等于是“暗箱操作”。
把证书塞进设备
接下来要让设备信任 Burp 的根证书。大多数基于 linux 的固件都把受信任的 CA 放在 /etc/ssl/certs,于是我用了两招:
- 如果设备支持 SSH(很多开发板都有),直接
scp burp_ca.der root@device:/etc/ssl/certs/,再跑update-ca-certificates。 - 没有 SSH?把证书写进 OTA 升级包里,利用固件的
post‑install脚本把它复制到同目录。
完成后,重启服务,设备的 HTTPS 握手就会出现 Burp 的自签证书,抓包画面里瞬间出现 “TLS handshake successful” 的提示,爽到不行。
实战案例:智能灯泡
我把上面的步骤套在一盏 Wi‑Fi 灯泡上——这灯泡只提供 OTA 升级接口,没有任何 UI。先把灯泡接入我的热点,拦截它的固件下载请求,手动注入 burp_ca.der,再让它完成升级。升级完后,我用 Burp 抓到了灯泡的配网协议(JSON),甚至还能改改颜色切换的频率,玩得不亦乐乎。
整个过程最让人惊喜的,是那一刻灯泡在手机 App 里显示「安全连接」的图标瞬间变成了红色警告——原来它根本不信任我的证书。把证书塞进去后,红灯立马变绿,说明一切已经在我掌控之中。
如果你手里也有类似「看不见」的设备,别忘了先把网络划给自己,再把根证书塞进去。等到抓到想要的包时,你会发现——这玩意儿真的太好用了,根本不需要去搬砖改固件源码。

参与讨论
要是设备用的是mbedtls这种轻量库咋办?证书路径都不一样
这操作太硬核了,我连UART在哪都不知道😂
之前搞过一个智能家居网关,折腾了一个礼拜才把CA塞进去
没有SSH简直地狱模式,还得伪造OTA包
burp还能这么玩?学废了(不是)
红灯变绿那一下真的爽到飞起
dnsmasq配好了但设备死活不走代理是为啥?求指点
感觉比改固件源码现实多了,至少不用重新签名
那个post-install脚本得小心校验机制,有的会检测文件完整性
我的灯泡升级完直接变砖了……是不是证书格式不对?
这种透明代理的思路挺实用,回头试试看