HomePwn: Swiss Army Knife for Pentesting of IoT Devices (Parte 1 de 2) #IoT #BLE #Pentesting
Recientemente hemos sabido que volveremos a estar en BlackHat Europe. Por tercera vez tengo el honor de poder llevar una de las herramientas que hacemos en ElevenPaths y en el departamento de Ideas Locas. Pero antes de explicar qué es esto de HomePwn, me gustaría explicar de dónde viene la idea, de dónde y cuándo surge esta idea que re-orienta los proyectos de Ethical Hacking a todos esos dispositivos conectados a una red WiFi, a un dispositivo BLE, a AirDrop o mediante tecnología NFC que tenemos en casa o que tenemos en una oficina. Una evolución del pentesting típico de redes y sistemas.
En la navidad de 2018, mientras uno estaba de vacaciones, estuve trabajando con Ruby y la posibilidad de hacer una herramienta que cargara módulos, como hace nuestra querida iBombshell o nuestro querido uac-a-mola, con el objetivo de tener funcionalidades de descubrimientos de servicios que podemos encontrar en una red WiFi casera.
La idea era hacer uso de los protocolos SSDP y mDNS para poder descubrir dichos servicios y ver qué cosas se puede hacer con los dispositivos que salen en una casa y que no son ordenadores “puros”. Lo primero que me vino a la cabeza fue hacer uso de mi script “chromecrash” para detectar un Chromecast y hacerlo caer de forma reiterada en una red.
La idea fue madurando esa misma navidad y pensé en no solo descubrir dispositivos, si no también poder realizar acciones sobre los dispositivos. Ver si las cámaras de una casa tienen recursos abiertos por las que la cámara queda abierta al público - como ya hemos visto muchas veces -, ver si se puede hacer uso de BLE para realizar lectura de características y permisos de los dispositivos BLE que hay en una casa y conseguir encender una bombilla, descubrir los servicios de un NAS e interactuar con ellos.
Cualquier cosa conectada en una red de casa o de oficina era objetivo de esta herramienta. Otro ejemplo era el de descubrir impresoras que tenía AirPrint y poder imprimir con ella. La evaluación de la seguridad de cualquier dispositivo de la casa o de una oficina es muy útil, ya que conectamos a una red dispositivos muy heterogéneos y que pueden dar sensación de falsa seguridad, cuando realmente estamos exponiendo activos importantes, ya que se convierten en el punto más débil.
Al volver de la navidad, Lucas y Josué se pusieron con la herramienta, ya en Python, para poder llevar la idea más lejos con nuevas funcionalidades y nuevas investigaciones que fueron surgiendo. Es una herramienta viva y que ha tenido buena acogida, aunque de momento sigue sin ser presentada, ya que lo haremos en BlackHat Europe. De momento, recibimos feedback a través de Github de la herramienta y Lucas le sigue dando el cariño que se merece.
HomePwn: Una herramienta multi-tecnología que ayuda en el pentest
Si algo tenemos claro es que HomePwn se ha convertido en una herramienta multi-tecnología, ya que proporciona al usuario, con el hardware adecuado, la posibilidad de hacer uso de diferentes tecnologías. Al final, tanto en un hogar como en una oficina, la tecnología es múltiple. Es decir, no solo tenemos conexión a una red WiFi o cableada.
Los dispositivos interactúan entre las redes WiFi, la conexión BLE, la tecnología NFC, con su AirDrop y así con cualquier tecnología que podamos imaginar. Desde un dispositivo se puede pasar a otro a través de una red WiFi o a través de una conexión BLE, por lo que debemos entender que los riesgos están ahí.
En el paper publicado en el repositorio de Github de la herramienta se puede encontrar más información sobre el porqué de la herramienta y los casos de uso. Su versión en español y su versión en inglés están disponibles.
HomePwn: Framework
HomePwn tiene una arquitectura modular, en la cual cualquier usuario puede extender la base de conocimiento y crear nuevas funcionalidades de manera sencilla. Podemos decir que hay, principalmente, dos tipos de componentes:
Tal y como viene especificado en el repositorio Github de la herramienta, la instalación de ésta es rápida y sencilla. Hay que disponer de un Ubuntu, Debian o similar, en las últimas versiones. Hay que tener Python 3.6 o superior. Para poder ejecutar el script de install.sh sobre un Ubuntu 18.04 se puede ejecutar lo siguiente:
En el primer ejemplo que vamos a mostrar, haremos uso de la tecnología BLE a través de HomePwn. Hay que tener en cuenta que se puede requerir de hardware adicional para hacer estos casos de uso.
En este caso, se hace descubrimiento de dispositivos BLE y se pueden listar los que hay en el radio de acción y son "conectables". Después se puede ver cómo se leen características, una vez conectado, y como se puede escribir valores en ciertas características que tienen ese permiso.
Figura 8: Demo de Hacking BLE devices con HomePWN
Este caso es el mismo que mostramos ya con un ejemplo claro en el artículo que publicamos hace un tiempo llamado "Hacking in your life: Jugando con los encuentra-todo".
Figura 9: Enviar comandos BLE a un encuentra-todo
Y en esta imagen podéis ver cómo se ejecuta el mismo envío de comandos utilizando el framework de HomePWN que hemos liberado.
Pero este es solo el primero de los ejemplos de todo lo que se puede hacer con HomePWN y en la segunda parte veremos una buena cantidad de ejemplos utilizando la herramienta. Pero eso lo vemos mañana, que el artículo está quedando largo para un post.
Saludos!
******************************************************************************************
- HomePwn: Swiss Army Knife for Pentesting of IoT Devices (Parte 1 de 2)
- HomePwn: Swiss Army Knife for Pentesting of IoT Devices (Parte 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
Figura 1: HomePwn: Swiss Army Knife for Pentesting of IoT Devices (Parte 1 de 2) |
En la navidad de 2018, mientras uno estaba de vacaciones, estuve trabajando con Ruby y la posibilidad de hacer una herramienta que cargara módulos, como hace nuestra querida iBombshell o nuestro querido uac-a-mola, con el objetivo de tener funcionalidades de descubrimientos de servicios que podemos encontrar en una red WiFi casera.
Figura 2: Libro de Ethical Hacking en 0xWord |
La idea era hacer uso de los protocolos SSDP y mDNS para poder descubrir dichos servicios y ver qué cosas se puede hacer con los dispositivos que salen en una casa y que no son ordenadores “puros”. Lo primero que me vino a la cabeza fue hacer uso de mi script “chromecrash” para detectar un Chromecast y hacerlo caer de forma reiterada en una red.
Figura 3: HomePwn en BlackHat Europe 2019 |
La idea fue madurando esa misma navidad y pensé en no solo descubrir dispositivos, si no también poder realizar acciones sobre los dispositivos. Ver si las cámaras de una casa tienen recursos abiertos por las que la cámara queda abierta al público - como ya hemos visto muchas veces -, ver si se puede hacer uso de BLE para realizar lectura de características y permisos de los dispositivos BLE que hay en una casa y conseguir encender una bombilla, descubrir los servicios de un NAS e interactuar con ellos.
Cualquier cosa conectada en una red de casa o de oficina era objetivo de esta herramienta. Otro ejemplo era el de descubrir impresoras que tenía AirPrint y poder imprimir con ella. La evaluación de la seguridad de cualquier dispositivo de la casa o de una oficina es muy útil, ya que conectamos a una red dispositivos muy heterogéneos y que pueden dar sensación de falsa seguridad, cuando realmente estamos exponiendo activos importantes, ya que se convierten en el punto más débil.
Figura 4: HomePWN en el GitHub de ElevenPaths |
Al volver de la navidad, Lucas y Josué se pusieron con la herramienta, ya en Python, para poder llevar la idea más lejos con nuevas funcionalidades y nuevas investigaciones que fueron surgiendo. Es una herramienta viva y que ha tenido buena acogida, aunque de momento sigue sin ser presentada, ya que lo haremos en BlackHat Europe. De momento, recibimos feedback a través de Github de la herramienta y Lucas le sigue dando el cariño que se merece.
HomePwn: Una herramienta multi-tecnología que ayuda en el pentest
Si algo tenemos claro es que HomePwn se ha convertido en una herramienta multi-tecnología, ya que proporciona al usuario, con el hardware adecuado, la posibilidad de hacer uso de diferentes tecnologías. Al final, tanto en un hogar como en una oficina, la tecnología es múltiple. Es decir, no solo tenemos conexión a una red WiFi o cableada.
Los dispositivos interactúan entre las redes WiFi, la conexión BLE, la tecnología NFC, con su AirDrop y así con cualquier tecnología que podamos imaginar. Desde un dispositivo se puede pasar a otro a través de una red WiFi o a través de una conexión BLE, por lo que debemos entender que los riesgos están ahí.
Figura 5: Paper de HomePwn en Español |
En el paper publicado en el repositorio de Github de la herramienta se puede encontrar más información sobre el porqué de la herramienta y los casos de uso. Su versión en español y su versión en inglés están disponibles.
HomePwn: Framework
HomePwn tiene una arquitectura modular, en la cual cualquier usuario puede extender la base de conocimiento y crear nuevas funcionalidades de manera sencilla. Podemos decir que hay, principalmente, dos tipos de componentes:
• Módulos de descubrimiento: Estos módulos proporcionan funcionalidades relacionadas con la etapa de descubrimiento, independientemente de la tecnología que se quiera utilizar. Se puede hacer descubrimiento de dispositivos en una red, dispositivos conectados a una red WiFi a través del modo monitor, dispositivos cercanos con BLE, etcétera.
Figura 6: Modulos en HomePWN |
• Módulos específicos de cada tecnología: La implementación de módulos orientados a WiFi, BLE o NFC copan este tipo de módulos. Uno se sorprende del número de módulos de este tipo que podemos encontrar.Prerrequisitos
Tal y como viene especificado en el repositorio Github de la herramienta, la instalación de ésta es rápida y sencilla. Hay que disponer de un Ubuntu, Debian o similar, en las últimas versiones. Hay que tener Python 3.6 o superior. Para poder ejecutar el script de install.sh sobre un Ubuntu 18.04 se puede ejecutar lo siguiente:
> sudo apt-get update
> cd [path to the HomePWN project]
> sudo ./install.shCasos de uso a modo ejemplo
En el primer ejemplo que vamos a mostrar, haremos uso de la tecnología BLE a través de HomePwn. Hay que tener en cuenta que se puede requerir de hardware adicional para hacer estos casos de uso.
Figura 7: HomePwn framework |
En este caso, se hace descubrimiento de dispositivos BLE y se pueden listar los que hay en el radio de acción y son "conectables". Después se puede ver cómo se leen características, una vez conectado, y como se puede escribir valores en ciertas características que tienen ese permiso.
Figura 8: Demo de Hacking BLE devices con HomePWN
Este caso es el mismo que mostramos ya con un ejemplo claro en el artículo que publicamos hace un tiempo llamado "Hacking in your life: Jugando con los encuentra-todo".
Figura 9: Enviar comandos BLE a un encuentra-todo
Y en esta imagen podéis ver cómo se ejecuta el mismo envío de comandos utilizando el framework de HomePWN que hemos liberado.
Figura 10: Descubrimiento de dispositivos "conectables" por BLE |
Pero este es solo el primero de los ejemplos de todo lo que se puede hacer con HomePWN y en la segunda parte veremos una buena cantidad de ejemplos utilizando la herramienta. Pero eso lo vemos mañana, que el artículo está quedando largo para un post.
Saludos!
******************************************************************************************
- HomePwn: Swiss Army Knife for Pentesting of IoT Devices (Parte 1 de 2)
- HomePwn: Swiss Army Knife for Pentesting of IoT Devices (Parte 2 de 2)
******************************************************************************************
Para consultas puedes usar el Buzón Público para contactar con Pablo González
No hay comentarios:
Publicar un comentario