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

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

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

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

工具目录

分类

查看所有分类
Loading categories
btlejuice — BtleJuice 蓝牙智能(低功耗)中间人攻击框架 | Kitploit
工具/GitHubGitHub/digitalsecurity/btlejuice
数据包嗅探与分析蓝牙安全漏洞利用无线安全渗透测试红队Archived
GitHubdigitalsecurity/btlejuice

btlejuice

BtleJuice 蓝牙智能(低功耗)中间人攻击框架

查看仓库
851153257年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

BtleJuice Framework

介绍

BtleJuice 是一个完整的框架,用于对蓝牙智能设备(也称为低功耗蓝牙)执行中间人攻击。它由以下部分组成:

  • 一个拦截核心
  • 一个拦截代理
  • 一个专用 Web 界面
  • Python 和 Node.js 绑定

如何安装 BtleJuice?

安装 BtleJuice 非常简单。首先,确保你的系统使用的是较新版本的 Node.js (>=4.3.2) 和 npm。然后,确保安装所有必需的依赖项:

Ubuntu/Debian/Raspbian

sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

Fedora / 其他基于 RPM 的系统

sudo yum install bluez bluez-libs bluez-libs-devel npm

最后,使用 npm 安装 BtleJuice:

sudo npm install -g btlejuice

如果一切顺利,BtleJuice 就可以使用了!

如何使用 BtleJuice?

BtleJuice 由两个主要组件组成:一个拦截代理和一个核心。这两个组件需要在独立的机器上运行,以便同时操作两个蓝牙 4.0+ 适配器。BtleJuice 代理在 Docker 容器中无法工作。

使用虚拟机可能有助于在单台计算机上使此框架工作。

从你的虚拟机中,安装 btlejuice,并确保 USB BT4 适配器在虚拟机中可用:

$ sudo hciconfig
hci0:	Type: BR/EDR  Bus: USB
	BD Address: 10:02:B5:18:07:AD  ACL MTU: 1021:5  SCO MTU: 96:6
	DOWN
	RX bytes:1433 acl:0 sco:0 events:171 errors:0
	TX bytes:30206 acl:0 sco:0 commands:170 errors:0
$ sudo hciconfig hci0 up

然后,确保你的虚拟机拥有一个可从宿主机访问的 IP 地址。

在虚拟机中启动代理:

$ sudo btlejuice-proxy

在宿主机上,不要忘记停止蓝牙服务,并确保 HCI 设备保持打开/初始化状态:

$ sudo service bluetooth stop
$ sudo hciconfig hci0 up

最后,在宿主机上运行以下命令:

$ sudo btlejuice -u <代理 IP 地址> -w

-w 标志告诉 BtleJuice 启动 Web 界面,而 -u 选项指定代理的 IP 地址。

Web 用户界面现在可以在 http://localhost:8080 访问。请注意,Web 服务器端口可以通过命令行更改。

使用 Web 界面

BtleJuice 的 Web 界面在右上角提供了一组链接,用于控制拦截核心,如下所示。

BtleJuice 主 Web UI

目标选择

首先,点击 选择目标 按钮,将弹出一个对话框,显示拦截核心检测到的所有可用低功耗蓝牙设备:

BtleJuice 目标选择弹窗

双击所需目标,等待界面准备就绪(蓝牙按钮的外观将改变)。一旦虚拟设备准备就绪,使用相关的移动应用程序或其他设备(取决于预期用途)连接到虚拟设备。如果连接成功,主界面上将显示一个 已连接 事件。

BtleJuice 嗅探界面

所有拦截到的 GATT 操作随后会连同对应的服务和特性 UUID 一起显示,当然还包括与之相关的数据。数据默认以 HexII 格式(由 Ange Albertini 设计的格式的变体)显示,但你可以通过点击数据本身从 HexII 切换到 Hex(或切换回来)。BtleJuice 支持 Hex 和 HexII 两种格式。

重放 GATT 操作

可以通过右键单击任何 GATT 操作,然后选择 重放 选项来重放该操作,如下所示:

重放弹窗

重放对话框

点击 写入(或 读取)按钮来重放相应的 GATT 操作。此操作将在主界面中记录。

即时数据修改

最后但同样重要的是,该界面可以本地或全局拦截任何 GATT 操作,并允许即时数据修改。你可以通过点击右上角的 拦截 按钮使用全局拦截,或者使用上下文菜单来启用或禁用对给定服务和特性的挂钩。每当一个 GATT 操作被拦截时,将显示以下对话框:

拦截对话框

导出数据到文件

从 1.0.6 版本开始,界面提供了一个数据导出功能,支持可读格式和 JSON 格式的导出。这些导出基于拦截到的 GATT 操作生成,但也包含目标设备的信息。当点击 导出 按钮时,将显示以下对话框:

导出对话框

点击对话框底部的 导出 按钮,下载拦截数据的 JSON(或文本)版本。

设置

设置对话框目前只提供一个选项,允许在目标设备断开连接时自动重新连接代理。这在处理短时间活跃的设备时可能很有用。

设置对话框

断开连接

当代理处于活动状态时,点击右上角的 选择目标 按钮将停止它,并允许再次选择目标。

安装绑定

BtleJuice 的 Node.js 绑定也可以通过 npm 安装:

$ sudo npm install -g btlejuice-bindings

关于如何使用 Node.js 绑定的更多信息,请参阅包文档。

致谢

特别感谢 Slawomir Jasek,他指出了许多 noble/bleno 的技巧,以避免与移动应用程序出现问题,并在 DEF CON 24 上分享了 BLE MITM 策略 =)。他也是 Gattacker 的作者。

许可证

版权所有 (c) 2016 Econocom Digital Security

特此免费授予获得本软件及相关文档文件(“软件”)副本的任何人无限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许向提供本软件的人这样做,但须满足以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或实质部分中。

本软件按“原样”提供,不提供任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论此类责任是基于合同、侵权行为或其他原因,无论是因本软件或本软件的使用或其他交易引起或与之相关。

下载工具