hacktricks/radio-hacking/pentesting-ble-bluetooth-low-energy.md

90 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<details>
<summary><strong>零基础学习AWS黑客攻击成为英雄</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
支持HackTricks的其他方式
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
# 介绍
自蓝牙4.0规范以来BLE仅使用40个频道覆盖2400至2483.5 MHz范围。相比之下传统蓝牙在同一范围内使用79个频道。
BLE设备通过发送**广告包****信标**来通信这些包将BLE设备的存在广播给附近的其他设备。这些信标有时也**发送数据**。
监听设备,也称为中央设备,可以对广告包发送特定于广告设备的**扫描请求**。对该扫描的**响应**使用与**广告**包相同的结构,但包含了无法在最初的广告请求中放入的额外信息,例如完整的设备名称。
![](<../.gitbook/assets/image (201) (2) (1) (1).png>)
前导字节同步频率,而四字节接入地址是**连接标识符**,在多个设备尝试在同一频道上建立连接的场景中使用。接下来,协议数据单元(**PDU**)包含**广告数据**。PDU有几种类型最常用的是ADV\_NONCONN\_IND和ADV\_IND。如果设备**不接受连接**,它们将使用**ADV\_NONCONN\_IND** PDU类型仅在广告包中传输数据。如果设备**允许连接**并在**建立连接**后**停止发送广告**包,它们将使用**ADV\_IND**。
## GATT
**通用属性配置文件**GATT定义了**设备应如何格式化和传输数据**。当您分析BLE设备的攻击面时您通常会集中注意力在GATT或GATTs因为这是如何**触发设备功能**以及如何存储、分组和修改数据的方式。GATT以表格形式列出了设备的特性、描述符和服务作为16位或32位值。**特性**是在中央设备和外围设备之间**发送的数据值**。这些特性可以有**描述符****提供有关它们的额外信息**。如果特性与执行特定操作相关,则通常会在**服务**中**分组**。
# 枚举
```bash
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
```bash
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
```bash
# 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
```
<details>
<summary><strong>从零到英雄学习AWS黑客攻击通过</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong></strong></summary>
支持HackTricks的其他方式
* 如果您想在**HackTricks中看到您的公司广告**或**下载HackTricks的PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 获取[**官方PEASS & HackTricks商品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs系列**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**telegram群组**](https://t.me/peass)或在**Twitter** 🐦 上**关注**我 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>