Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
BLESuite — BLESuite 是一个 Python 包,提供了一种更简便的方式来测试蓝牙低功耗(BLE)设备 | Kitploit
工具/GitHubGitHub/nccgroup/blesuite
数据包嗅探与分析蓝牙安全漏洞分析信息收集模糊测试无线安全渗透测试硬件与物联网安全蓝牙安全 分类第 5 名
GitHub
19143587年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
nccgroup/blesuite

BLESuite

BLESuite 是一个 Python 包,提供了一种更简便的方式来测试蓝牙低功耗(BLE)设备

查看仓库
分享

BLESuite 自述文件

概述

BLESuite 是一个 Python 包,旨在使蓝牙低功耗(BLE)设备通信更加用户 友好,并支持快速的 BLE 设备测试。 BLESuite 2.0 版本移除了对 PyGattlib 和 BlueZ 的依赖,转而使用修改过的 PyBT (https://github.com/mikeryan/PyBT) 来实现并管理我们自己的 BLE 协议栈。该版本提高了 通信可靠性、通信灵活性,改进了设备扫描,并支持在蓝牙协议栈的主机层对设备进行 模糊测试。 BLESuite 所使用的协议栈有意允许向设备发送格式错误的请求/响应, 以便进行设备测试。

功能特性:

  • 包含 2 个 CLI 工具,用于促进基本 BLESuite 操作:blesuite 和 ble-replay
  • 支持 BLE 中心(Central)和外设(Peripheral)角色
  • 支持多个 HCI 设备(例如 USB 蓝牙适配器)
  • 使用一个 HCI 设备作为中心角色时,支持同时与多个外设建立连接(受限于 HCI 控制器的最大连接数)
  • 扫描 BLE 设备
  • 扫描 BLE 设备的所有 GATT 实体
  • 快速便捷地向对端外设设备发送 ATT 请求
  • 构造并向目标设备发送精心构造(或有意格式错误)的 L2CAP 和 ATT 数据包
  • 支持 JustWorks LE Legacy 配对。更多配对方式将在后续版本中提供
  • 使用抽象对象定义和众多辅助函数快速启动 GATT 服务器
  • 支持 GATT 服务器的导入和导出
  • 支持安全管理器长期密钥(LTK)数据库的导入和导出
  • 可选地,安装一个对 Python API 友好的 BlueZ BDADDR 工具版本 (https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools/bdaddr.c),它允许用户伪造其主机蓝牙适配器的 BD_ADDR(仅支持某些芯片组。这是 BlueZ 的 bdaddr.c 的修改版本)

致读者:

要使用蓝牙低功耗功能,你必须拥有一个蓝牙适配器, 并且该适配器支持它。

为什么选择 BLESuite?

BLESuite 的目标是提供一种简化的方法,快速编写与目标 BLE 设备通信的脚本, 以进行安全评估。结合从 PyGattlib 和 BlueZ 到 PyBT 的迁移,我们现在可以 对 BLE 协议栈拥有更多控制权,并使用它来测试目标设备的各个 BLE 协议栈层。

此外,BLESuite 不再局限于仅使用中心角色。BLESuite 现在支持 外设角色,并允许用户快速配置和启动 GATT 服务器,用于测试 中心角色的 BLE 设备(或双角色设备)。

安装

以下为 BLESuite Python 包的安装说明。

先决条件

支持的操作系统:

BLESuite 是在 Debian 9.3 上开发和测试的。该库可能支持 其他 Linux 发行版,但目前不保证支持。

注意: 最近在 Fedora 28 上使用 BLESuite 的尝试是通过安装以下项目实现的:

  • dnf install bluez-libs-devel python2-devel python2-sphinx python2-gevent
  • 按照其余安装说明来安装随附版本 的 Scapy 和 BLESuite

对于 Fedora 28,有一个不可重复报告的 BLESuite 相关问题, 与某个 TypeError 相关,该问题在 Debian 9.3 安装中不存在,出现于尝试处理 传入的 ATT 请求时。

欢迎修复贡献!

所需软件

以下是使用 BLESuite 的要求:

  • libbluetooth-dev
  • libpython-dev
  • python-sphinx
  • gevent (https://pypi.org/project/gevent/)
  • Scapy (https://github.com/secdev/scapy/) (目前必须从此仓库中的副本安装)
    • 此版本的 Scapy 对 bluetooth.py 层进行了若干修改, 支持几种新的数据包类型,并能优雅地关闭 BluetoothUserSocket。这些更改目前尚未在 Scapy 主线中提供。
  • pycrypto (https://pypi.org/project/pycrypto/)
  • pyshark (https://github.com/KimiNewt/pyshark/)
  • prettytable (https://pypi.org/project/PrettyTable/)
  • sphinx_rtd_theme (https://pypi.org/project/sphinx_rtd_theme/) - 用于编译文档

安装 libbluetooth-dev、libpython-dev 和 python-sphinx 后,运行以下命令安装剩余的 Python 依赖项:

pip install -r requirements.txt

文档

从 docs 文件夹中运行:

make html

然后,docs/_build/html 中将提供一套完整的文档和参考指南。

安装全部内容

运行以下命令安装 Python 包:

python setup.py install

如果你不想安装 BDADDR Python API,或者在安装时遇到问题, 请注释掉 setup.py 中的以下行,然后重新运行上面的命令:

ext_modules = [c_ext],

未来计划

完整配对支持

目前,BLESuite 仅支持 LE Legacy JustWorks 配对。安全管理器大体已规划完毕,但 用于 LESC 和替代关联模型的剩余加密编程仍需实现。

签名写入支持

BLESuite 目前不支持 ATT 签名写入操作。这不是一种常用的操作, 但为了支持安全模式 2,应该予以支持。

对私有地址的进一步支持

BLESuite 目前仅支持公共(Public)和随机(静态)地址。然而,随机地址可以分为两种 子类型:静态(Static)或私有(Private)。随机私有地址还可以进一步分为两种 BLESuite 目前不支持的子类型:不可解析私有地址和可解析私有地址(使用 配对期间交换的 IRK 进行解析)。

因此,BLESuite 目前未提供将这些类型地址设置到主机适配器的功能。 此外,基于交换的 IRK 解析对端随机可解析地址的能力也尚未 实现。

使用 BLESuite 构建的额外工具

库构建完成后,下一步是构建使用该库的安全评估工具。

我们在此库中包含的一个示例是 ble-replay,它可以接收 BLE 数据包 捕获,并将 GATT 流量重放到目标设备。ble-replay 可以快速帮助 识别与重放攻击相关的应用层安全缺陷。

这类工具减少了手动 分析数据包捕获和手动编写 BLE 通信测试用例所花费的时间。

下载工具