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
Komfy-Switch-Wifi-Password-Disclosure — Proof-of-Concept und Bericht, die zeigen, wie Wi-Fi-SSID und -Passwort über BLE von einem D-Link-Komfy-Smart-Switch abgerufen werden können, durch Reverse Engineering der benutzerdefinierten Base64-Kodierung der iOS-App. | Kitploit
Tools/GitHubGitHub/jasondoyle/komfy-switch-wifi-password-disclosure
Bluetooth-SicherheitIoT-SicherheitSchwachstellenanalyseExploitationReverse EngineeringMobile Sicherheit
GitHubjasondoyle/komfy-switch-wifi-password-disclosure

Komfy-Switch-Wifi-Password-Disclosure

Proof-of-Concept und Bericht, die zeigen, wie Wi-Fi-SSID und -Passwort über BLE von einem D-Link-Komfy-Smart-Switch abgerufen werden können, durch Reverse Engineering der benutzerdefinierten Base64-Kodierung der iOS-App.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
1vor 9 JahrenNoch nicht geprüft

Komfy-Switch-Wifi-Password-Disclosure

Einführung
Dieser Beitrag beschreibt meinen Fund an der D-Link Komfy Switch mit Kamera, mit dem sich die zugeordnete WLAN-SSID und das Passwort des Geräts über Bluetooth 4.0 (BLE) auslesen lassen. Die Komfy-Switch ist ein Produkt für Heimsicherheit und Automatisierung, das einen Wandschalter in Ihrem Haus ersetzen kann, um Videoüberwachung, Überwachung von Temperatur, Luftfeuchtigkeit, Luftqualität und Fernsteuerung von Lichtschaltern zu ermöglichen.

Bluetooth-BLE-Profilierung
Vor der weiteren Analyse wurde das BLE-Gerät kurz mit der iOS-App LightBlue profiliert. Zu diesem Zeitpunkt war das Komfy-Gerät online und mit typischen Anwendungsfalleinstellungen konfiguriert. Beim Verbinden mit Komfy über LightBlue fiel mir ein nicht standardmäßiger GATT-Dienst auf, der acht benutzerdefinierte Characteristics (oder Funktionen) offenlegte. Einige dieser Characteristics erhielten eine ungewöhnliche Datenmenge, wenn man bedenkt, dass laut BLE-Spezifikation 20 Byte das Maximum sind. Wenn sowohl das Peripherie- als auch das Master-Gerät dies unterstützen, kann eine höhere MTU ausgehandelt werden, um sogenannte „lange“ Lese- oder Schreibvorgänge zu ermöglichen. Die ersten Screenshots unten zeigen die GATT-Dienste und Characteristics (beginnend mit 0xB002 bis 0xB00A). Die nächsten beiden Screenshots zeigen die beiden Characteristics, auf die sich dieser Beitrag konzentriert (0xB006 und 0xB007). Die Characteristics 0xB006 und 0xB007 zeigten die WLAN-SSID und nach der Dekodierung in ASCII eine Zeichenfolge, die wie Base64 aussah. Die Base64-Dekodierung der Zeichenfolge ergab jedoch keine lesbaren Daten, wie im letzten Screenshot dargestellt.

Die Komfy-App: Verfolgung von Methodenaufrufen
Um die vom Komfy-Gerät implementierten GATT-Characteristics besser zu verstehen, habe ich die Methoden der Komfy-iOS-App mit class-dump-z extrahiert und eine Methoden-Trace-Umgebung für interessante Methoden eingerichtet. Der vollständige Klassen-Dump kann hier eingesehen werden. Besonders interessiert war ich an der Klasse BLEDevice sowie an allen anderen Methoden, die Bluetooth referenzieren. Das Methoden-Tracing kann mit dem Perl-Skript Logify.pl eingerichtet werden, das von Prateek hier beschrieben wird.

Der obige Screenshot zeigt die Methoden-Trace-Ausgabe während einer Neuinstallation und Konfiguration von Komfy. Beachten Sie das WLAN-Passwort „chipotlemakesmehappy“ im Klartext und dann wieder diese Base64-ähnliche Zeichenfolge, die die LightBlue-App zuvor von der GATT-Characteristic 0xB007 abgerufen hatte. Der Trace zeigt tatsächlich einen Aufruf der Methode +[Base64 encode:], was zunächst für Verwirrung sorgte, da sie mit einer Standardbibliothek nicht per Base64 dekodiert werden konnte. Es wurde fast angenommen, dass der Base64-dekodierte Wert verschlüsselt oder weiter kodiert sei, bis klar wurde, dass +[Base64 encode:] eine privat implementierte Methode ist (nicht aus der NSData-Klasse). Diese seltsame Kodierung musste entschlüsselt werden.

Disassemblierung mit Hopper
Nun zur Reverse Engineering der „Base64“-Kodierung, die von D-Link implementiert wurde („Reverse Engineering“ klingt viel schwieriger, als es angesichts des Endergebnisses tatsächlich war). Die Komfy-App in Hopper zu laden und die Methoden -[BLEDevice getWifiPassword:] und +[Base64 decode:] zu analysieren, waren die offensichtlichen Ausgangspunkte. Die Analyse von -[BLEDevice getWifiPassword:] bestätigte, dass die GATT-Characteristic 0xB007 tatsächlich das WLAN-Passwort abrief.

Die ARM-Assembly von +[Base64 decode:] sah der Standardimplementierung der NSData-Klasse ziemlich ähnlich, also wechselte ich zu +[Base64 encode:]. Hopper brachte mich schnell auf die Lösung. In der Nähe einer der Assembly-Anweisungen wurde eine String-Konstante ausgegeben, die alle Buchstaben des Standard-Base64-Alphabets enthielt, jedoch völlig durcheinander. Etwas verlegen, dass ich nicht an eine triviale Substitution gedacht hatte, die nicht schwerer ist als die ursprüngliche Caesar-Chiffre, schrieb ich ein Skript, um die Base64-Zeichen zu entschlüsseln, und siehe da: „chipotlemakesmehappy“ erschien auf dem Bildschirm.

Im Wesentlichen geht man also so vor, um die Zeichenfolge zu entschlüsseln und per Base64 zu dekodieren:

Das vollständige Autopwn-Skript finden Sie hier.

Und ja, Chipotle macht mich wirklich glücklich.

Der Ubertooth-BLE-Mitschnitt kann hier heruntergeladen werden.

Tool herunterladen