Ingeniería inversa de los comandos MQTT de una aplicación de alarma

0

Tengo esta alarma llamada Chuango H4 que usa WIFI y GSM para ser controlada a través de una aplicación de Chuango llamada "Casa inteligente".

Quiero poder controlar la alarma por mis propios medios.

Al usar el analizador de paquetes Wireshark, he podido ver la IP donde se conecta y que usa el protocolo MQTT sobre una conexión cifrada TLS v1.2 en el puerto 8883.

No pude descodificar los paquetes TLS que la aplicación estaba enviando al servidor MQTT, pero sí pude conectarme al servidor usando un cliente MQTT de Windows usando esa IP y puerto y las credenciales que utilizo para iniciar sesión en su aplicación (mi nombre de usuario y contraseña).

En resumen, puedo conectarme e iniciar sesión con éxito en el servidor MQTT de Alarm, pero una vez allí no sé qué comandos MQTT debo enviar para armar / desarmar la alarma, etc.

Lo que intenté:

Desencriptar los comandos TLS MQTT en Wireshark: Falla porque a pesar de que puedo obtener la clave secreta principal y aleatoria del cliente de una sesión TLS (que Wireshark debe descifrar) usando mi propio MQTT de Windows personalizado cliente que los imprimirá, ese cliente obviamente no tendrá los comandos de alarma de la aplicación y, por lo tanto, no podré verificar qué comandos debo enviar al servidor.

Modifique la APK de la aplicación de Chuango mediante un editor hexadecimal para que se conecte a mi servidor MQTT personalizado para ver qué comandos envía: Fallé porque no pude encontrar la IP del servidor en el APK en el editor hexadecimal. Supongo que la aplicación obtiene la IP donde debería conectarse dinámicamente.

No sé qué más intentar, estoy tan cerca porque puedo conectarme al servidor MQTT, pero es inútil si no sé qué comandos enviarle para activar / desactivar la alarma.

    
pregunta Aleix 23.07.2018 - 08:55
fuente

0 respuestas

Lea otras preguntas en las etiquetas