Underc0de

[In]Seguridad Informática => Hacking => Mensaje iniciado por: HATI en Noviembre 06, 2016, 05:26:08 PM

Título: GATTacker - Bluetooht Low Energy Man In The Middle
Publicado por: HATI en Noviembre 06, 2016, 05:26:08 PM
(https://4.bp.blogspot.com/-7SecHU0U2zE/WA7Gz7xJRHI/AAAAAAAAGW4/7a2TonHqwlcJvNCsYZzXwUtdF2ry-3JWQCLcB/s640/GATTack_io.png)




¿De que va todo esto?

Bluetooth Low Energy (https://en.wikipedia.org/wiki/Bluetooth_low_energy) incorpora emparejamiento de dispositivos y encriptación de capa de enlace. Sin embargo, una cantidad significativa de dispositivos no implementa estas características. O no proporcionan seguridad de transmisión en absoluto, o aseguran por medios propios en capas de aplicación. Los vendedores prometen "cifrado de grado militar de 128 bits" y "nivel de seguridad sin precedentes", no dispuestos a compartir detalles técnicos. Hemos visto tales declaraciones antes, y muchas veces no resistieron a una evaluación profesional independiente y resultó ser "*snake oil". Ya es hora de verificar estas afirmaciones, ahora es posible con la ayuda de nuestra nueva herramienta de código abierto.

(*Snake oil: se refiere al producto de criptografía o seguridad que hace un exagerado anuncio de lo que es capaz de hacer, dando al usuario un falso sentido de la seguridad. Glosario: www.marcelopedra.com.ar)

Compartimos varias vulnerabilidades ya identificadas cómo ejemplo. Esperamos que la comunidad aumente su número, ayudando a desarrollar las nuevas características de la herramienta, cooperando con los vendedores, y mejorando la seguridad para los usuarios finales.




Ataques posibles:

Los dispositivos pueden ser atacados de varias maneras: desde la simple denegación de servicio, pasando por el spoofing, la interceptación de transmisión pasiva y activa, hasta el abuso de los servicios del dispositivo mal configurado. Los ataques pueden ser entre otros:


Puedes encontrar ejemplos de vulnerabilidades identificadas en el documento adjunto (https://github.com/securing/docs/raw/master/whitepaper.pdf).




Dispositivos vulnerables:

El ataque es más eficaz contra los dispositivos que no implementan las funciones de seguridad Bluetooth (emparejamiento). Hemos examinado un puñado de dispositivos, incluyendo:


Alrededor de 2 de 10 (sobre todo los relojes inteligentes) no utilizan las funciones de seguridad Bluetooth correctamente.




Hardware necesario para el ataque:

La funcionalidad de nuestra herramienta se probó en Raspberry Pi y otros sistemas Linux con adaptadores Bluetooth 4. Algunos de los ataques pueden realizarse utilizando un smartphone u otros dispositivos embebidos. Es técnicamente posible implementar el dispositivo atacante en un minúsculo módulo de tamaño baliza (unos pocos cm cuadrados), accionado por batería.




Funcionamiento de la herramienta:

La herramienta crea una copia exacta del dispositivo atacado en la capa Bluetooth, a continuación engaña a la aplicación móvil para interpretar sus emisiones y conectarse a ella en lugar de al dispositivo original. Al mismo tiempo, mantiene la conexión activa al dispositivo, y le envía los datos intercambiados con la aplicación móvil. De esta manera, actuando como "Man-in-the-Middle", es posible interceptar y / o modificar las peticiones y respuestas transmitidas.




¿Por qué la aplicación se conecta al dispositivo "clonado" en lugar del original?

La mayoría de las aplicaciones móviles inician la conexión al dispositivo buscando paquetes publicitarios emitidos por el dispositivo. Por lo general, los dispositivos optimizan los intervalos de publicidad con el fin de minimizar el consumo de energía. El atacante sin embargo puede difundir los anuncios pertinentes con intervalos mínimos (mucho más rápido). La aplicación móvil interpretará la primera publicidad recibida, y en este caso probablemente será la falsa.




¿Funciona contra conexiones cifradas?

Actualmente, la herramienta funciona para dispositivos que no implementan el cifrado de la capa de enlace Bluetooth LE. Sin embargo, hay sorprendentemente muchos de estos dispositivos.




Componentes de la herramienta





Prerrequisitos:





Instalación:

npm install gattacker




Configuración:

Ejecutar ambos componentes y configurar variables en config.env:


Si ejecutas los módulos "centrales" y "periféricos" en cajas separadas con una sola interfaz BT4, puedes dejar los valores comentados.





Iniciar dispositivo "central"

Sudo node ws-slave

Se conecta al periférico de destino y actúa como servidor websocket.

Depurar:

DEBUG = ws-slave nodo sudo ws-slave




Escáner:

Escaneo de anuncios

node scan

Sin parámetros escanea para difundir anuncios y los registra como archivos json (.adv.json) en DEVICES_PATH.

Explorar servicios y características:

node scan <peripheral>

Explora los servicios y las características de los periféricos elegidos. Guarda la estructura de servicio del explorador en el archivo json (.srv.json) en DEVICES_PATH.




Clonación de direcciones MAC:

Para muchas aplicaciones es necesario clonar la dirección MAC del dispositivo original. Una herramienta de ayuda bdaddr de Bluez se proporciona en helpers/bdaddr.

cd helpers/bdaddr
make


wrapper script:

./mac_adv -a <advertisement_json_file> [ -s <services_json_file> ]




Reiniciar dispositivo:

hciconfig <hci_interface> reset




Infografía:

(http://www.gattack.io/infographic.jpg)



DOCUMENTACIÓN:


Página oficial GATTack (http://www.gattack.io)

GitHub GATTack (https://github.com/securing/gattacker)

Whitepaper GATTack (http://gattack.io/whitepaper.pdf)

Canal Youtube GATTack (https://www.youtube.com/channel/UCq8PmY8uYer4CYb6dgPSZIg)






Un saludo, HATI  ;D