当前位置: 首页 > news >正文

BlueToolkit Recon侦察模块详解:如何采集目标设备的蓝牙版本、厂商与配对能力

BlueToolkit Recon侦察模块详解:如何采集目标设备的蓝牙版本、厂商与配对能力

【免费下载链接】BlueToolkitBlueToolkit is an extensible Bluetooth Classic vulnerability testing framework that helps uncover new and old vulnerabilities in Bluetooth-enabled devices. Could be used in the vulnerability research, penetration testing and bluetooth hacking. We also collected and classified Bluetooth vulnerabilities in an "Awesome Bluetooth Security" way项目地址: https://gitcode.com/gh_mirrors/bl/BlueToolkit

BlueToolkit 是一个可扩展的蓝牙经典(BR/EDR)与低功耗蓝牙(BLE)漏洞测试框架,其Recon 侦察模块能一键采集目标设备的蓝牙版本、厂商、LMP 特性和配对能力,是渗透测试前的第一块基石。本文将带你快速上手 Recon 侦察流程,看懂它的输出数据,并了解这些数据如何指导后续的漏洞利用。

为什么 Recon 侦察是蓝牙安全测试的第一步

对蓝牙设备发起攻击前,你需要先回答几个问题:

  • 它广播吗?支持 BLE 还是经典蓝牙?
  • 它允许连接、允许配对吗?
  • 它的 LMP(链路管理协议)版本是多少?用的是哪家芯片方案?
  • 它支持安全简单配对(SSP)吗?I/O 能力是什么?

BlueToolkit 的三大模块中,Recon(侦察)→ Exploit(利用)→ Report(报告),Recon 正是入口:它先收集目标设备的蓝牙能力与安全配置,再决定哪些漏洞模板值得测试。Recon 的核心实现位于 bluekit/bluekit/recon.py。

一条命令启动 Recon 侦察

安装完成后(支持裸机 Ubuntu/Debian 或 Vagrant 虚拟机,入口脚本为install.shvagrant/Vagrantfile),只需一条命令即可对目标 MAC 地址执行完整侦察:

sudo bluekit -t AA:BB:CC:DD:EE:FF -r

参数说明(命令行入口在bluekit/bluekit/bluekit.py):

参数作用
-t, --target目标设备 MAC 地址
-r, --recon运行 Recon 侦察脚本
-ct, --checktarget仅检查目标连通性与可用性
-v版本信息

上图为 BlueToolkit 汽车安全评估中记录的车机蓝牙配对界面(Hyundai、Renault、Audi、BMW)——这些真实设备的配对信息,正是 Recon 模块要采集的目标。

Recon 侦察模块采集的 7 项关键信息

run_recon()会以双模(BR/EDR + BLE)中心角色启动本地蓝牙,按流程逐项探测目标:

#采集项含义对应结果字段
1Advertising设备是否在广播,广播类型(BLE/BREDR)typeadvertising
2Connectable是否允许建立连接connectable
3LMP Version链路层版本,如 5.0、4.2version
4Manufacturer蓝牙芯片厂商(如 Qualcomm、Cypress)vendor
5LMP/LM Features链路层支持的特性位lmp_ll_features
6Pairable是否可配对pairable
7Pairing Features配对能力,含 I/O 能力(I/O capabilities)pairing_features

几点值得注意的细节:

  • 版本换算:LMP 版本字节(十六进制)会映射为人类可读的蓝牙版本,映射表见bluekit/bluekit/constants.py中的VERSION_TABLE(如0x8→ 4.2,0xb→ 5.2)。
  • 自动重试:探测结果中只要还有None,就在超时(默认 20 秒)内循环重试,提高弱信号环境下的成功率。
  • 连通性前置检查bluekit/bluekit/verifyconn.py提供check_device_status(),用位掩码(TARGET_ADVERTISING/TARGET_CONNECTABLE/TARGET_PAIRABLE)描述设备状态;DoS 测试前还会用dos_checker()反复确认目标存活,避免把"设备掉线"误判为漏洞。

如何读懂 recon.json 输出文件

侦察成功后,所有数据会按目标 MAC 归档保存:

/usr/share/BlueToolkit/data/tests/<目标MAC>/recon/recon.json

(路径规则定义在bluekit/bluekit/constants.pyOUTPUT_DIR

recon.json是一个结构化 JSON,关键字段包括type(BT 类型)、version(蓝牙版本)、vendor(芯片厂商)、lmp_ll_featurespairablepairing_features.io_capabilities等。这些数据后续会被两处直接消费:

  1. 漏洞过滤bluekit.py中的exploit_filter()读取vendor / version / bt_type,自动剔除版本不匹配、BT 类型不匹配的漏洞模板,让扫描又快又准。
  2. 侦察类检查exploits/目录下有多份基于侦察数据的 YAML 模板,例如 reconnaissance_SSP_supported.yaml(判断 SSP 是否启用)、reconnaissance_SC_supported.yaml(判断安全连接 SC)、reconnaissance_possible_BLUR.yaml(BLUR 攻击面预检),它们统一调用bluekit_recon_based_check.py复用 Recon 结果。

从侦察到利用:Recon 数据如何决定攻击路线

理解 Recon 的价值,关键在"数据驱动过滤"这条链路:

bluekit -t <MAC> -r # 1. 采集版本/厂商/配对能力 ↓ recon.json # 2. 持久化侦察数据 ↓ exploit_filter() # 3. 按 bt_type + 版本区间过滤可用漏洞 ↓ engine 逐个执行 YAML 模板 # 4. 执行 Exploit 并生成 Report

举例:如果 Recon 发现目标是 BT 3.0 的经典蓝牙设备,那么只影响 BT 5.0+ 的漏洞(如 CVE-2020-24490)会被自动跳过;若发现io_capabilities为 NoInputNoOutput(NiNo),则 KNOB、方法混淆等 MitM 攻击的适用性评估就有了依据。这正是 BlueToolkit 能半自动化覆盖 40+ 个已知漏洞(Braktooth、BleedingTooth、InternalBlue 等)的设计基础——漏洞模板全部以 YAML 存放在exploits/目录,硬件档案在hardware/目录。

小结

  • 一条命令sudo bluekit -t <MAC> -r即可完成完整蓝牙侦察。
  • 七项情报:广播、可连接性、LMP 版本、厂商、LMP 特性、可配对性、I/O 能力,一次采集、JSON 存档。
  • 数据驱动:侦察结果直接驱动漏洞模板过滤与攻击路线选择,避免无效扫描。
  • 生态完整:Recon 之后无缝衔接 Exploit 与 Report 模块,适合漏洞研究、渗透测试与车载蓝牙安全评估。

掌握 Recon 侦察模块,你就拿到了打开 BlueToolkit 蓝牙安全测试之门的钥匙。

【免费下载链接】BlueToolkitBlueToolkit is an extensible Bluetooth Classic vulnerability testing framework that helps uncover new and old vulnerabilities in Bluetooth-enabled devices. Could be used in the vulnerability research, penetration testing and bluetooth hacking. We also collected and classified Bluetooth vulnerabilities in an "Awesome Bluetooth Security" way项目地址: https://gitcode.com/gh_mirrors/bl/BlueToolkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4198258.html

相关文章:

  • 具身智能TVA-VLA形态自适应与策略泛化机制
  • 从模板到泛型编程:核心原理、技术价值与实践应用
  • Maka Agent 技能目录预算机制完整解析:2% 上下文窗口如何实现懒加载
  • C++中std::move与std::forward的深度解析:从值类别到完美转发
  • 五分钟在小程序里渲染 HTML 与 Markdown:wxParse 富文本解析完整实战
  • Kaitai Struct Compiler 源码架构全解:Scala 实现的多语言二进制解析器生成器分层设计
  • 七牛云Android SDK架构深度剖析:UploadManager如何统合DNS预解析、事务调度与配置监控
  • DWMBlurGlass Windows 标题栏模糊工具快速上手指南:新手 5 种效果一次看懂
  • AI智能体技能下游适应:从概念到实践的迁移学习指南
  • AI智能体实时信任验证:构建可信自主决策系统的核心框架与实践
  • C++函数模板实战:从线性查找到STL风格迭代器实现
  • 指数模型家族与广义线性模型:统一框架下的统计建模实践
  • Mafl实现原理:WebSocket热更新与Zod校验,config.yml秒级生效的秘密
  • btrfs-progs Zoned模式详解:SMR/ZBC/ZNS硬盘的最佳存储方案指南
  • Wand-Enhancer:WeMod 本地增强工具完整指南,手机也能远程操控
  • Executor TypeScript SDK实战:用createExecutor在代码中嵌入AI Agent集成层
  • 搞定依赖冲突:Uv2nix对conflicts冲突依赖组的深度支持
  • 100-刻意练习的未来
  • 数学建模竞赛高阶备赛指南:从系统化训练到72小时实战全流程
  • notepad-- 在 macOS 上怎么跑起来:编码、查找、对比一次讲清
  • 如何流畅绘制10万张以上图片:PixPlot的cell_size参数调优完整教程
  • Kubetap 集群内运行完整指南:以 Pod 或 Docker 注入 Kubernetes Service 代理的最佳实践
  • IDEA框架:通过效果对齐解决多智能体仿真到现实迁移的动力学不匹配难题
  • 知网二代AI率大面积标红用什么工具,BunnyScholar与清降AI对比
  • 为什么你下载的“Avast破解版“很可能是木马:拆解 Avast-Cracked-Software-Free-Download 仓库的 5 个危险信号
  • JAR如何自动识别当前平台?wasmer-java原生库自加载机制完整剖析
  • 一键备份QQ空间历史说说:GetQzonehistory 完整使用教程
  • 基于SpringBoot的仓库租赁管理系统(源代码+文档+PPT+调试+讲解)
  • G-Helper 调校指南:华硕笔记本 5 分钟上手,彻底告别 Armoury Crate
  • Fillinger随机填充脚本快速上手:5分钟把上百个元素自动铺满任意形状