Pentesting BLE - Bluetooth Low Energy

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Wprowadzenie

Dostępny od specyfikacji Bluetooth 4.0, BLE używa tylko 40 kanałów, obejmujących zakres od 2400 do 2483,5 MHz. W przeciwieństwie do tradycyjnego Bluetooth, który używa 79 kanałów w tym samym zakresie.

Urządzenia BLE komunikują się poprzez wysyłanie pakietów reklamowych (beaconów), te pakiety rozgłaszają istnienie urządzenia BLE innym pobliskim urządzeniom. Te beacony czasami również wysyłają dane.

Słuchające urządzenie, zwane również urządzeniem centralnym, może odpowiedzieć na pakiet reklamowy za pomocą żądania SKANU wysłanego specjalnie do urządzenia reklamowego. Odpowiedź na ten skan używa tej samej struktury co pakiet reklamowy z dodatkowymi informacjami, które nie zmieściły się w początkowym żądaniu reklamowym, takimi jak pełna nazwa urządzenia.

Bajt preambuły synchronizuje częstotliwość, podczas gdy czterobajtowy adres dostępu jest identyfikatorem połączenia, który jest używany w scenariuszach, gdzie wiele urządzeń próbuje nawiązać połączenia na tych samych kanałach. Następnie jednostka danych protokołu (PDU) zawiera dane reklamowe. Istnieje kilka rodzajów PDU; najczęściej używane to ADV_NONCONN_IND i ADV_IND. Urządzenia używają typu PDU ADV_NONCONN_IND, jeśli nie akceptują połączeń, przesyłając dane tylko w pakiecie reklamowym. Urządzenia używają ADV_IND, jeśli pozwalają na połączenia i przestają wysyłać pakiety reklamowe, gdy połączenie zostało ustanowione.

GATT

Profil ogólnych atrybutów (GATT) definiuje, w jaki sposób urządzenie powinno formatować i przesyłać dane. Analizując powierzchnię ataku urządzenia BLE, często skupiasz swoją uwagę na GATT (lub GATTs), ponieważ to właśnie dzięki niemu uruchamiana jest funkcjonalność urządzenia i to dzięki niemu dane są przechowywane, grupowane i modyfikowane. GATT wymienia charakterystyki, deskryptory i usługi urządzenia w tabeli jako wartości 16- lub 32-bitowe. Charakterystyka to wartość danych wysyłana między urządzeniem centralnym a peryferyjnym. Te charakterystyki mogą mieć deskryptory, które dostarczają dodatkowych informacji o nich. Charakterystyki są często grupowane w usługi, jeśli są związane z wykonaniem określonej akcji.

Wyliczanie

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 pozwala na ustanowienie połączenia z innym urządzeniem, wyświetlenie charakterystyk tego urządzenia oraz odczytanie i zapisanie jego atrybutów. GATTTool może uruchomić interaktywną powłokę za pomocą opcji -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
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated