hacktricks/radio-hacking/pentesting-ble-bluetooth-low-energy.md
2023-08-03 19:12:22 +00:00

7.9 KiB
Raw Blame History

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

介绍

自蓝牙4.0规范以来BLE仅使用40个信道覆盖2400至2483.5 MHz的范围。相比之下传统蓝牙在相同范围内使用79个信道。

BLE设备通过发送广告数据包信标进行通信这些数据包向其他附近设备广播BLE设备的存在。这些信标有时也会发送数据

监听设备,也称为中心设备,可以通过专门发送给广告设备的扫描请求来响应广告数据包。对该扫描的响应使用与广告数据包相同的结构,附加了无法放在初始广告请求中的其他信息,例如完整的设备名称。

前导字节用于同步频率,而四字节的访问地址是一个连接标识符,用于在多个设备尝试在相同信道上建立连接的情况下使用。接下来,协议数据单元(PDU)包含广告数据。有几种类型的PDU最常用的是ADV_NONCONN_IND和ADV_IND。如果设备不接受连接,则使用ADV_NONCONN_IND PDU类型仅在广告数据包中传输数据。如果设备允许连接并且一旦建立连接停止发送广告数据包,则使用ADV_IND

GATT

通用属性配置文件GATT定义了设备应如何格式化和传输数据。当你分析BLE设备的攻击面时通常会集中注意力在GATT或GATTs因为它是触发设备功能和存储、分组和修改数据的方式。GATT以16位或32位值的形式在表中列出设备的特征、描述符和服务。特征是在中心设备和外围设备之间发送的数据值。这些特征可以有描述符提供有关它们的附加信息。如果特征与执行特定操作相关,则通常将其分组服务中。

枚举

hciconfig #Check config, check if UP or DOWN
# If DOWN try:
sudo modprobe -c bluetooth
sudo hciconfig hci0 down && sudo hciconfig hci0 up

# Spoof MAC
spooftooph -i hci0 -a 11:22:33:44:55:66

GATTool

GATTool 允许与另一个设备建立连接,列出该设备的特征,并读取和写入其属性。
GATTTool可以使用-I选项启动交互式shell

gatttool -i hci0 -I
[ ][LE]> connect 24:62:AB:B1:A8:3E Attempting to connect to A4:CF:12:6C:B3:76 Connection successful
[A4:CF:12:6C:B3:76][LE]> characteristics
handle: 0x0002, char properties: 0x20, char value handle:
0x0003, uuid: 00002a05-0000-1000-8000-00805f9b34fb
handle: 0x0015, char properties: 0x02, char value handle:
0x0016, uuid: 00002a00-0000-1000-8000-00805f9b34fb
[...]

# Write data
gatttool -i <Bluetooth adapter interface> -b <MAC address of device> --char-write-req <characteristic handle> -n <value>
gatttool -b a4:cf:12:6c:b3:76 --char-write-req -a 0x002e -n $(echo -n "04dc54d9053b4307680a"|xxd -ps)

# Read data
gatttool -i <Bluetooth adapter interface> -b <MAC address of device> --char-read -a 0x16

# Read connecting with an authenticated encrypted connection
gatttool --sec-level=high -b a4:cf:12:6c:b3:76 --char-read -a 0x002c

Bettercap

Bettercap是一款功能强大的网络安全工具用于执行中间人攻击和网络嗅探。它支持蓝牙低功耗BLE的渗透测试可以用于探测和利用BLE设备的漏洞。

安装

要安装Bettercap请按照以下步骤操作

  1. 首先确保您的系统上已安装Go语言环境。

  2. 使用以下命令从GitHub上克隆Bettercap的存储库

    git clone https://github.com/bettercap/bettercap
    
  3. 进入克隆的存储库目录:

    cd bettercap
    
  4. 使用以下命令构建和安装Bettercap

    make build
    sudo make install
    

使用Bettercap进行BLE渗透测试

要使用Bettercap进行BLE渗透测试请按照以下步骤操作

  1. 首先,确保您的系统上已启用蓝牙适配器。

  2. 使用以下命令启动Bettercap并选择蓝牙低功耗模块

    sudo bettercap -caplet ble.cap
    
  3. 在Bettercap命令行界面中使用以下命令扫描附近的BLE设备

    ble.recon on
    
  4. 扫描完成后,使用以下命令选择目标设备:

    ble.recon.targets
    ble.recon.target <target_mac_address>
    
  5. 选择目标设备后使用以下命令执行BLE渗透测试

    ble.recon <target_mac_address>
    
  6. Bettercap将显示目标设备的详细信息并提供执行各种攻击的选项。

请注意使用Bettercap进行BLE渗透测试可能涉及违反法律和道德规范。请仅在合法授权的范围内使用此工具并遵守适用的法律和规定。

# Start listening for beacons
sudo bettercap --eval "ble.recon on"
# Wait some time
>> ble.show # Show discovered devices
>> ble.enum <mac addr> # This will show the service, characteristics and properties supported

# Write data in a characteristic
>> ble.write <MAC ADDR> <UUID> <HEX DATA>
>> ble.write <mac address of device> ff06 68656c6c6f # Write "hello" in ff06
☁️ HackTricks 云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥