hacktricks/todo/radio-hacking/pentesting-ble-bluetooth-low-energy.md
2024-04-06 18:30:57 +00:00

8.1 KiB

Pentesting BLE - Bluetooth Low Energy

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Einführung

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

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

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

Das Präambelbyte synchronisiert die Frequenz, während die vier Byte lange Zugriffsadresse eine Verbindungsidentifikation ist, die in Szenarien verwendet wird, in denen mehrere Geräte versuchen, Verbindungen auf den gleichen Kanälen herzustellen. Als nächstes enthält die Protocol Data Unit (PDU) die Werbedaten. Es gibt verschiedene 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 Daten nur im Werbepaket übertragen. Geräte verwenden ADV_IND, wenn sie Verbindungen zulassen und das Senden von Werbepaketen einstellen, sobald eine Verbindung hergestellt wurde.

GATT

Das Generic Attribute Profile (GATT) definiert, wie die Gerätedaten formatiert und übertragen werden sollen. Wenn Sie die Angriffsfläche eines BLE-Geräts analysieren, 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 Eigenschaften, Deskriptoren und Dienste eines Geräts in einer Tabelle als 16- oder 32-Bit-Werte auf. Eine Eigenschaft ist ein Datenwert, der zwischen dem Zentralgerät und dem Peripheriegerät gesendet wird. Diese Eigenschaften können Deskriptoren haben, die zusätzliche Informationen über sie bereitstellen. Eigenschaften werden oft in Diensten gruppiert, wenn sie mit 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 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

Bettercap ist ein leistungsstarkes Tool für das Pentesting von Bluetooth Low Energy (BLE). Es bietet eine Vielzahl von Funktionen, die es Hackern ermöglichen, Schwachstellen in BLE-Geräten zu identifizieren und auszunutzen.

Mit Bettercap können Sie BLE-Geräte scannen, um Informationen wie Geräte-IDs, Dienste und Charakteristiken zu erhalten. Sie können auch den Datenverkehr zwischen einem BLE-Gerät und einem verbundenen Gerät abfangen und analysieren.

Darüber hinaus bietet Bettercap Funktionen zum Spoofing von BLE-Geräten, zum Erzwingen von Verbindungen zu bestimmten Geräten und zum Senden von benutzerdefinierten BLE-Paketen. Dies ermöglicht es Hackern, Angriffe wie Man-in-the-Middle-Angriffe, Denial-of-Service-Angriffe und das Ausnutzen von Schwachstellen in BLE-Protokollen durchzuführen.

Bettercap ist ein äußerst vielseitiges Tool, das sowohl für Anfänger als auch für erfahrene Hacker geeignet ist. Es bietet eine benutzerfreundliche Oberfläche und eine umfangreiche Dokumentation, die Ihnen bei der Durchführung von BLE-Pentests hilft.

Um Bettercap zu verwenden, müssen Sie es auf Ihrem Pentesting-System installieren und die erforderlichen Abhängigkeiten installieren. Anschließend können Sie das Tool über die Befehlszeile aufrufen und die verschiedenen Funktionen nutzen, um BLE-Geräte zu hacken und Schwachstellen auszunutzen.

Bettercap ist ein unverzichtbares Tool für jeden Hacker, der sich mit BLE-Pentesting beschäftigt. Es bietet eine breite Palette von Funktionen, die Ihnen helfen, Schwachstellen in BLE-Geräten zu identifizieren und auszunutzen, um Zugriff auf sensible Informationen zu erhalten.

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

Andere Möglichkeiten, HackTricks zu unterstützen: