Reverse Engineering eines ESP32-basierten Smart-Home-Geräts: Fernsteuerung und Home-Assistant-Integration

2025-04-15
Reverse Engineering eines ESP32-basierten Smart-Home-Geräts: Fernsteuerung und Home-Assistant-Integration

Der Autor, besessen davon, alles mit Home Assistant zu verbinden, nahm sich einen eleganten Luftreiniger vor, der nur über eine proprietäre App steuerbar ist. Um eine nahtlose Automatisierung zu erreichen, führte er Reverse Engineering an dem ESP32-basierten Gerät durch. Die Analyse der App ergab eine WebSocket-Verbindung zu einem Cloud-Server. Durch das Abfangen des Netzwerkverkehrs und die Verwendung eines UDP-Proxys zum Weiterleiten an den Cloud-Server wurden UDP-Pakete erfasst. Diese Pakete waren verschlüsselt. Die Demontage des Geräts enthüllte einen ESP32-WROOM-32D-Mikrocontroller; die Firmware wurde mit esptool extrahiert. Die Analyse ergab die Verwendung der mbedtls-Bibliothek für die Verschlüsselung und identifizierte AES-128-CBC als Algorithmus. Schließlich wurde ein Node.js-Skript geschrieben, um einen Man-in-the-Middle-Angriff (MITM) durchzuführen und das Gerät in Home Assistant zu integrieren.

Entwicklung