1 Punkte von GN⁺ 2025-04-16 | 1 Kommentare | Auf WhatsApp teilen
  • Ein ESP32-basiertes Smart-Home-Gerät wurde per Reverse Engineering analysiert und in Home Assistant integriert
  • Die mobile App wurde untersucht, um die Verbindung zum Cloud-Server zu bestätigen
  • Netzwerkverkehr wurde abgefangen, um die Gerätesteuerung zu erproben
  • Der ESP32-Flash wurde gedumpt und analysiert, um Firmware-Modifikationen zu versuchen
  • Die Paketstruktur wurde analysiert, um Verschlüsselung und Prüfsumme zu verstehen

Einführung

  • In letzter Zeit wird versucht, alle Geräte mit Home Assistant zu verbinden
  • Ein bestimmter Luftreiniger lässt sich nur über seine eigene App verbinden, daher soll er gehackt und integriert werden
  • Es wird auf die Probleme von Produkten hingewiesen, die von Internetverbindung und Cloud-Konto abhängig sind

Plan

  • Es wurde bestätigt, dass die mobile App mit einem Cloud-Server verbunden ist und Fernsteuerung ermöglicht
  • Es wird nach einer Methode gesucht, durch Abfangen des Netzwerkverkehrs das Gerät zu steuern

Analyse der mobilen App

  • Die Android-App wurde analysiert und es wurde bestätigt, dass sie mit React Native entwickelt wurde
  • Es wurde entdeckt, dass sie sich über WebSocket mit dem Cloud-Server verbindet

Netzwerkanalyse

  • Mit Pi-hole wurden DNS-Abfragen überprüft und mit Wireshark der Datenverkehr analysiert
  • Über UDP-Pakete wurde die Kommunikation zwischen Gerät und Server bestätigt

Paketanalyse

  • Mit einem UDP-Proxy wurde der Verkehr zwischen dem Gerät und dem Cloud-Server vermittelt
  • Mit Wireshark wurde die Paketstruktur analysiert und die Möglichkeit von Verschlüsselung festgestellt

Physische Zerlegung

  • Das ESP32-basierte Gerät wurde zerlegt und die Firmware vom Flash-Chip gedumpt
  • Mit esptool wurden die Daten über eine serielle Verbindung ausgelesen

Flash-Analyse

  • Mit esp32knife wurden die Flash-Daten analysiert und die Partitionstabelle geprüft
  • Im FAT-Dateisystem wurden wichtige Dateien gefunden

Erste statische Analyse

  • Mit Ghidra wurden die Strings der Firmware analysiert und die Nutzung einer Kryptobibliothek bestätigt
  • Mit der Bibliothek mbedtls werden die Algorithmen ECDH und HKDF implementiert

Firmware-Modifikation

  • Mit Ghidra wurde die CapSense-Funktion deaktiviert und das Gerät mit der modifizierten Firmware gebootet
  • Das Problem mit der Prüfsumme wurde gelöst und die modifizierte Firmware erfolgreich geflasht

Paket-Header

  • Die Struktur des Paket-Headers wurde analysiert, um Seriennummer und Nachrichtenkennung zu identifizieren
  • Die Muster von Client-Anfragen und Server-Antworten wurden erkannt

Paket-Prüfsumme

  • Die CRC-Prüfsumme wurde überprüft, um die Integrität der Paketdaten zu verifizieren

1 Kommentare

 
GN⁺ 2025-04-16
Hacker-News-Kommentare
  • Die langfristige Lösung besteht darin, keine Haushaltsprodukte zu kaufen, die lokale Steuerung ignorieren

    • Wenn ein WLAN-Passwort zwingend erforderlich ist, würde ich das Produkt zurückgeben
    • Wenn man bereit ist, Sicherheit und Privatsphäre zu opfern, ist das eine persönliche Entscheidung, aber es sollte eine Option geben, dies ohne Funktionsverlust abzulehnen
    • Ich würde keine Türklingelkamera kaufen, die RTSP nicht unterstützt
  • Dass ein Luftreiniger seine Leistung erhöht, wenn die Luftqualität im Innenraum sinkt, erfordert keine IoT-Geräte, keine App, keine Funkkommunikation und keinen Hub

    • Es reicht, den Luftreiniger mit einem Luftqualitätssensor und einem kleinen LCD auszustatten und darüber die Einstellungen anzupassen
    • Dass das Flurlicht automatisch angeht, funktioniert ohne Cloud, HomeAssist, WLAN, Zigbee, App oder Batteriewechsel
    • In den letzten 10 Jahren hat es auch bei Netzwerkausfällen problemlos funktioniert
  • An Verkäufer von ESP32-basierten IoT-Geräten:

    • Das Upgrade smarter Geräte zur Integration in ein Smart-Home-System wirkt sich nicht auf andere Instanzen oder Cloud-Dienste aus
    • Sensible Produktdaten werden verschleiert oder entfernt
  • An Besitzer von ESP32-basierten IoT-Geräten:

    • Man erstellt Open-Source-Projekte, um die Cloud aus Smart-Home-Produkten zu entfernen und sie zu debuggen, und lernt dabei viel über die technischen Aspekte
    • In diesen Beitrag ist viel Arbeit geflossen, und Feedback zum Format wäre willkommen
  • Ich frage mich, ob man herausfinden kann, welche Pins auf dem Board des Geräts verbunden sind, es vollständig mit ESPHome flashen und eine benutzerdefinierte YAML-Konfiguration schreiben könnte

  • Jedes Mal, wenn ich in einem Designteam für IoT-Geräte war, war ein auf Sicherheit fokussierter Ingenieur für den Boot-Schutz zuständig

    • Es überrascht mich, dass es keinen Widerstand gegen das Dumpen und erneute Flashen der Firmware gab
    • Ich frage mich, warum keine Flash-Verschlüsselung verwendet wird
  • Feedback zum Artikel:

    • Die Anmerkung zur Verwendung von Geräteschlüsseln wäre am klarsten, wenn es pro Gerät einen Schlüssel gäbe
    • Ich möchte Feedback zur Komplexität und zu den Risiken der Verwaltung gerätespezifischer Schlüssel teilen
    • Geräteverschlüsselung kann in der Fabrik viele Probleme verursachen und sollte, wenn das Produkt es verkraften kann, besser weggelassen werden
  • Ich frage mich, warum keine standardisierte Lösung verwendet wurde

    • Das scheint kosteneffizienter zu sein, als eine eigene Lösung zu entwickeln
  • Es war selten, dass bei ESP32-IoT-Geräten Firmware-Verschlüsselung verwendet wurde

    • Wenn die Firmware nicht lesbar gewesen wäre, wäre es schwierig gewesen, Zertifikate zu erstellen
    • Gleichzeitig ist es aber beeindruckend
  • Eine Meinung dazu, dass Serviceingenieure entschieden haben, keine Standardprotokolle wie DTLS zu implementieren

    • Ich bin mir nicht sicher, ob jedes Gerät einen eigenen privaten Schlüssel hat
    • Wenn alle Geräte denselben privaten Firmware-Schlüssel teilen, könnte man durch Reverse Engineering eines einzelnen Geräts MITM-Angriffe auf andere Geräte durchführen
  • Wer smarte Geräte verwendet, sollte DD-WRT, OpenWrt, Tomato oder Asuswrt-Merlin nutzen, um die Geräte in einem vom privaten Netzwerk getrennten VLAN zu isolieren

  • Man sollte ein gekauftes Produkt nicht hacken müssen, um es zu benutzen

    • Die "Rent-Seeking"-Ökonomie sollte reguliert oder verboten werden