Ingeniería inversa de un dispositivo doméstico inteligente ESP32: control remoto e integración con Home Assistant
Obsesionado con conectar todo a Home Assistant, el autor se enfrentó a un elegante purificador de aire controlable solo a través de su aplicación propietaria. Para lograr una automatización perfecta, realizó ingeniería inversa en el dispositivo basado en ESP32. El análisis de la aplicación reveló una conexión WebSocket con un servidor en la nube. Al interceptar el tráfico de red y usar un proxy UDP para reenviar al servidor en la nube, se capturaron los paquetes UDP. Estos paquetes estaban encriptados. Al desmontar el dispositivo, se reveló un microcontrolador ESP32-WROOM-32D; el firmware se extrajo usando esptool. El análisis reveló el uso de la biblioteca mbedtls para el encriptado, identificando AES-128-CBC como el algoritmo. Finalmente, se escribió un script Node.js para ejecutar un ataque man-in-the-middle (MITM), integrando el dispositivo en Home Assistant.