HomePWN y ataques de Replay BLE: Una demo en BlackHat Europe 2019 (Parte 1 de 2)
La próxima semana se celebra la BlackHat Europa de 2019. Allí estaremos para enseñar la herramienta HomePwn que hemos hecho desde Ideas Locas para ElevenPaths. Ya tenemos que es lo que enseñaremos sobre la herramienta, cómo explicaremos las cosas que hace y todo lo que se puede hacer con ella. Como ya hemos comentado es una herramienta que permite auditar y descubrir los “otro tipo de cosas conectadas”, es decir, todo lo que no sea un equipo. Podemos decirlo así.
En el paper de la herramienta se habla de la idea que hay detrás y cómo puede jugar un papel fundamental el descubrir todos esos servicios y tecnologías que se incluyen en el hogar y en la empresa y suponen un nuevo riesgo asociado, tanto a la vida en el hogar como a las funciones y tareas de una organización.
Hoy quiero mostrar una de las demos que realizaremos en el evento de Londres, basada en el uso de tecnología BLE y de los módulos que HomePwn proporciona. La idea es mostrar algo del día a día, que todo el mundo puede tener cerca y que con HomePwn se pueda ver qué ocurre alrededor de dicha tecnología.
Una posible demo sería hacer la prueba de los “encuentra-todo” que actúan por BLE. Tenemos el vídeo para mostrarlo y que recordéis lo que sería la demo, eso sí haciéndola con HomePwn. La demo que queremos hacer también es visual. Para ello, vamos a trabajar con una placa Micro:Bit que dispone de un pequeño programa realizado para simular el comportamiento de un smartlock o cerrojo inteligente.
Figura 4: Demo de enviar comandos vía BLE
Vamos ahora a ver en primer lugar cómo sería ese programa simulado utilizando la placa Micro:Bit y veamos después, en la segunda parte del artículo, la demo completa en vídeo y paso a paso
Smartlock simulado en Micro:Bit
Hace poco un amigo me preguntaba: “Voy a ver qué se puede hacer con esto”. Se refería a las Micro:Bit. La verdad que existen muchos proyectos y es una placa con varios sensores que dan bastante juego. En su día, monté un smartlock simulado para ejemplificar el uso de uno real, pero haciéndolo desde un entorno controlado. Sé que me diréis que hacerlo en la vida real sería más divertido, pero mejor tener el control.
Lo primero es explicar el código. Al iniciar el programa se puede observar un candado dibujado en la pantalla. El objetivo es conseguir abrirlo. En este ejemplo, no hay cifrado entre las partes. La idea es que cuando el usuario utilice su aplicación para enviar los datos necesarios para que el candado se abra, poder capturarlo por alguna vía. Es una prueba muy sencilla que puede ser el ejemplo de un ataque a una sala de una empresa, en un proceso de Red Team o en un Ethical Hacking, así que merece la pena probarlo.
Cuando se recibe conexiones por Bluetooth el programa ejecuta el mayor flujo de bloques que se puede ver. Se observa que se recibe una serie de datos a través de UART. Simplemente se comprueba si lo que se recibe es lo que se espera para abrir el candado, cuyo hecho es ejemplificado a través del dibujo de un candado abierto en la pantalla de display. Cuando se cierra la conexión la placa muestra el mensaje: “Bye!”. El reto, de nivel básico, nos vale para ejemplificar funcionalidades de HomePwn en nuestra querida BlackHat.
La captura de tráfico se puede hacer de dos formas. Si se dispone de la aplicación móvil para poder “jugar” con el dispositivo, se puede hacer uso de la funcionalidad de Android para capturar todo el tráfico Bluetooth que sale del dispositivo. La segunda opción es que, si no tenemos la app, se puede hacer uso de placas Micro:Bit y otros elementos como, por ejemplo, Ubertooth, para poder capturar el tráfico que viaja por el aire.
Para este ejemplo, así lo hicimos. Con dos placas Micro:Bit y el uso de BTLEjack se ponen las placas a escuchar en los canales de Advertisement de BLE, que son el 37, 38 y 39. Mejor sería con tres placas para poder cubrir los tres canales. En el momento en el que se detecta un paquete de conexión, podemos observar la conexión o solicitud de ésta entre dos dispositivos.
Probando y capturando con BTLEJack se obtiene este código: 8dmn4fbh4f#. ¿Qué es eso? Si se vuelve a capturar el tráfico, parece que es el código que abre el candado que hemos implementado. Como se puede ver en la captura anterior, dónde se ve el código de MakeCode, así es. En la segunda parte veremos la demo completa paso a paso con el ataque de BLE Replay.
Saludos,
***********************************************************************************************
- HomePwn y ataques de Replay BLE: Una demo en BlackHat Europe 2019 (1 de 2)
- HomePwn y ataques de Replay BLE: Una demo en BlackHat Europe 2019 (2 de 2)
***********************************************************************************************
Figura 1: HomePWN y ataques de Replay BLE: Una demo en BlackHat Europe 2019 (Parte 1 de 2) |
En el paper de la herramienta se habla de la idea que hay detrás y cómo puede jugar un papel fundamental el descubrir todos esos servicios y tecnologías que se incluyen en el hogar y en la empresa y suponen un nuevo riesgo asociado, tanto a la vida en el hogar como a las funciones y tareas de una organización.
Figura 2: HomePWN en el GitHub de ElevenPaths |
Hoy quiero mostrar una de las demos que realizaremos en el evento de Londres, basada en el uso de tecnología BLE y de los módulos que HomePwn proporciona. La idea es mostrar algo del día a día, que todo el mundo puede tener cerca y que con HomePwn se pueda ver qué ocurre alrededor de dicha tecnología.
Figura 3: Paper de HomePwn Paper
Una posible demo sería hacer la prueba de los “encuentra-todo” que actúan por BLE. Tenemos el vídeo para mostrarlo y que recordéis lo que sería la demo, eso sí haciéndola con HomePwn. La demo que queremos hacer también es visual. Para ello, vamos a trabajar con una placa Micro:Bit que dispone de un pequeño programa realizado para simular el comportamiento de un smartlock o cerrojo inteligente.
Figura 4: Demo de enviar comandos vía BLE
Vamos ahora a ver en primer lugar cómo sería ese programa simulado utilizando la placa Micro:Bit y veamos después, en la segunda parte del artículo, la demo completa en vídeo y paso a paso
Smartlock simulado en Micro:Bit
Hace poco un amigo me preguntaba: “Voy a ver qué se puede hacer con esto”. Se refería a las Micro:Bit. La verdad que existen muchos proyectos y es una placa con varios sensores que dan bastante juego. En su día, monté un smartlock simulado para ejemplificar el uso de uno real, pero haciéndolo desde un entorno controlado. Sé que me diréis que hacerlo en la vida real sería más divertido, pero mejor tener el control.
Figura 5: SmartLock simulado en Micro:Bit |
Lo primero es explicar el código. Al iniciar el programa se puede observar un candado dibujado en la pantalla. El objetivo es conseguir abrirlo. En este ejemplo, no hay cifrado entre las partes. La idea es que cuando el usuario utilice su aplicación para enviar los datos necesarios para que el candado se abra, poder capturarlo por alguna vía. Es una prueba muy sencilla que puede ser el ejemplo de un ataque a una sala de una empresa, en un proceso de Red Team o en un Ethical Hacking, así que merece la pena probarlo.
Figura 6: El Red Team en la empresa |
Cuando se recibe conexiones por Bluetooth el programa ejecuta el mayor flujo de bloques que se puede ver. Se observa que se recibe una serie de datos a través de UART. Simplemente se comprueba si lo que se recibe es lo que se espera para abrir el candado, cuyo hecho es ejemplificado a través del dibujo de un candado abierto en la pantalla de display. Cuando se cierra la conexión la placa muestra el mensaje: “Bye!”. El reto, de nivel básico, nos vale para ejemplificar funcionalidades de HomePwn en nuestra querida BlackHat.
La captura de tráfico se puede hacer de dos formas. Si se dispone de la aplicación móvil para poder “jugar” con el dispositivo, se puede hacer uso de la funcionalidad de Android para capturar todo el tráfico Bluetooth que sale del dispositivo. La segunda opción es que, si no tenemos la app, se puede hacer uso de placas Micro:Bit y otros elementos como, por ejemplo, Ubertooth, para poder capturar el tráfico que viaja por el aire.
Figura 7: BTLEJack en GitHub |
Para este ejemplo, así lo hicimos. Con dos placas Micro:Bit y el uso de BTLEjack se ponen las placas a escuchar en los canales de Advertisement de BLE, que son el 37, 38 y 39. Mejor sería con tres placas para poder cubrir los tres canales. En el momento en el que se detecta un paquete de conexión, podemos observar la conexión o solicitud de ésta entre dos dispositivos.
Figura 8: Captura de tráfico usando BTLEJack |
Probando y capturando con BTLEJack se obtiene este código: 8dmn4fbh4f#. ¿Qué es eso? Si se vuelve a capturar el tráfico, parece que es el código que abre el candado que hemos implementado. Como se puede ver en la captura anterior, dónde se ve el código de MakeCode, así es. En la segunda parte veremos la demo completa paso a paso con el ataque de BLE Replay.
Saludos,
***********************************************************************************************
- HomePwn y ataques de Replay BLE: Una demo en BlackHat Europe 2019 (1 de 2)
- HomePwn y ataques de Replay BLE: Una demo en BlackHat Europe 2019 (2 de 2)
***********************************************************************************************
Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.
Para consultas puedes usar el Buzón Público para contactar con Pablo González
2 comentarios:
Interesante
Me interesa quisiera aprender mas sobre el tema
Publicar un comentario