zurück zum Artikel

Spiel mir den Bluez

Daniel Bachfeld

Mit Bluetooth-Scannern kann der Anwender die Umgebung überwachen und seine Handys auf Sicherheitslücken überprüfen. heise Security hat sich einige kostenlose Werkzeuge für verschiedene Betriebssysteme angeschaut.

Bluetooth ist mittlerweile allgegenwärtig: Computer, Peripherie, PDAs und Handys nutzen den Nahfunk zum einfachen Datenaustausch. Leider wirft Bluetooth auch einige Sicherheitsprobleme auf. So ist etwa die Authentifizierung beim Verbindungsaufbau zweier Geräte mitunter fehlerhaft implementiert, so dass ein Angreifer aus der Ferne ohne Angabe einer PIN auf das Gerät zugreifen und es manipulieren kann; mitunter reicht auch die Angabe eines bekannten Standardpasswortes. Obendrein bereichert Bluetooth umtriebige Viren und Würmer um ein weiteres Verbreitungsmedium. Mit speziellen Tools kann der Anwender seine Geräte aber selbst auf Sicherheitslücken untersuchen und durch die Überwachung der näheren Umgebung Angriffen vorbeugen - oder einfach mal schauen, wer sonst noch so funkt.

Um den Äther nach sichtbaren Bluetooth-Geräten abzusuchen, bieten moderne Betriebssysteme bereits integrierte Funktionen. Die zeigen in der Regel aber nur spärliche Informationen an. Auskunftsfreudiger sind spezielle Bluetooth-Scanner, die neben Namen und Bluetooth-Adresse auch noch die auf dem Gerät verfügbaren Dienste und Eigenschaften sowie deren Parameter anzeigen, etwa ob ein Datenaustausch über das Object Exchange Protocol (OBEX) möglich ist oder das Gerät über eine Freisprechfunktion verfügt.

BlueScanner

Mit der Option "Hide Inactive Devices" lässt sich die Historie von BlueScanner abschalten.

Für Windows gibt es den kostenlosen BlueScanner des Herstellers NetworkChemistry, der recht übersichtlich alle verfügbaren Daten anzeigt [1] [1]. Anhand der dargestellen Symbole ist schnell ersichtlicht, ob es sich um einen Laptop, Desktop oder Handy handelt. In einem seperaten Fenster listet er gleich alle auf den Geräten gefunden Dienste auf.

Wer nur wissen will, welche Geräte einen bestimmten Service anbieten, markiert den Dienst und bekommt anschließend nur die passenden angezeigt. Um die Services eines Endpunktes zu sehen, genügt ein Doppelklick auf das Icon. BlueScanner merkt sich alle jemals aufgespürten Bluetooth-Devices und zeigt sie zusammen mit den gerade aktiven an. Einmal gestartet scant das Programm die Umgebung zyklisch ab.

BlueSweep

Die grafische Oberfläche ist trotz der vielen Farben und Fenster unübersichtlich.

Gleich in drei Fenstern präsentiert das ebenfalls unter Windows laufende kostenlose BlueSweep von AirMagnet seine Informationen [2] [2]. Zu den Geräten liefert es sogar die Herstellerangabe des Bluetooth-Moduls. Das gesamte Ergebnis lässt sich für die spätere Verarbeitung in eine Datei speichern. Eine Historie kennt BlueSweep nicht.

Wer mit Linux im Äther auf Fischzug gehen will, kann das Open-Source-Tool BTScanner einsetzen. Es sucht nach benachbarten Geräten und zeigt in seiner Textoberfläche neben den Namen und Addressen auch die Geräteklasse an [3] [3]. Die Interpretation dessen überlässt das Tool aber dem Anwender. Ausführlicher berichtet dagegen BlueSniff über die Umgebung [4] [4]. Es zeigt zusätzlich Hersteller und Signalstärke an und um welche Art Gerät es sich handelt. Allerdings lief BlueSniff, das sich beim Starten als Bluetooth Scanner 0.1 meldete, im Test nicht stabil und stürzte des Öfteren ab.

Linux BTScanner

Um was es sich bei den gefundenen Geräten handelt, muss der Anwender selbst herausfinden.
BlueSniff

Wenn BlueSniffer nicht gerade abstürzt, zeigt es auch die Qualität der Bluetooth-Verbindung an.
HCItool

Wie bei den anderen Scanner kann auch bei hcitool die Suche aufgrund des Frequenzsprungverfahrens von Bluetooth länger dauern.

Anders als bei Windows sind die Scanner unter Linux aber nur Frontends für Kommandozeilen-Tools, die mit dem offiziellen Bluetooth-Protocol-Stack Bluez mitgeliefert werden. Dazu gehören ebenfalls die Bluez-Utilities (bluez-utils), die flexible Konfigurations- und Testwerkzeuge mitbringen [5] [5]. So lassen sich etwa mit dem Befehl hcitool scan in Reichweite befindliche Bluetooth-Devices aufspüren. Allerdings zeigt es nur den Namen und die Bluetooth-Adresse an. Mit der Option info lassen sich aber weitere Funktionen abfragen.

Über das Service Discovery Protocol (SDP) erfragt das Utility sdptool weitere Dienste des Gerätes. Zusammen mit der Option browse und der Bluetoothadresse erhält der Anwender eine ausführliche Liste der Services und wie man mit ihnen kommunizieren kann.

Wer nicht nur seine Umgebung absuchen will, sondern Sicherheitslücken aufspüren möchte, muss auf weitere Werkzeuge zurückgreifen. Um sie bedienen und die Ergebnisse auch verstehen zu können, ist allerdings ein wenig Know-how über den Aufbau des Bluetooth-Stacks notwendig.

Wie schon der TCP/IP-Stack enthält auch der Bluetooth-Stack mehrere Schichten. Für den Nahfunk bauen zwei Geräten nur eine einzige physikalische Verbindung auf. Um trotzdem mehrere logische Verbindungen etablieren zu können, haben die Entwickler das Protokoll L2CAP eingeführt, mit dem die Daten der logischen Verbindungen gemultiplext über den Äther geschickt werden. Für die Zuordnung der Verbindungen zu den Diensten verwendet Bluetooth die den Netzwerkports ähnlichen Program and Service Multiplexer (PSM). Insgesamt gibt es 32768 PSMs, wobei der Bereich von 1-4096 reserviert ist. Ab PSM 4097 können beliebige Applikationen dynamische Ports öffnen. Bestimmte Well-known-Ports gibt es auch bei Bluetooth: Über PSM 1 ist immer das Service Discovery Protocol (SDP) zu erreichen, auf PSM 5 horcht das Telephony Control Protocol (TCS), während an PSM 3 der RFCOMM-Server hängt. RFCOMM ist in der Lage 30 serielle RS-232-Verbindungen zu emulieren, auf denen weitere Dienste und Protokolle wie OBEX Push, OBEX FTP und PPP aufsetzen.

SDPtool

Das Service Discovery Protocol verrät dem Anwender, dass das Gerät ein Modem zur Interneteinwahl besitzt.

Normalerweise liefert eine Anfrage an das SDP alle angeboten Dienste des Gerätes zurück. Dass das nicht immer so ist, zeigen aber Handys wie das Nokia 631, 6310i und andere, die in früheren Firmware-Versionen eine Art Hintertür integriert haben. Erstmals entdeckte der Bluetooth-Sicherheitsspezialist Martin Herfurt diese auch als BlueBug bezeichnete Sicherheitslücke, bei der über nicht dokumentierte offene RFCOMM-Ports der Zugriff auf das Gerät ohne Authentifizierung beziehungsweise Pairing möglich ist [6] [6]. Damit lassen sich unter anderem alle Kontaktdaten auf der SIM-Karte lesen, löschen und ändern, Rufumleitungen einrichten und Verbindungen zu beliebigen, also auch kostenpflichtigen, Nummern aufbauen.

Um manuell zu überprüfen, ob das eigene Handy ebenfalls solche Lücken aufweist, sind mehrere Schritte notwendig. Zuerst überprüft der Anwender mit dem Tool rfcomm_scan aus der Werkzeugsammlung BT-Audit, welche Ports offen und welche geschlossen sind [7] [7]. Der Scanner versucht dabei, mit jedem Port eine Verbindung aufzunehmen. Mit offenen Ports kann man sich in der Regel ohne Pairing oder Nachfrage des Geräts verbinden. Der Verbindungsversuch auf einem geschlossenen Port hingegen lässt auf dem Handy einen Dialog erscheinen und einen Warnton ertönen.

rfcomm_scan

Je nach untersuchtem Gerät kann ein Portscan bis zu 2 Minuten dauern.

Was man mit einem offenen Port anfangen kann, hängt davon ab, welcher Server dahintersteckt. Im Falle der BlueBug-Lücke horcht bei den betroffenen Nokia-Modellen auf den RFCOMM-Ports 17 und 18 ein AT-Befehlsinterpreter, der Kommandos entgegennimmt und ausführt. Wie von Modems bekannt, lassen sich damit bestimmte Konfigurationen ändern, Infos abrufen und Nummern wählen.

Dazu ist der Aufbau einer Bluetooth-Verbindung erforderlich, was sich leicht mit rfcomm connect 0 'BT-Adresse' 17 bewerkstelligen lässt. Da RFCOMM eine serielle Schnittstelle emuliert, funktioniert die Kommunikation mit dem Handy anschließend auch über das Programm Minicom (9600 Baud, 8N1) oder das Tool cu. Steht die Verbindung zum Gegenüber, hängt die Fernsteuerbarkeit nur noch vom Umfang des AT-Befehlssatzes des Gerätes ab.

rfcomm bind

Um ein Handy mit BlueBug-Lücke fernzusteuern, reichen unter Linux bereits zwei Befehle.

Mitunter stößt der Scanner auch auf offene Ports, bei denen man mit Minicom und Co nichts ausrichten kann. Hier ist dann meist ein spezieller Client erforderlich, der das verwendete Protokoll spricht. Welches das ist, muss man in der Regel allerdings selbst rausfinden.

Nicht alle angreifbaren Dienste verraten sich durch offene Ports. So erlaubt etwa Ericssons T610 das Abziehen des Telefonbuchs per OBEX ohne Authentifizierung, obwohl der für das Object-Pull zuständige Port eigentlich geschlossen ist. Er öffnet sich erst nach bestimmten Befehlen auf dem offenen Object-Push-Port. Diese auch BlueSnarfing genannte Attacke implementiert ein spezielles Tool gleichen Namens, das alle erforderlichen Schritte automatisch durchführt [8] [8].

Bluesnarfer

Bei diesem Handy waren auf den ersten zehn Speicherplätzen nur uninteressante Telefonnummern zu finden.

Um die eine Schicht tiefer liegenden PSMs zu scannen, steht der ebenfalls in der BT-Audit-Sammlung enthaltene Scanner psm_scan bereit [7] [9]. Ähnlich wie rfcomm_scan testet es, ob die Ports offen sind, indem es versucht eine Verbindung aufzubauen. Da das Tool alle 32768 PSMs durchprobiert, kann der komplette Scan etwas dauern. Allerdings zeigt es das Ergebnis des gerade überprüften PSMs sofort an. Üblicherweise sind die auch per SDP abfragbaren Well-known-PSMs 1,3 und 5 immer erreichbar. Wie bei RFCOMM kann man aber auch auf offene PSMs stoßen, auf denen ein undokumentierter, vom SDP nicht angezeigter Dienst arbeitet.

Bislang gibt es zwar keine Berichte über undokumentierte PSMs, bei der Vielfalt der zur Zeit angebotenen Handys ist aber nicht auszuschließen, dass sie nur noch nicht gefunden wurden. Ein Angriff darauf erfordert allerdings genaues Verständnis der Funktionsweise des dahintersteckenden Dienstes.

All diese Linux-Tools finden sich im Übrigen in der gut gepflegten Tool-Sammlung Auditor. Diese auf Knoppix beruhende Linux-Distribution hat sich auf Security-Tools spezialisiert und lässt sich sowohl als Live-CD nutzen als auch auf Festplatte installieren [9] [10].

Unter Umständen kann es interessant sein, aus der Ferne das Modell des Handys zu ermitteln, etwa um abzuschätzen, wieviele potenziell verwundbare Geräte gerade in der Nähe sind. Standardmäßig tragen die Hersteller zwar die Modellbezeichnung als Bluetooth-Name ein, viele Anwender ändern diesen Eintrag jedoch. Leider gibt es keine andere direkte Möglichkeit, das Handy-Modell herauszufinden. Auch die Bluetooth-Adresse, die den MAC-Adressen bei Ethernet ähnelt, lässt keine solchen Rückschlüsse zu.

Mit BluePrinting gibt es aber einen rudimentären Ansatz, Handys an ihrer Antwort auf eine SDP-Anfrage zu erkennen [10] [11]. Dazu werden Teile der Antwort gehasht und mit einer Tabelle bereits bekannter Werte verglichen. Da die vorhandene Tabelle recht überschaubar ist, erkennt das gleichnamige Tool bisher nur wenige Handymodelle. Selbst bei vermeintlich bekannten Modellen kann das Tool versagen, da gleiche Modelle in der Firmware-Version variieren und so zu unterschiedlichen Hashes führen.

Für die Luftaufklärung unterwegs sind zwar auch Laptops geeignet, noch mobiler und unauffälliger sind aber Smart-Handys mit dem Betriebssystem Symbian. Das eigens für das Nokia 6600 geschriebene Tool Blooover scant die Umgebung nach Geräten ab, die man anschließend auf Wunsch auf die BlueBug-Lücke untersuchen kann [11] [12]. Über die Einstellungen von Blooover darf der Anwender festlegen, was es auf dem gegenüberliegenden Handy alles probieren soll. Neben dem Abziehen der SMS-Nachrichten und des Telefonbuchs konfiguriert das Toool auch die Rufumleitung und fügt sogar neue Telefonbucheinträge hinzu.

Außer BlueBugging kann Blooover eigentlich nicht viel. Mit dem freien Symbian-Tool BT Browser kann der Anwender seinem Handy aber eine weitere Applikationen hinzufügt, die Einzelheiten zu angebotenen Diensten anzeigt [12] [13].

Der Nachteil beim Einsatz der auf Symbian beruhenden Programme liegt in der geringen Bluetooth-Reichweite der Handys. An einen Laptop kann der Anwender zur Reichweitenverlängerung einen Bluetooth-USB-Dongle der Klasse 3 anschließen.

Mit den genannten Tools lassen sich mögliche Probleme schnell erkennen, um gezielt Gegenmaßnahmen zu ergreifen. Gerade bei Firmenhandys sollte ein Verantwortlicher prüfen, wie es um die Sicherheit der Geräte bestellt ist und gegebenenfalls die Konfiguration ändern oder ein Firmware-Update einspielen. Die Tools sollten nur gegen die eigenen Systeme oder im Einverständnis mit dem Eigentümer durchgeführt werden.

In den falschen Händen mutieren inbesondere die BlueBugging und -Snarfing-Tools zu Angriffswerkzeugen, die im einfachsten Fall zur Preisgabe von Kontaktdaten führen. Im schlimmsten Fall verursachen sie Datenverlust oder eine hohe Handyrechnung durch ungewollte Telefonate.

[1] BlueScanner [15] von Network Chemistry

[2] BlueSweep [16] von Airmagnet

[3] btscanner [17] von Pentest

[4] Bluesniff [18] auf Shmoo.org

[5] Bluetooth-Utilities [19] auf bluez.org

[5] Bluetooth-Utilities [20] auf bluez.org

[6] Beschreibung zu BlueBug [21] auf trifinite.org

[7] BT-Audit [22]

[8] Bluesnarf [23] Sourcecode von Dante Alighieri

[9] Linux-Security-Distribution Auditor [24]

[10] Blueprinting [25] Tool und Einführung auf trifinite.org

[11] Blooover [26]

[12] BT Browser [27] (dab [28])


URL dieses Artikels:
https://www.heise.de/-270756

Links in diesem Artikel:
[1] #lit-u2
[2] #lit-u2
[3] #lit-u2
[4] #lit-u2
[5] #lit-u2
[6] #lit-u2
[7] #lit-u2
[8] #lit-u2
[9] #lit-u2
[10] #lit-u2
[11] #lit-u2
[12] #lit-u2
[13] #lit-u2
[14] 
[15] http://www.bluescanner.org/
[16] http://www.airmagnet.com/products/bluesweep.htm
[17] http://www.pentest.co.uk/cgi-bin/viewcat.cgi?cat=downloads&section=01_bluetooth
[18] http://bluesniff.shmoo.com/
[19] http://www.bluez.org/download.html
[20] http://www.bluez.org/download.html
[21] http://trifinite.org/trifinite_stuff_bluebug.html
[22] http://www.betaversion.net/btdsd/
[23] http://www.alighieri.org/project.html
[24] http://www.remote-exploit.org/index.php/Auditor_main
[25] http://trifinite.org/trifinite_stuff_blueprinting.html
[26] http://trifinite.org/trifinite_stuff_blooover.html
[27] http://www.benhui.net/modules.php?name=Bluetooth&page=btbrowser_v20.html
[28] mailto:dab@ct.de