Pentesting BLE - Bluetooth Low Energy
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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.
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.
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:
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)