Pentesting BLE - Bluetooth Low Energy

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Einführung

Seit der Bluetooth 4.0-Spezifikation verwendet BLE nur 40 Kanäle im Bereich von 2400 bis 2483,5 MHz. Im Gegensatz dazu verwendet herkömmliches Bluetooth 79 Kanäle in diesem Bereich.

BLE-Geräte kommunizieren, indem sie Werbe-Pakete (Beacons) senden, die die Existenz des BLE-Geräts anderen nahegelegenen Geräten mitteilen. Diese Beacons senden manchmal auch Daten.

Das empfangende Gerät, auch Zentralgerät genannt, kann auf ein Werbepaket mit einer SCAN-Anforderung antworten, die speziell an das werbende Gerät gesendet wird. Die Antwort auf diesen Scan verwendet die gleiche Struktur wie das Werbe-Paket mit zusätzlichen Informationen, die nicht in der ursprünglichen Werbe-Anfrage enthalten waren, wie z.B. der vollständige Gerätename.

Das Präambelbyte synchronisiert die Frequenz, während die vier Byte lange Zugriffsadresse ein Verbindungsidentifikator ist, der in Szenarien verwendet wird, in denen mehrere Geräte versuchen, Verbindungen auf denselben Kanälen herzustellen. Als Nächstes enthält die Protocol Data Unit (PDU) die Werbedaten. Es gibt mehrere Arten von PDU; die am häufigsten verwendeten sind ADV_NONCONN_IND und ADV_IND. Geräte verwenden den PDU-Typ ADV_NONCONN_IND, wenn sie keine Verbindungen akzeptieren, und übertragen Daten nur im Werbepaket. Geräte verwenden ADV_IND, wenn sie Verbindungen zulassen und nachdem eine Verbindung hergestellt wurde, keine Werbepakete mehr senden.

GATT

Das Generic Attribute Profile (GATT) definiert, wie das Gerät Daten formatieren und übertragen soll. Bei der Analyse der Angriffsfläche eines BLE-Geräts konzentrieren Sie sich oft auf das GATT (oder GATTs), da es auslöst, wie die Gerätefunktionalität ausgelöst wird und wie Daten gespeichert, gruppiert und geändert werden. Das GATT listet die Merkmale, Deskriptoren und Dienste eines Geräts in einer Tabelle als 16- oder 32-Bit-Werte auf. Ein Merkmal ist ein Datenwert, der zwischen dem Zentralgerät und dem Peripheriegerät gesendet wird. Diese Merkmale können Deskriptoren haben, die zusätzliche Informationen über sie bereitstellen. Merkmale sind oft in Diensten gruppiert, wenn sie mit der Ausführung einer bestimmten Aktion zusammenhängen.

Enumeration

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 ermöglicht es, eine Verbindung zu einem anderen Gerät herzustellen, die Eigenschaften dieses Geräts aufzulisten und seine Attribute zu lesen und zu schreiben. GATTTool kann eine interaktive Shell mit der Option -I starten:

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
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated