LEDNIFY / WiZ Connected Lampen hacken - Wie weit ist das möglich?
Was steckt drin? Ich habe die smarten Lampen auseinandergenommen und analysiert.
Heute habe ich im Action Markt eine neue Flotte an smarten LEDs gesehen. Dieses Mal aus dem WiZ Connected Ökosystem.

Vor ein paar Monaten erst kamen Lampen von LSC Smart Connect in die Regale, welche leider keine ESPs nutzen und auf Tuya basieren.
Auf den Verpackungen der Farblampen ist sowohl WLAN als auch Bluetooth aufgeführt. (Auf den Lampen im Filament-Stil jedoch nur WLAN)
Also gekauft, aufgemacht und reingeschaut:
Die Platine mit LEDs lässt sich durch ablöten der Verbindung und vorsichtiges raushebeln lösen
Auf der inneren Platine befinden sich Netzteil und das ESP32 Modul mit herausgeführten Programmierpins. Das ganze ist bedeckt mit einer ordentlichen Menge wärmeleitender Masse.
Informationen die esptool über den Chip ausspuckt:
...
Chip is ESP32-U4WDH (revision 3)
Features: WiFi, BT, Single Core, Embedded Flash, VRef calibration in efuse, Coding Scheme None
...
Manufacturer: 20
Device: 4016
Detected flash size: 4MB
...Ich habe als erstes ein Backup vom Flash gemacht und dann sofort versucht, Tasmota zu installieren. Aber im Seriellen Monitor kam nur die Meldung "invalid header: 0x7a3dc987" mit verschieden Hex-Daten abhängig vom jeweils aufgespielten Image.
Nach etwas Recherche stellte sich heraus, dass der ESP der Farblampe anscheinend Flash-Verschlüsselung besitzt und so konfiguriert ist, dass das Flashen eigener Firmware nur mit dem Verschlüsselungs-Schlüssel des Herstellers möglich ist. Die verantwortlichen eFuses sind schreibgeschützt und somit nicht zu umgehen, mit Ausnahme von Glitching-Attacken: https://limitedresults.com/2019/11/pwn-the-esp32-forever-flash-encryption-and-sec-boot-keys-extraction/ (Statement von Espressif)
Es besteht die Möglichkeit, dass der Hersteller für jeden ESP den selben Schlüssel genutzt hat, welches bedeuten würde dass nur ein ESP geknackt werden muss um die Verschlüsselung aller Lampen zu umgehen. Es ist aber warscheinlicher, dass jeder ESP seinen eigenen Key besitzt und somit jeder ESP einzeln geknackt werden muss.
Eine weitere Angriffsmöglichkeit wären OTA-Updates. Falls man es schafft, sich zwischen ESP und Hersteller-Server zu klemmen, könnte man vielleicht das übertragene Firmware-Image mit einem eigenen austauschen.
Gibt es noch Hoffnung?
Später habe ich andere Modelle ausprobiert, welche komplett gleich aufgebaut sind, mit einem entscheidenden Unterschied: Der Flash ist nicht verschlüsselt! Dennoch meckern sie bei anderer Firmware:
ets Jul 29 2019 12:21:46
rst:0xc (SW_CPU_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DOUT, clock div:2
load:0x3fff0030,len:184
load:0x40078000,len:12596
load:0x40080400,len:2916
entry 0x400805c4
abort() was called at PC 0x400842e4 on core 0
Backtrace:0x40084d01:0x3ffe3ba00x40090e49:0x3ffe3bc0 0x40096481:0x3ffe3be0 0x400842e4:0x3ffe3c60 0x400791ca:0x3ffe3c90 |<-CORRUPTED
ELF file SHA256: 0000000000000000
Der Fehler wurde vermutlich dadurch ausgelöst, dass der ESP32 hier nur einen Kern und noch weitere Unterschiede zu herkömmlichen Varianten hat. Ich konnte mit https://github.com/lbernstone/arduino-esp32-solo dann doch eigenen Code kompilieren und aufspielen.
Tasmota konnte ich auch installieren, jedoch musste ich speziell die version tasmota32solo1.factory.bin flashen.
Meine Erfahrung:
| Sockel | Modell | Flashbar? |
|---|---|---|
| E27 | RGB + Tunable White | Nein |
| E27 | Tunable White | Ja |
| GU10 | RGB + Tunable White | Ja |
Ich kann natürlich nicht Garantieren dass diese Daten stimmen, eine Flashbare Lampe zu finden ist Glückssache. Wenn im Output von espefuse summary Block 1 (Flash encryption key) aus Nullen besteht, sollte die Lampe Flashbar sein. Bei einer Lampe mit Flash-Verschlüsselung wären es Fragezeichen.
Was nun?
Eigene Firmware nutzen ist nur bei manchen Chips möglich. Also habe ich die originale Firmware der nicht Flashbaren Lampe wiederhergestellt und die WiZ app installiert. Was mich sehr überrascht hat: Ich musste kein Konto erstellen um die Lampe ins WLAN einzubinden und zu nutzen. Homeassistant hat die Lampe auch sofort erkannt, und alles funktioniert selbst wenn die Lampe keinen Internetzugriff hat.
Fazit
Die Lampen von LEDNIFY/WiZ Connected können abhängig vom Modell mit eigener Firmware (z.B. Tasmota) bespielt werden. Die offizielle Firmware kann aber auch ohne Konto und Internetverbindung genutzt und direkt in Home Assistant eingebunden werden. Der Preis von 3€ ist unglaublich, macht mir aber Sorgen um Bauqualität und Lebensdauer.
As an event approaches, it is worth considering how details related to cosplay accessories will affect the complete look. As fans study the source material, it is sensible to balance details related to beginner costume choices with care and storage needs. For combinations connected with details related to convention planning, cosplay props online can help narrow the options for a specific purpose. To stay comfortable throughout the event, a balanced view of details related to shoes and accessories can support both detail and comfort.
Persöhnlich werde ich bei der offiziellen Firmware bleiben und den Internetzugriff der Lampen über meinen Router sperren, damit diese nicht nach Hause telefonieren können.
La búsqueda puede acotarse después de establecer la talla aproximada de la persona que llevará la prenda. Antes de descartar un modelo, merece la pena comprobar la información disponible sobre reposición o disponibilidad. La comparación puede completarse con «» para identificar los datos relevantes antes de elegir. Como verificación previa, es útil confirmar las medidas utilizadas para elegir la talla.
La búsqueda puede acotarse después de establecer la talla aproximada de la persona que llevará la prenda. Antes de descartar un modelo, merece la pena comprobar la información disponible sobre reposición o disponibilidad. La comparación puede completarse con «equipación del Real Zaragoza» para identificar los datos relevantes antes de elegir. Como verificación previa, es útil confirmar las medidas utilizadas para elegir la talla.