2 Punkte von GN⁺ 2023-12-16 | 1 Kommentare | Auf WhatsApp teilen

Reverse Engineering eines Bluetooth-LE-LED-Beleuchtungscontrollers, oder: Wie ich meine Weihnachtsbeleuchtung ruiniert habe

  • Geräte, die über Bluetooth LE kommunizieren und eine App haben, sind es wert, in ein Heimautomatisierungssystem integriert zu werden.
  • Es wurde viel Zeit darauf verwendet, preisgünstige LED-Lichtstreifen durch Reverse Engineering zu automatisieren.
  • Kürzlich gelang es, den billigsten Bluetooth-LE-gesteuerten 5M-nicht-adressierbaren Streifen für £2.38 in nur wenigen Stunden mit Home Assistant zu verbinden.

Schritt 1. Bytes über Drähte

  • Um ein Gerät mit eigener Software zu steuern, ist der erste Schritt, die Bluetooth-Bytes zu untersuchen, die die App an das Gerät sendet.
  • Android macht diesen Prozess einfach. Den Entwicklermodus aktivieren, die Beleuchtungs-App installieren und dann in den Entwickleroptionen Bluetooth HCI snoop aktivieren, um ein Log aufzuzeichnen.
  • Das Log kann in Wireshark geöffnet werden, um die genauen Bytes zu sehen, Wertemuster zu finden und die Byte-Serien für jede Aktion zu identifizieren.

Schritt 2. Replay-Angriff

  • Wenn das Ziel einfach nur ist, das Licht ein- und auszuschalten, können die beobachteten sich wiederholenden Byte-Serien für die Stromsteuerung ausreichen.
  • Mit gatttool kann eine Verbindung zu einem BLE-Gerät hergestellt und das Senden von Bytes getestet werden.

Schritt 3. Android-App dekompilieren

  • Die APK der App herunterladen und in jadx öffnen, um die Geheimnisse im Inneren zu untersuchen.
  • Im Quelltext wurde ein Verweis auf AES gefunden, was auf ein mögliches verschlüsseltes Protokoll hindeutet.
  • Die verschlüsselten Daten ändern sich nicht bei jedem Mal, benötigen auf einem Low-Power-MCU eine schnelle Entschlüsselung und verwenden möglicherweise einen festen Schlüssel, der nicht für jedes Gerät einzigartig ist.

Schritt 4. Alle Funktionen

  • Jede App-Funktion durchgehen und die gesendeten Bytes aufzeichnen.
  • Das hilft dabei, jede Aktion zu protokollieren, sie zu wiederholen, Muster zu entdecken und die erfassten Bytes mit Notizen in Beziehung zu setzen.

Schritt 5. Automatisierter Elektronikschrott-Erzeuger

  • Während der Untersuchung von Farbänderungen wurde beobachtet, dass die App für Rot, Grün und Blau keine Werte über 0x1F sendet.
  • 8-Bit-Werte wurden ausprobiert, und es zeigte sich, dass hellere Farben problemlos funktionieren.
  • Aus Neugier, ob es zusätzliche Effekte gibt, wurde das mit einer einfachen Schleife getestet.
  • Bis zum 10. Effekt funktionierte alles gut, beim 11. wurde ein geheimer Modus entdeckt, und beim 12. kam die Dunkelheit.
  • Ein Neustart wurde versucht, aber die Beleuchtung ging nicht wieder an und sendete auch keine Bluetooth-Werbung mehr, sodass keine Verbindung mehr möglich war.
  • Vermutlich wurde die Firmware durch einen Buffer Overflow beschädigt.
  • Die LEDs selbst sind jedoch standardmäßige adressierbare LEDs und können daher mit einem anderen Mikrocontroller weiterverwendet werden.

Wie könnte ich meine Beleuchtung ruinieren

  • Trotz des Problems wurde der Großteil des Protokolls dokumentiert und ein Github-Projekt erstellt, einschließlich einer benutzerdefinierten Home-Assistant-Komponente.
  • Es funktioniert, aber nur auf eigene Gefahr.

Meinung von GN⁺

  • Das Wichtigste an diesem Artikel ist der DIY-Geist und die Begeisterung für Reverse Engineering, mit denen jemand versucht, die zu Hause verwendete smarte Beleuchtung in ein Automatisierungssystem zu integrieren.
  • Der Reverse-Engineering-Prozess erfordert nicht nur technisches Wissen, sondern auch Problemlösungsfähigkeit und Kreativität, was ihn auch für angehende Softwareingenieure zu einem äußerst spannenden Thema macht.
  • Die Erfahrung eines Fehlschlags zu teilen, hilft anderen, denselben Fehler nicht zu wiederholen, und dieser offene Wissensaustausch ist einer der Kernwerte der Open-Source-Community.

1 Kommentare

 
GN⁺ 2023-12-16
Hacker-News-Kommentare
  • Analyse der entschlüsselten Pakete

    • Der Versuch, die Pakete zu entschlüsseln, zeigte einen festen Header; das fünfte Byte wechselt zwischen 1 und 0 und steht für Ein und Aus, während der Rest mit 0 aufgefüllt ist. Vermutlich handelt es sich um die Befehlslänge, den Befehl ("TURN"), das Argument (0 oder 1) und ein Padding auf 16 Byte.
  • Problem mit der Stromversorgung

    • WS281x-LED-Streifen leuchten sehr hell und verbrauchen viel Strom. Ein 12-V-/3-A-Netzteil reicht gerade so aus, um alle 100 Streifen mit maximaler Helligkeit zu betreiben. Dass die Firmware anscheinend nur 31 von 255 als maximale Helligkeit verwendet, deutet darauf hin, dass möglicherweise eine Sicherung durchgebrannt ist.
  • Versuch des Reverse Engineering verschlüsselter Leuchten

    • Es wurde versucht, die Batterieleuchten Aputure Amaran 60d und SmallRig RM75 per Reverse Engineering zu analysieren, dabei stellte sich jedoch heraus, dass sie verschlüsselt sind. Beide Leuchten verwenden denselben Aushandlungsprozess, aber unterschiedliche Bibliotheken. Es wurde versucht, den Diffie-Hellman-Schlüsselaustausch nachzubilden, aber bei einem zusätzlichen Schritt mit zufällig wirkenden Zahlen (ein weiterer Schlüssel?) konnte der Zweck nicht ermittelt werden, daher wurde aufgegeben. Dieser Beitrag bringt einen auf die Idee, es mit hartkodierten Schlüsseln zu versuchen.
  • Meinung zu BLE-Leuchten

    • Es wurde schon genug über Leuchtensets mit BLE gelesen, und der Hinweis des Autors wird geschätzt. Das erinnert an das Video über analoge Technikverbindungen.
  • Versuch der Automatisierung BLE-verbundener Weihnachtsbeleuchtung

    • Es wurde versucht, BLE-verbundene Weihnachtsbeleuchtung zu automatisieren, dabei entstand jedoch nur Elektroschrott. Jetzt kannst du das auch.
  • Frage zur Nachrichtenverschlüsselung

    • Es wird infrage gestellt, warum die Nachrichten verschlüsselt sind und ob das Standard ist.
  • Kommentar zur Verschlüsselung

    • „Man kann keinen Klartext durch die Luft schicken, das ist unsicher“ und „Keine Sorge, ich habe AES-Verschlüsselung hinzugefügt“.
  • Humorvoller Kommentar zum Hacken von Lichtern

    • Auf „Sag mir, wie ich meine Lichter hacken kann“ folgt die Reaktion „Haha! Liebe ich“.
  • Anfängerfrage zum Reverse Engineering von Govee-Leuchten

    • Anfängerfrage, warum sich WiFi-Leuchten wie die von Govee nicht per Reverse Engineering analysieren lassen und ob MITM (Man-in-the-Middle) schwieriger ist.