Bluetooth ist ein drahtloser Technologiestandard, der für den Datenaustausch zwischen zwei Geräten über kurze Entfernungen verwendet wird. Bluetooth ist in erster Linie für einen geringen Stromverbrauch mit einer kurzen Reichweite ausgelegt. Mit der Verbreitung von Smartphones hat sich Bluetooth im Alltag durchgesetzt und wird von sehr vielen unterschiedlichen Geräteklassen eingesetzt. Das reicht von einfachen Bluetooth-Schaltern oder Brustgurten zur Pulsmessung über den drahtlosen Datenaustausch zwischen zwei Smartphones bis hin zur Übertragung von Musik auf Lautsprecher und Kopfhörer.
Die Reichweite ist abhängig von der Variante und wird in Klassen unterteilt, aber die effektiven Reichweiten variieren in der Praxis. Bluetooth-Geräte der Klasse 3 haben eine Reichweite von bis zu einem Meter, die Klasse 2, die am häufigsten in mobilen Geräten zu finden ist, zehn Meter, und die Klasse 1, hauptsächlich für industrielle Anwendungsfälle, hundert Meter. Die tatsächliche Reichweite, die durch eine bestimmte Verbindung erreicht wird, hängt von den Eigenschaften der Geräte an beiden Enden der Verbindung sowie von den Luftbedingungen dazwischen und anderen Faktoren ab.
Das Bluetooth-Protokoll wurde 1999 ins Leben gerufen und seitdem kontinuierlich weiterentwickelt. So wurden auch moderne Features wie Mesh und IPv6 realisiert und verschiedene Energiesparmodi. Aktuell ist die Version 5.2, die am 6. Januar 2020 vorgestellt wurde. Aktuelle Geräte verwenden die Version 5.1.
Grundsätzlich ist das Sicherheitsniveau bei Bluetooth hoch, obwohl es immer wieder bekannte Sicherheitslücken gibt, die häufig aber eher theoretischer Natur sind. Allerdings werden immer wieder Sicherheitsfunktionen von Herstellern deaktiviert, wodurch sich bereits bekannte Angriffsszenarien realisieren lassen. Die energiesparende Variante Bluetooth LE (low energy) verzichtet dabei häufig auf Schutzmaßnahmen und kann verhältnismäßig einfach getrackt werden. Zum Beispiel können Bluetooth-Verbindungen mit der Hardware Bluefruit LE Sniffer oder Ubertooth One analysiert und zum Teil mitgeschnitten werden.
Bluefruit LE Sniffer
Der Bluefruit LE Sniffer ist mit einem speziellen Firmware-Image programmiert, das den Bluetooth Chip in einen einfach zu bedienenden Bluetooth Low Energy Sniffer verwandelt. Der Datenaustausch zwischen zwei BLE-Geräten kann passiv erfasst und die Daten in Wireshark analysiert werden. Eine Anleitung wird von Adafruite bereitgestellt. Das Gerät kann nur Bluetooth Low Energy Verbindungen analysieren, es funktioniert nicht mit klassischen Bluetooth Geräten.
Ubertooth One
Der Ubertooth One ist eine Open Source 2,4 GHz drahtlose Entwicklungsplattform, die sich für Bluetooth-Experimente eignet. Kommerzielle Bluetooth-Monitoring-Geräte werden zum Teil sehr teuer angeboten, daher wurde der Ubertooth als kostengünstige Plattform für die Überwachung und Entwicklung neuer drahtloser Technologien konzipiert. Der Ubertooth One wurde von Mike Ossmann bei Great Scott Gadgets im Jahr 2011 entwickelt, als er erkannte, dass es keinen handelsüblichen Bluetooth-Adapter gab, der die erforderlichen Funktionen bot. Der Ubertooth One ist eine Open-Source-Hardware. Alle Hardwarespezifikationen, Designdateien und Zusatzinformationen finden Sie auf GitHub.
Das Gerät wurde in erster Linie als fortschrittlicher Bluetooth-Empfänger konzipiert und bietet Funktionen, die über die herkömmlichen Adapter hinausgehen, so dass es als Bluetooth-Signalaufzeichnungs- und Überwachungsplattform verwendet werden kann. Obwohl die Gerätehardware die Signalübertragung unterstützt, unterstützt die Firmware derzeit nur den Empfang und minimale Übertragungen für Werbekanäle. Der Ubertooth One basiert auf dem ARM Cortex-M3 Mikrocontroller und ist in der Lage, Signale im 2,4 GHz ISM-Band mit einer schmalen Bandbreite von nur 1 MHz zu erfassen und zu demodulieren. Hinweis: Die Antenne muss immer angeschlossen sein, wenn der Ubertooth One mit dem Rechner verbunden wird.
Es gibt einige Voraussetzungen, die vor der Erstellung von libbtbbb und den Ubertooth-Tools installiert werden müssen. Daher müssen als Erstes die folgenden Pakete installiert werden:
root@kali:~# apt install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev pkg-config libpcap-dev python-numpy python-qt4
Jetzt erstellen wir uns noch einen Arbeitsordner:
root@kali:~# mkdir uebertooth root@kali:~# cd uebertooth
Als Nächstes muss die Bluetooth-Basisbandbibliothek (libbtbb) für die Ubertooth-Tools zum Dekodieren von Bluetooth-Paketen erstellt werden:
root@kali:~/uebertooth# wget https://github.com/greatscottgadgets/libbtbb/archive/2018-12-R1.tar.gz -O libbtbb-2018-12-R1.tar.gz root@kali:~/uebertooth# tar -xf libbtbb-2018-12-R1.tar.gz root@kali:~/uebertooth# cd libbtbb-2018-12-R1 root@kali:~/uebertooth/libbtbb-2018-12-R1# mkdir build root@kali:~/uebertooth/libbtbb-2018-12-R1# cd build root@kali:~/uebertooth/libbtbb-2018-12-R1/build# cmake .. root@kali:~/uebertooth/libbtbb-2018-12-R1/build# make root@kali:~/uebertooth/libbtbb-2018-12-R1/build# sudo make install root@kali:~/uebertooth/libbtbb-2018-12-R1/build# ldconfig
Das Ubertooth-Repository enthält Hostcode zum Schnüffeln von Bluetooth-Paketen, zur Konfiguration des Ubertooth und zum Aktualisieren der Firmware. Alle drei werden standardmäßig mit der folgenden Methode erstellt und installiert:
root@kali:~/uebertooth# wget https://github.com/greatscottgadgets/ubertooth/releases/download/2018-12-R1/ubertooth-2018-12-R1.tar.xz root@kali:~/uebertooth# tar xf ubertooth-2018-12-R1.tar.xz root@kali:~/uebertooth# cd ubertooth-2018-12-R1/host root@kali:~/uebertooth/ubertooth-2018-12-R1/host# mkdir build root@kali:~/uebertooth/ubertooth-2018-12-R1/host# cd build root@kali:~/uebertooth/ubertooth-2018-12-R1/host/build# cmake .. root@kali:~/uebertooth/ubertooth-2018-12-R1/host/build# make root@kali:~/uebertooth/ubertooth-2018-12-R1/host/build# sudo make install root@kali:~/uebertooth/ubertooth-2018-12-R1/host/build# ldconfig
Nachdem alle notwendigen Installationen durchgeführt worden sind, kann der Ubertooth One angeschlossen werden. Als Erstes sollte überprüft werden, ob die aktuelle Firmware installiert ist.
root@kali:~/uebertooth# ubertooth-util -v
Sollte nicht die aktuelle Firmware installiert sein, muss ein Update durchgeführt werden.
root@kali:~/uebertooth/# ubertooth-dfu -d ubertooth-2018-12-R1/ubertooth-one-firmware-bin/bluetooth_rxtx.dfu -r root@kali:~/uebertooth/# ubertooth-util -r
Als Einstieg verschaffen wir uns ein Überblick, welche Bluetooth Geräte in Reichweite sind. Dazu wird das integrierte Bluetooth-Modul genutzt und nicht der Ubertooth One, da dieser vom System nicht als Standardschnittstelle interpretiert wird. Als Erstes muss überprüft werden, ob ein Bluetooth-Modul vom System erkannt worden ist:
root@kali:~# hciconfig -a hci0: Type: BR/EDR Bus: USB BD Address: 00:03:C9:80:08:0B ACL MTU: 377:10 SCO MTU: 16:0 DOWN RX bytes:2752 acl:0 sco:0 events:80 errors:0 TX bytes:320 acl:0 sco:0 commands:80 errors:0 Features: 0xff 0xff 0x0d 0x00 0x00 0x00 0x00 0x00 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: Link mode: SLAVE ACCEPT
Das Gerät hci0 kann mit dem folgenden Befehl aktiviert werden:
root@kali:~# hciconfig hci0 up
Nun kann der eigentliche Scan durchgeführt werden. Mehrere Pakete werden aufgezeichnet und nach kurzer Zeit wird eine Übersicht der aktiven Geräte ausgegeben.
root@kali:~# ubertooth-scan
Mittels einer grafischen Übersicht kann angezeigt werden, wie das Bluetooth-Spektrum genutzt wird. Dazu muss die Python-Bibliothek pyside2 installiert werden.
root@kali:~# pip install pyside2
Sollte pip nicht verfügbar sein, kann die Funktion einfach installiert werden:
root@kali:~# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py root@kali:~# python get-pip.py root@kali:~# pip install -U pip
Die Analyse wird mit dem folgenden Befehl gestartet:
root@kali:~# ubertooth-specan-ui
Der aufgefangene Traffic kann mit dem folgenden Befehl angezeigt werden:
root@kali:~# ubertooth-rx
Gegenmaßnahmen
Da ein Angreifer in unmittelbarer Nähe sein muss, spielen vor allem gezielte Angriffe eine große Rolle. Werden Geräte mit Bluetooth entwickelt, sollten alle vom Standard vorgesehenen Sicherheitsfeatures implementiert werden. Als Endkunde hilft es nur, die Bluetooth-Verbindung bei Bedarf zu deaktivieren.
Artikelserie
Dieser Blogartikel ist Teil der Artikelserie Netzwerk Spionage, in der ich verschiedene Arten von Angriffsmethoden über die Netzwerkschnittstellen beschreibe, damit diese erkannt und effektive Gegenmaßnahmen getroffen werden können. In der Artikelserie, die dem Themenschwerpunkt Hacking Hardware angehört, werden die folgenden Artikel erscheinen:
- Spionage von Bluetooth-Verbindungen
- LAN-Netzwerke ausspionieren
- LAN-Netzwerke infiltrieren
- WLAN-Verbindungen unterbrechen
- WLAN Man-in-the-Middle-Angriffe
- 12.11.2024 (Workshop) Hacking- und Pentest-Hardware Workshop, scheible.it, Böblingen (weitere Infos)
Hallo, eine Bekannte hatte den Fall, dass sie in der S-Bahn etwas aufdringlich von einem Mann angesprochen wurde. Später sendete er ihr sogar eine SMS!
Ist es möglich, über Bluetooth o.ä. ungefragt die Handy-Nummer zu ermitteln?
Vielen Dank