Ingénierie inverse d'un appareil domestique intelligent ESP32 : contrôle à distance et intégration avec Home Assistant
Obnubilé par l'idée de connecter tous ses appareils à Home Assistant, l'auteur s'est attaqué à un purificateur d'air élégant contrôlable uniquement via son application propriétaire. Pour parvenir à une automatisation parfaite, il a procédé à une ingénierie inverse de l'appareil basé sur ESP32. L'analyse de l'application a révélé une connexion WebSocket à un serveur cloud. En interceptant le trafic réseau et en utilisant un proxy UDP pour le transférer au serveur cloud, les paquets UDP ont été captés. Ces paquets étaient chiffrés. Le démontage de l'appareil a révélé un microcontrôleur ESP32-WROOM-32D ; le micrologiciel a été extrait à l'aide d'esptool. L'analyse a révélé l'utilisation de la bibliothèque mbedtls pour le chiffrement, identifiant AES-128-CBC comme algorithme. Enfin, un script Node.js a été écrit pour réaliser une attaque man-in-the-middle (MITM), intégrant l'appareil à Home Assistant.