Bluetooth 以及 BLE 那些工具

1. 基础工具

1.1 HCI 系列工具


1.2 gatttool (推荐指数: ★★★)

作为 bluez 代码的一部分,目前已被 deprecated,未通过 bluez 的 DBUS 接口,而是直接使用原生库与蓝牙设备交互(此处 bluez 指bluez用户态daemon及tools,非内核驱动)


1.3 pygatt (推荐指数: ★★★)

python 库,封装 gatttool 命令,或通过 BGAPI 访问部分 USB 蓝牙设备; BLE设备不支持 -t random 参数,不建议使用


1.4. bluez-tools

基于 bluez daemon 提供的 DBUS 接口封装一系列命令行工具


1.5. pybluez

python库,基于 socket(AF_BLUETOOTH...) 封装的 bluez 驱动接口,未经过 bluez daemon (待确认)
BLE 设备支持通过 pygattlib 提供


1.6. pygattlib (推荐指数: ★)

python 库,参考 gatttool 重新实现,针对 BLE 设备.
年久失修,debian 10 下安装成功,运行失败,大概率 segmentfault


1.7. gattlib

C库,提供 BLE GATT 相关接口,编译时选择使用 bluez Dbus 接口还是 bluez 的传统方式


2. 平台工具

2.1 bettercap (推荐指数: ★★★)

一个使用 Go 语言开发的多功能安全评估平台,支持 wifi、ble、hid、gps 等多种协议支持,具备 Web 控制台;
优势是对于 BLE Characteristics 属性的枚举较为简洁明了(即原来的 bleah),但是功能较为简陋。
参考: https://www.bettercap.org/modules/ble/


2.2 BtleJuice (推荐指数: ★★★★)

通过两个蓝牙设备进行 BLE 中间人劫持,proxy 设备与本地设备通过 websocket 通讯,提供web界面方便查看、修改 BLE 读写报文;
中间人相关的功能设计借鉴自 gattacker

1) 通过 nvm 安装 nodejs v8 的环境 (其他版本的node很大概率失败,建议使用低权限用户 “本地” 安装)


2.3 gattacker (推荐指数: ★★)

功能类似上文的 Btlejuice,但是易用性稍微差了点,建议直接使用 Btlejuice


2.4 BLESuite (推荐指数: ★)

nccgroup 的蓝牙安全评估工具,可以重放安卓 HCI log,并进行简单数据变异、Fuzz。
但是代码质量堪忧,很多功能实现有问题,replay 部分代码几乎未经测试, 跑起来全是 bug, 慎用。
(关联:BLE-Replay, 已停止维护,后作为 BLESuite 项目的一部分)


2.5 BTLE

可运行在 HackRF、BladeRF 等 SDR 设备上的 BLE 套件,支持跳频跟踪,功能大致等于 CC2540 + SmartRF Packet Sniffer
相关博客:https://sdr-x.github.io/BTLE-SNIFFER/


3. 参考资料:


自动化测试、评估、fuzz 相关

发表评论

电子邮件地址不会被公开。 必填项已用*标注