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

7.9 KiB
Raw Blame History

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Вступ

Доступний з специфікації Bluetooth 4.0, BLE використовує лише 40 каналів, охоплюючи діапазон від 2400 до 2483,5 МГц. На відміну від цього, традиційний Bluetooth використовує 79 каналів у тому ж діапазоні.

BLE-пристрої спілкуються, надсилаючи рекламні пакети (бікони), ці пакети транслюють існування BLE-пристрою іншим сусіднім пристроям. Ці бікони іноді також надсилають дані.

Пристрій, що слухає, також званий центральним пристроєм, може відповісти на рекламний пакет з SCAN запитом, надісланим спеціально до рекламного пристрою. Відповідь на цей скан використовує ту ж структуру, що й рекламний пакет, з додатковою інформацією, яка не вмістилася в початковий рекламний запит, такою як повна назва пристрою.

Байт преамбули синхронізує частоту, тоді як чотирибайтовий адреса доступу є ідентифікатором з'єднання, який використовується в сценаріях, коли кілька пристроїв намагаються встановити з'єднання на тих же каналах. Далі, Протокольна Дані Одиниця (PDU) містить рекламні дані. Існує кілька типів PDU; найчастіше використовуються ADV_NONCONN_IND та ADV_IND. Пристрої використовують тип PDU ADV_NONCONN_IND, якщо вони не приймають з'єднання, передаючи дані лише в рекламному пакеті. Пристрої використовують ADV_IND, якщо вони дозволяють з'єднання і припиняють надсилання рекламних пакетів, як тільки з'єднання було встановлено.

GATT

Generic Attribute Profile (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:

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

# 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

{% hint style="success" %} Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks
{% endhint %}