Pentesting BLE - Bluetooth Low Energy

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Uvod

Dostupan od specifikacije Bluetooth 4.0, BLE koristi samo 40 kanala, pokrivajući opseg od 2400 do 2483.5 MHz. Za razliku od toga, tradicionalni Bluetooth koristi 79 kanala u istom opsegu.

BLE uređaji komuniciraju slanjem reklamnih paketa (beacons), ovi paketi emituju postojanje BLE uređaja drugim uređajima u blizini. Ovi beacons ponekad takođe šalju podatke.

Uređaj koji sluša, takođe nazvan centralni uređaj, može odgovoriti na reklamni paket sa SCAN zahtevom poslatim specifično reklamnom uređaju. Odgovor na taj sken koristi istu strukturu kao i reklamni paket sa dodatnim informacijama koje nisu mogle stati u početni reklamni zahtev, kao što je puno ime uređaja.

Preambula bajta sinhronizuje frekvenciju, dok je četvorobajtni pristupni adresni broj identifikator veze, koji se koristi u scenarijima kada se više uređaja pokušava uspostaviti veze na istim kanalima. Zatim, Protokolna jedinica podataka (PDU) sadrži reklamne podatke. Postoji nekoliko vrsta PDU-a; najčešće korišćeni su ADV_NONCONN_IND i ADV_IND. Uređaji koriste tip PDU-a ADV_NONCONN_IND ako ne prihvataju veze, prenoseći podatke samo u reklamnom paketu. Uređaji koriste ADV_IND ako dozvoljavaju veze i prestanu slati reklamne pakete jednom kada je veza uspostavljena.

GATT

Generički atributni profil (GATT) definiše kako uređaj treba da formatira i prenosi podatke. Kada analizirate površinu napada BLE uređaja, često ćete se fokusirati na GATT (ili GATTs), jer je to kako se pokreće funkcionalnost uređaja i kako se podaci čuvaju, grupišu i menjaju. GATT navodi karakteristike, deskriptore i usluge uređaja u tabeli kao vrednosti od 16 ili 32 bita. Karakteristika je vrednost podataka poslata između centralnog uređaja i periferije. Ove karakteristike mogu imati deskriptore koji pružaju dodatne informacije o njima. Karakteristike su često grupisane u usluge ako su povezane sa obavljanjem određene radnje.

Enumeracija

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 omogućava da se uspostavi veza sa drugim uređajem, prikazivanje karakteristika tog uređaja, i čitanje i pisanje njegovih atributa. GATTTool može pokrenuti interaktivnu ljusku sa opcijom -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
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated