Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
blur — BLURtooth: Ausnutzung der Schlüsselableitung über Transporte hinweg bei Bluetooth Classic und Bluetooth Low Energy [CVE-2020-15802] [CVE-2022-20361] | Kitploit
Tools/GitHubGitHub/francozappa/blur
Bluetooth-SicherheitSchwachstellenanalyseExploitationDrahtlose SicherheitPapers & ForschungLernen & Bildung
GitHubfrancozappa/blur

blur

BLURtooth: Ausnutzung der Schlüsselableitung über Transporte hinweg bei Bluetooth Classic und Bluetooth Low Energy [CVE-2020-15802] [CVE-2022-20361]

Repository anzeigen
215vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

README

Repository über die BLUR-Angriffe, die auf der AsiaCCS'22 in dem Paper mit dem Titel: BLURtooth: Exploiting Cross-Transport Key Derivation in Bluetooth Classic and Bluetooth Low Energy. präsentiert wurden.

Nützliche Links: pdf, video, slides, website.

BibTeX-Eintrag:

root@kitploit:~
@inproceedings{antonioli22blur,
    author={Antonioli, Daniele and Tippenhauer, Nils Ole and Rasmussen, Kasper
    and Payer, Mathias},
    title={{BLURtooth: Exploiting Cross-Transport Key Derivation in
    Bluetooth Classic and Bluetooth Low Energy}},
    booktitle={Proceedings of the  Asia conference on computer and
    communications security (ASIACCS)},
    month={May},
    year={2022}
}

Die BLUR-Angriffe haben die folgenden CVE-IDs erhalten: CVE-2020-15802 und CVE-2022-20361.

Initialisierung

Im restlichen Teil dieser README bezeichnen wir Bluetooth Classic (auch BR/EDR) als BT, Bluetooth Low Energy als BLE und Cross-Transport Key Derivation als CTKD. Wir gehen außerdem davon aus, dass das Angriffsgerät und die Opfer BT, BLE und CTKD unterstützen. Das bedeutet, dass die Geräte Bluetooth 4.2+ und BT/BLE Secure Connections unterstützen.

Der einfachste Weg, die Angriffe durchzuführen, besteht darin, ein Gerät sowohl als Opfer als auch als Angriffsgerät zu verwenden. Zum Beispiel empfehlen wir, ein Linux-Laptop als Opfer-/Angriffsgerät und ein beliebiges anderes Gerät als das andere Opfer zu verwenden.

Wir verwenden einen Linux-Rechner mit bluez und bluez-Tools. Wir verlassen uns auf das btmgmt-Tool, und es könnte hilfreich sein, einen Blick auf seinen Quellcode zu werfen. Insbesondere verwenden wir den Unterbefehl pair, da er unter anderem das Senden beliebiger Pairing-Anfragen über BT/BLE ermöglicht, während beliebige Eingabe-/Ausgabefähigkeiten deklariert werden.

root@kitploit:~
Usage: pair [-c cap] [-t type] <remote address>

Wenn Sie das genaue Angriffsszenario aus unserem Paper reproduzieren möchten, müssen Sie etwas zusätzliche Arbeit leisten. Insbesondere müssen Sie das Setup nachbilden, das im BIAS-Angriff vorgestellt wird. Sobald Ihr Setup bereit ist, sollten Sie das Entwicklungsboard als Ihren BT/BLE-Controller und das Linux-Laptop als Host verwenden können. Darüber hinaus sollten Sie in der Lage sein, die Link-Layer-Pakete vom Host zu sniffen (z.B. BT LMP-Verkehr) und die Firmware des Entwicklungsboards zur Laufzeit dynamisch mit internalblue zu patchen.

Durchführen der BLUR-Angriffe

Festcodieren der NoInputNoOutput-Fähigkeiten (ohne das MitM-Flag zu deaktivieren)

Dieser Schritt ist optional und erfordert das Patchen Ihres eigenen Linux-Kernels.

Bei Verwendung von btmgmt -c 3 deaktiviert bluez automatisch das MitM-Schutz-Flag, d.h. es setzt das AuthReq-Byte auf 0x02 anstelle von 0x03. Allerdings erfordern die BLUR-Angriffe nicht, dieses Flag zu deaktivieren, sondern nur, NoInputNoOutput-Fähigkeiten zu deklarieren, wenn das entfernte Gerät Eingabe-/Ausgabefähigkeiten unterstützt. Durch diesen Trick wird die Pairing-Prozedur auf Just Works herabgestuft, ohne das MitM-Flag zu deaktivieren.

Die Umsetzung dieses Setups erfordert eine minimale Änderung des Linux-Kernels. Insbesondere in /net/bluetooth/hci_event.c ändern wir:

root@kitploit:~
cp.authentication = conn->auth_type;

zu:

root@kitploit:~
cp.authentication = 0x03;

Dadurch codieren wir unser AuthReq-Flag auf 0x03 fest, unabhängig von den von uns deklarierten Eingabe-/Ausgabefähigkeiten.

Legitimes Pairing

Pairing der Opfergeräte wie gewohnt. Wenn Sie beispielsweise ein Smartphone angreifen, paaren Sie es mit Ihrem Laptop (das sowohl als Opfer als auch als Angriffsgerät fungiert). Als Teil des Pairings kann eine Benutzerinteraktion erforderlich sein (z.B. Numerischer Vergleich).

Öffnen einer btmgmt-Shell

  • Notieren Sie sich die Bluetooth-Adresse des Opfers, angegeben als REMOTE-BTADD
  • Öffnen Sie ein Terminal
  • Führen Sie hciconfig aus und notieren Sie sich Ihren hci-Index, z.B. 0
  • Führen Sie sudo btmgmt -i 0 aus
  • Sie sollten eine blaue Terminal-Eingabeaufforderung mit [hci0] # sehen

Central-Impersonation-Angriff über BLE, [Über]schreiben des BT-Pairing-Keys

Hier gehe ich davon aus, dass das Opfer eine öffentliche BLE-Adresse verwendet. Wenn es eine zufällige verwendet, ändern Sie die Option -t auf 2

Führen Sie in der btmgmt-CLI aus:

root@kitploit:~
pair -t 1 REMOTE-BTADD

Wenn Sie die Assoziation auch auf Just Works herabsetzen müssen, führen Sie aus:

root@kitploit:~
pair -c 3 -t 1 REMOTE-BTADD

Das Flag -c setzt die Eingabe-/Ausgabefähigkeiten des Angreifers, und ein Wert von 0x3 entspricht NoInputNoOutput, während der Standardwert für ein Laptop/Smartphone 0x1 ist, was Display Yes/No entspricht.

Peripheral-Impersonation-Angriff über BT, [Über]schreiben des BLE-Pairing-Keys

In diesem Fall paaren wir uns selbst dann über BT als Central, wenn wir ein BLE-Peripheral imitieren.

Führen Sie in der btmgmt-CLI aus:

root@kitploit:~
pair -t 0 REMOTE-BTADD

Wenn Sie die Assoziation auch auf Just Works herabsetzen müssen, führen Sie aus:

root@kitploit:~
pair -c 3 -t 0 REMOTE-BTADD

Unbeabsichtigte Session-Angriffe

Wiederholen Sie die oben beschriebenen Angriffe, während Sie ein Gerät imitieren, das dem Opfer derzeit unbekannt ist (d.h. nicht mit ihm gepaart ist).

Fragen und Antworten (Bluetooth, CTKD, Linux, bluez, Wireshark)

Wie stelle ich mein BT/BLE-Gerät als erkennbar/verbindbar/pairingfähig ein?

In der bluetoothctl-CLI können Sie discoverable auf on oder off und pairable setzen. In der btmgmt-CLI können Sie auch das Flag connectable setzen.

Wie kann ich steuern, wie lange mein Gerät erkennbar ist?

In bluetoothctl können Sie den Zeitüberschreitungswert für die Erkennbarkeit mit discoverable-timeout steuern, z.B. wenn Sie es auf 0 setzen, ist das Gerät immer erkennbar.

Wie kann ich überprüfen, ob mein BT/BLE-Gerät Pairing unterstützt oder pairingfähig ist?

Für BT: Während des Pairings mit einem entfernten Gerät – entweder als Central oder als Peripheral – erhalten Sie das folgende LMP-Paket: LMP not accepted ext (Opcode: 0x02) mit der Meldung 'Pairing not allowed' (Fehlercode: 0x18)

Für BLE: Während des Pairings mit einem entfernten Gerät – entweder als Central oder als Peripheral – erhalten Sie das folgende SMP-Paket: SMP Pairing Failed Command (Opcode 0x05) mit Pairing Not Supported (Grund 0x05).

Wie kann ich überprüfen, ob mein BT/BLE-Gerät Secure Connections unterstützt?

Für BT: Überprüfen Sie während des Pairings mit einem entfernten Gerät die Secure Connections-Unterstützung für den Host und den Controller in den LMP-Feature-Paketen, z.B. mit dem folgenden Wireshark-Anzeigefilter: btbrlmp.efeat.scc or btbrlmp.efeat.sch.

Für BLE: Überprüfen Sie während des Pairings mit einem entfernten Gerät im SMP Pairing Request oder Response das AuthReq-Byte, das das Secure Connection-Flag enthält, z.B. mit dem folgenden Wireshark-Anzeigefilter: btsmp.sc_flag == 1.

Wie kann ich überprüfen, ob mein BT/BLE-Gerät CTKD unterstützt?

Für BT: Während des Pairings mit einem entfernten Gerät wird der BLE-SMP-Verkehr über L2CAP getunnelt. Daher sollten Sie mit dem Wireshark-Filter btl2cap.payload ein Paket vom Central zum Peripheral sehen, dessen Nutzlast mit 0x01 beginnt (SMP Pairing Request), und ein weiteres Paket in die andere Richtung mit einer Nutzlast, die mit 0x02 beginnt (SMP Pairing Response). Außerdem sollten Sie weitere rohe L2CAP-Pakete sehen, die die SMP-Schlüsselverteilungsphase codieren.

Für BLE: Überprüfen Sie während des Pairings mit einem entfernten Gerät im SMP Pairing Request oder Response, ob sowohl der Central als auch der Peripheral bereit sind, während der SMP-Schlüsselverteilung einen Link-Key zu senden und zu empfangen, z.B. mit dem folgenden Wireshark-Filter btsmp.key_dist_linkkey or btsmp.key_dist_linkkey.

Tool herunterladen