工具
Sniffle 蓝牙低功耗嗅探器
NCC Group 推出的蓝牙 5 与 4.x 低功耗(BLE)嗅探器,由运行在 TI CC1352/CC26x2 射频板上的固件和 Python 主机工具组成。它可在 1M、2M 和编码 PHY 上捕获广播与连接流量,跟随连接经历的信道映射、连接参数和 PHY 变更,捕获 BT5 扩展广播,并按 MAC 地址、IRK、RSSI 或广播内容过滤;对已过滤的目标会在全部三个主广播信道间跳频,README 称这使连接检测的可靠性比只监听单一信道的嗅探器高出近三倍。捕获结果保存为与 Ubertooth 兼容的 PCAP;Wireshark extcap 插件可直接从 Wireshark 界面启动捕获,命令行解码器可打印广播数据,包括 Apple 和 Microsoft 的厂商自定义字段。
使用条件与局限
- 审阅时的版本为 v1.11.0,于 2025-07-12 发布,附有各受支持板卡的预编译固件 hex 文件;所审阅的 master 分支提交另含两个中继脚本修复。README 要求使用预编译固件时运行对应发布标签中的 Python 代码,而不是 master 分支。发布说明称基于 SDR 的嗅探仍是未完成的开发中功能。
- 需要所列 TI Launchpad 开发板之一(CC26x2R、CC2652RB、CC1352R、CC1352P、CC2652R7、CC1352P7、CC2651P3 或 CC1354P10)、SONOFF CC2652P USB Dongle Plus 或 CatSniffer V3。固件通过 TI UniFlash/DSLite 烧录,SONOFF 加密狗使用 cc2538-bsl 引导加载工具,CatSniffer 使用 Electronic Cats 的上传工具;README 警告,为 SONOFF 加密狗烧录错误的构建变体可能使其变砖。自行编译固件需要 ARM GNU 工具链和 TI SimpleLink Low Power F2 SDK 8.30.01.01,README 给出了为适配新版 GCC 而修改该 SDK 的补丁。主机工具需要 Python 3.9+ 和 PySerial。
- 加密连接不会被解密:Sniffle 在没有密钥的情况下跟随其时序并检测参数更新,而要可靠地跟随连接,需要对外设设置 MAC 或 IRK 过滤。后续版本的固件还能主动发送,用于主动扫描、广播、发起连接和链路层中继;本条目只涵盖被动捕获与解码。
- 采用 GPL-3.0 许可;源码头部注明版权归 NCC Group plc 所有,其中 Wireshark extcap 插件由 Jay Logue 与 NCC Group plc 共同持有版权。本次未烧录任何硬件,也未捕获任何流量。
关于此条目
- 类型
- 工具
- 类别
- 协议分析工具
- 关联
- 基础工具
- 目标
- 协议
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · nccgroup/Sniffle · 修订 3a53f5a
- README.md#L22-L45 GitHub · nccgroup/Sniffle · 修订 3a53f5a
- README.md#L494-L537 GitHub · nccgroup/Sniffle · 修订 3a53f5a
- fw/makefile GitHub · nccgroup/Sniffle · 修订 3a53f5a
- python_cli/sniffle/pcap.py GitHub · nccgroup/Sniffle · 修订 3a53f5a
- python_cli/pcap_decoder.py GitHub · nccgroup/Sniffle · 修订 3a53f5a
- LICENSE GitHub · nccgroup/Sniffle · 修订 3a53f5a
- https://github.com/nccgroup/Sniffle/releases/tag/v1.11.0