Pentesting BLE - Bluetooth Low Energy

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Einführung

Seit der Bluetooth 4.0-Spezifikation verwendet BLE nur 40 Kanäle, die den Bereich von 2400 bis 2483,5 MHz abdecken. Im Gegensatz dazu verwendet traditionelles Bluetooth 79 Kanäle im selben Bereich.

BLE-Geräte kommunizieren, indem sie Werbepakete (Beacons) senden, diese Pakete senden die Existenz des BLE-Geräts an andere nahegelegene Geräte. Diese Beacons senden manchmal auch Daten.

Das hörende Gerät, auch als zentrales Gerät bezeichnet, kann auf ein Werbepaket mit einer SCAN-Anfrage reagieren, die speziell an das werbende Gerät gesendet wird. Die Antwort auf diesen Scan verwendet die gleiche Struktur wie das Werbepaket mit zusätzlichen Informationen, die nicht in die ursprüngliche Werbeanfrage passten, wie den vollständigen Gerätenamen.

Das Präambelbyte synchronisiert die Frequenz, während die vierbyte Zugangsadresse ein Verbindungsidentifier ist, der in Szenarien verwendet wird, in denen mehrere Geräte versuchen, Verbindungen auf denselben Kanälen herzustellen. Als nächstes enthält die Protokolldateneinheit (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 aufhören, Werbepakete zu senden, sobald eine Verbindung hergestellt wurde.

GATT

Das Generic Attribute Profile (GATT) definiert, wie das Gerät Daten formatieren und übertragen sollte. Wenn Sie die Angriffsfläche eines BLE-Geräts analysieren, konzentrieren Sie oft Ihre Aufmerksamkeit auf das GATT (oder GATTs), da es bestimmt, wie die Gerätefunktionalität ausgelöst wird und wie Daten gespeichert, gruppiert und modifiziert 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 zentralen Gerät und dem Peripheriegerät gesendet wird. Diese Merkmale können Deskriptoren haben, die zusätzliche Informationen über sie bereitstellen. Merkmale werden oft in Diensten gruppiert, wenn sie mit der Ausführung einer bestimmten Aktion zusammenhängen.

Aufzählung

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

Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstütze HackTricks

Last updated