Vulnerabilidad U-Tec Ultraloq UL3 - Parte 1

TL; DR El U-Tec Ultraloq UL3 se puede desbloquear a través de escrituras características BLE GATT de un usuario no autorizado debido a un cifrado débil.

Este video muestra el script en acción y desbloqueando el candado.

 
 

Antecedentes:

Spanalytics examina periódicamente el espacio de seguridad de IoT en busca de vulnerabilidades de implementación de protocolos y protocolos publicados. La vulnerabilidad U-Tec Ultraloq BLE publicada en junio de 2019 por PenTest Partners fue una de esas vulnerabilidades que llamó nuestra atención. Compramos un candado para investigación y luego lo reservamos hasta agosto de 2020 cuando Tripwire Research publicó un informe sobre las vulnerabilidades que habían encontrado en Ultraloq. En ese momento, Spanalytics se estaba preparando para una próxima demostración programada para el mes de RIot Virtual Developer en septiembre. La demostración se titulaba "Qué buscar en el tráfico de Bluetooth" y parecía una buena razón para usar Ultraloq y ver si podíamos replicar el éxito de Pen Test Partners al romper el bloqueo de BLE. Esta publicación de blog detallará el trabajo y los resultados de la prueba Ultraloq BLE.

Pruebas:

La publicación de blog de Pen Test Partners sobre la vulnerabilidad de bloqueo nos dio un punto de partida.

Esta publicación de blog nos proporcionó el UUID característico de BLE GATT. Entonces, primero, intentamos conectarnos a la cerradura y leer la característica.

 

Figura 1 Conexión exitosa de gatttool y lectura característica de UUID

 

La cerradura aceptó nuestra solicitud de conexión y respondió con el valor característico de GATT. Entonces, la siguiente pregunta era cómo usar ese valor para desbloquear el candado.

La publicación del blog Pen Test Partners nos dijo que hay una clave AES hecha del token concatenado con la cadena 'Anviz.ut'. Eso fue útil, pero aún necesitábamos conocer el comando de desbloqueo y algunos detalles más sobre el cifrado AES. Luego giramos para mirar la aplicación. Sabíamos que la publicación de Pen Test Partners había estado disponible durante más de un año y, según la publicación del blog, no había una solución para la clave de cifrado BLE obtenible, por lo que supusimos que la versión actual de la aplicación se ofuscaría para dificultar la ingeniería inversa. Un vistazo rápido a los resultados de ejecutar la aplicación de Android u-tec apk a través de jadx confirmó que ese era el caso.

 
 

Figura 2 Salida de utec apk de JADX

 

Luego buscamos una versión anterior de la aplicación. Las versiones anteriores eran fáciles de encontrar con una búsqueda rápida en Google, y seleccionamos una versión con una fecha de lanzamiento anterior a la publicación del blog Pen Test Partners. Ejecutar el apk a través de JADX para obtener Java dio mejores resultados y una gran cantidad de código para revisar.

esto parece prometedor

Figura 3 Salida de la aplicación ultraloq de JADX

 

Una búsqueda en la cadena 'Anviz.ut' o el UUID del token arrojó algunos resultados útiles. La siguiente diapositiva muestra algunos extractos de código que muestran la formación de la clave.

 

Figura 4 Código de la aplicación que muestra la formación de la clave a partir de una cadena fija y lectura de token sobre BLE

A continuación, capturamos el tráfico de Bluetooth entre la aplicación y la cerradura usando Panalyzr.

Figura 5 Spanalytics Panalyzr

 

Figura 6 Panalyzr capturó datos BLE entre la aplicación y la cerradura

 

Al observar el tráfico de Bluetooth capturado por Panalyzr, vemos la siguiente secuencia de mensajes en el tráfico entre la aplicación y la cerradura.

 

Figura 7 Secuencia de mensajes de aplicación y bloqueo

Después de otro vistazo a la aplicación descompilada, determinamos la configuración de cifrado AES y escribimos un script para descifrar el tráfico rastreado. El código de la aplicación descompilado mostró que el primer byte del marco es el valor máximo de un byte. Esto proporcionó una forma de verificar que obtuvimos el descifrado correcto. A partir de la aplicación descompilada, sabíamos que un cuadro debería comenzar con 7f, seguido de la longitud del cuadro y el valor del comando. La aplicación descompilada también nos indicó el valor del comando de desbloqueo, por lo que sabíamos qué buscar en el cuarto byte.

 

Figura 8 Código para la formación de datos BLE desde la aplicación

 

Después de verificar que habíamos descifrado correctamente los comandos, usamos la misma configuración de cifrado para cifrar los comandos y desbloquear el bloqueo. Aquí hay una captura de pantalla de la captura de Panalyzr de los comandos enviados a la cerradura.

 

Figura 9 Panalyzr capturó datos entre nuestro script y la cerradura

Y aquí hay una captura de pantalla de la salida del script (con un token diferente al de los datos capturados, ya que se tomó en un momento diferente).

 

Figura 10 Salida del script de desbloqueo

Se puede ver una demostración de esta vulnerabilidad de Ultraloq en una presentación en vivo en "Qué buscar en su tráfico de Bluetooth" presentado como parte de la semana 3 del mes de desarrolladores virtuales de RIot. La presentación de Spanalytics comienza a las 26:30 en el video, y la demostración de bloqueo comienza a las 1:09: https://youtu.be/H7nB_wkgLBQ

Ultraloq tiene vulnerabilidades más allá de BLE, según lo documentado por Pen Test Partners y Tripwire Research en las siguientes publicaciones de blog:

Socios de prueba de penetración: El candado no tan ultra

Investigación de cable trampa: La vulnerabilidad de IoT Smart Lock destaca problemas más grandes

¿Y qué hay de esta declaración del blog Pen Test Partners? “Como el código de la cerradura es un número entero de seis dígitos, esto hace posible intentar un ataque de fuerza bruta contra la cerradura a través de la interfaz BLE”.

Nuestras pruebas se limitaron a demostrar que podíamos desbloquear un candado después de capturar un ejemplo de comunicación entre el candado y la aplicación. Parece un ataque plausible, pero no intentamos probar un ataque de fuerza bruta en una cerradura donde la comunicación no se capturó previamente.

¡Gracias por leer!

 

Por favor Contáctenos para obtener más información o para participar en el programa beta de PANalyzr.

Todos los productos:

PANalyzr

Paquete de expansión IoT

Antena dipolo

Amplificador de radiofrecuencia de 30 dB

Receptor GPS

Adaptador USB Q59

Antena direccional

Camiseta PANalyzr

“Recientemente utilicé el PANalyzr para verificar el comportamiento de una baliza lista para usar que no tenía documentación suficiente. ¡PANalyzr hizo que la integración entre nuestros concentradores y la baliza fuera rápida y fácil!”

es_MXES