hacktricks/radio-hacking/pentesting-ble-bluetooth-low-energy.md
2024-03-29 19:49:46 +01:00

8.5 KiB
Raw Blame History

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Вступ

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

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

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

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

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
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks: