蓝牙工具
蓝牙工具
1.简介
应对工控以及车联网测试需求,研究蓝牙工具以及测试方法。
2.工具清单
- hciconfig
- hcitool
- l2ping
- sdptool
- blueranger
- bluetoothctl
- gatttool
- Bettercap
- wireshark
2.1前期准备
- 物理机kali(或者免驱USB蓝牙)
- 测试目标蓝牙设备(测试经典蓝牙可用蓝牙耳机、手机等,测试BLE需要使用物联网设备如蓝牙插座、BLE车机等)
在kali中打开蓝牙服务
2.2 hciconfig
hciconfig命令,用于展示本地蓝牙设备的详细信息,比如BD Address等。
1.使用hciconfig
命令查看蓝牙是否正常识别,正常情况如下图所示:
如果使用虚拟机kali配合免驱USB蓝牙,会发现多出hci1
设备。
2.若蓝牙设备未启用,则需要进行启用
1 | hciconfig hci0 up |
2.3 hcitool
hcitool命令,测试命令的合集,比如扫描周边的蓝牙设备
1.扫描周围开启发现模式的蓝牙设备
1 | hcitool scan |
2.如果scan过程中发现目标设备,可以使用使用如下命令进一步调查的设备
1 | hcitool inq |
2.3 l2ping
l2ping命令,L2CAP ping Logical Link Control and AdaptationProtocol,即逻辑链路控制和适配协议
使用l2ping
可以对目标设备进行存活确认
2.4 sdptool
sdptool命令,Bluetooth Service Discovery Protocol
2.5 blueranger
强制连接目标设备
2.6 bluetoothctl
Bluetoothctl是用于控制蓝牙设备的交互式且易于使用的工具。它是在基于Linux的操作系统上管理蓝牙的主要实用程序。实质上是由bluez源码下的client目录的相关文件编译生成的可执行程序(命令)。bluetoothctl 主要是bluez官方提供的一个命令行交互的一个客户端,用于和bluetoothd的通信进行BLE广播包的设置、BLE相关配置、创建服务、特征等
查看controller
查看controller的属性
扫描周边设备
1 | scan on |
设备配对
1 | pair MAC |
2.7 gatttool
GATTool 允许与另一个设备建立连接,列出该设备的特性,并读取和写入其属性。 GATTTool 可以使用 -I 选项启动交互式 shell
1 | gatttool -i hci0 -I |
2.8 Bettercap
Bettercap是Ettercap的继任者,具有用于许多不同类型的无线电和网络技术的攻击模块。
1 | # Start listening for beacons |
如下图所示可以看到嗅探到大量蓝牙设备
1 |
|
1 | # 查看嗅探到的蓝牙设备 |
1 | # 枚举有关该设备的详细信息 |
1 | # 写入数据 |
途中方框中存在写入权限。
尝试写入hello
到2f7cabce808d411f9a0cbb92ba96c102
但尝试写入失败。
虽然我们无法写入此蓝牙设备,但许多设备都可以。如果我们了解到设备正在运行一个服务,其漏洞可以通过写入值来利用,我们可以使用 Bettercap 开始寻找进一步利用附近设备的方法。
2.9 wireshark
通过手机抓取蓝牙包并分析
设置-我的设备-全部参数-状态信息
红米手机log日志路径为
/data/misc/bluetooth/logs
通过wireshark读取蓝牙版本信息
搜索字符串Read Remote Version Information Complete
3.蓝牙存在的安全威胁
3.1基于蓝牙版本的威胁
1、蓝牙1.2之前的版本: 基于单元密钥的链接密钥都是静态的且在每个配对中被重复使用。一旦设备的单元密钥被泄露(即当第一次配对的时候),任何其他拥有该密钥的设备能够欺骗该设备或任何其他已经与该设备配对的设备。
2、蓝牙2.1+ EDR之前的版本:允许使用短PIN码。这些PIN码长度较短,容易被攻击者猜到。加密密钥流是依赖于链路密钥、EN_RAND、主设备BD_ADDR和时钟。在一个特定加密的连接中,只有主设备时钟会发生改变。如果连接持续时间超过23.3小时,时钟值将开始重复,从而产生一个与之前连接中使用的相同的密钥流。重复的密钥流是一个严重的加密漏洞,这将让攻击者确定原始明文。
3、蓝牙2.1到3.0版本: 安全模式4的设备(即v2.1或更高版本的)与不支持安全模式4(即v2.0及更早版本)的设备连接时,其被允许回退到任何其他安全模式。例如,可能会使用不提供任何安全性的安全模式1,使得版本2.1到3.0更容易受到攻击。此外,版本2.1到3.0版本中使用了SSP静态密钥,这大大增加了设备遭受中间人攻击的可能性。
4、蓝牙4.0之前的版本:支持无限数量的身份请求,攻击者能够获得许多登录申请的返回的信息。这使他们能够轻易的破解链接密钥。这是因为蓝牙BR/EDR加密所用的E0流密码算法是相对较弱的。
5、所有版本: 如果没有通过访问控制来安全地存储和保护链接密钥,密钥可能被攻击者读取或修改。加密密钥的长度太短;没有用户身份验证;可被发现/可连接的设备都会容易受到攻击。
3.2基于攻击类型的威胁
分类 | 说明 | 威胁与工具集 |
---|---|---|
伪装 | 保护攻击者的身份 | HCIConfig(隐藏设备名称) |
HCIConfig/BTclass(隐藏设备类别) | ||
BD_addr(隐藏设备地址) | ||
Spooftooph(进行设备克隆) | ||
监视 | 进行信息采集 | HCITool(发现周边设备) |
Sdptool(服务层设备扫描) | ||
Redfang(发现隐藏设备) | ||
Blueprinter(远程采集蓝牙设备指纹) | ||
BT_audit(蓝牙审计) | ||
War-Nibbling(不安全蓝牙设备扫描) | ||
Bluefish(搜索蓝牙设备) | ||
Bluescanner(搜索蓝牙设备) | ||
增强范围 | 信号放大 | Bluetooone(图2) |
嗅探 | 蓝牙通信抓包 | BlueSniff |
HCIDump(HCI数据分析) | ||
Ubertooth | ||
中间人攻击 | 伪造身份信息管道端的数据篡改与抓取。 | Bthidproxy(蓝牙中间人分析工具) |
Snarf攻击 | 未认证的攻击 | Bluesnarfer |
Blooover | ||
BTCrack(Pin码破解工具) | ||
Carwhisperer(无屏幕蓝牙设备测试工具) | ||
Helomoto | ||
Bluebugger(蓝牙漏洞测试) | ||
HID attack(人机接口设备攻击) | ||
Btaptap(蓝牙键盘嗅探) | ||
拒绝服务 | 进行拒绝服务攻击 | BlueSmack(L2CAP协议攻击) |
BlueJacking(匿名名片发送) | ||
Smurf(ICMP请求攻击) | ||
信号攻击 | ||
PingBlender(Syn洪水攻击) | ||
电池耗尽攻击 | ||
漏洞攻击 | 通过代码逻辑及安全漏洞进行入侵 | Bluebag (图3)(背包客攻击蓝牙) |
Caribe病毒 | ||
Blueborne 漏洞 | ||
CVE-2020-0022 | ||
模糊测试 | 通过注入随机数据来触发安全bug | BSS(Bluetooth Stack Smasher 蓝牙协议栈模糊测试) |
HCIDUMP(HCI数据分析) | ||
L2cap 模糊测试 |
参考链接
kali中嗅探蓝牙设备-腾讯云开发者社区-腾讯云 (tencent.com)
11种常见的蓝牙攻击方法简析 | 信息化观察网 - 引领行业变革 (infoobs.com)
渗透测试 BLE - 低功耗蓝牙 - 黑客技巧 (hacktricks.xyz)
Bluetooth Low Energy recon using Bettercap | by MKS | Medium
How to Target Bluetooth Devices with Bettercap « Null Byte :: WonderHowTo