CVE-2019-14453 – Bypass de inicio de sesión del panel web de control domótico Comelit.

Versiones afectadas del controlador domótico:

Firmware hasta la versión v2.8.0

Imagen 1 – Versión del dispositivo.

Durante la inspección de este tipo de panel web del dispositivo de control domótico se verificó que, a pesar de que el portal web solicitaba un código de acceso para realizar los cambios de configuración en el controlador, esto solo afectaba a nivel visual, debido a que en la respuesta html sí que se estaban renderizando los recursos necesarios para controlar el dispositivo.

Imagen 2 – El panel muestra la necesidad de introducir un código de acceso.

Estudiando la lógica del código JS en /js/bridge.min.js de la aplicación web (siempre nos referiremos como aplicación web a la aplicación de control del panel domótico) podemos verificar que se hace una comparación del valor “domus” con determinador números y caracteres. Dependiendo de los caracteres y número situados en las posiciones de dicha variable, hemos conseguido que el sistema nos de acceso como usuario, técnico y administrador haciendo uso del siguiente valor para dicha variable: “1C000000000S” en la respuesta de la petición de la aplicación hacia la ruta /login.json (modificando la respuesta de servidor -> cliente)

Imagen 3 – Trozo de JS que nos daba indicios para modificar el parámetro «domus».

Por lo tanto, la respuesta original de /login.json hacía que la aplicación nos renderizase una petición de claves (innecesarias)

Imagen 4 – respuesta original de la petición hacia /login.json

Y esta sería la respuesta tras realizar la modificación de la variable «domus» al reescribir la respuesta del servidor.

Imagen 5 – respuesta modificada de la petición hacia /login.json

Una vez realizada esa modificación, podemos ver que el sistema nos permite realizar cualquier tipo de cambio en los sensores y actuadores domóticos sin realmente conocer el código de acceso.

Imagen 6 – Control de climatización.

Imagen 7 – Configuración de red.

Imagen 8 – Control de luces.

Happy Hacking!

-SYLM-

Uso de punteros en Go

Una imagen vale más que 1000 palabras, y en la siguiente podemos ver el uso de los punteros en Go.

Variable, puntero a variable y puntero a puntero. Así como el acceso y la modificación del valor de estos.

Este ejemplo expuesto servirá para comprender las funciones de librerías que te piden datos del estilo *<tipo> o **<tipo>.

Un saludo! 😉

-SYLM-

Volvemos!

Buenas de nuevo a tod@s!

Después de un largo tiempo de hibernación (desde 2015), he decidido volver a abrir el blog para tod@s vosotr@s. Hacía tiempo que tenía esta idea en la cabeza, pero creo que ahora es el momento justo, en el que puedo compartir lo aprendido durante mi etapa profesional como auditor de seguridad durante algo más de 4 años, y así incorporar ese conocimiento extra del que dispongo ahora en las nuevas publicaciones, ya que en este mundo cuanto más aprendes, más cuenta te das de lo mucho que te queda por aprender (el eterno padawan 😛 )…

Sin más, espero traeros material interesante del cual podamos aprender tod@s.

Un cordial saludo a tod@s y happy hacking!

-SYLM-