GATTacker - Bluetooht Low Energy Man In The Middle

Iniciado por HATI, Noviembre 06, 2016, 05:26:08 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 06, 2016, 05:26:08 PM Ultima modificación: Noviembre 06, 2016, 09:41:05 PM por HATI




¿De que va todo esto?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

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:
  • Deegación de servicio
  • Spoofing (falsas indicaciones, desactivar alarmas)
  • Interceptación de datos (información personal, autenticación, etc.)
  • Tomar el control sobre el dispositivo (abrir el bloqueo inteligente, modificar caracteristicas del hogar inteligente)


Puedes encontrar ejemplos de vulnerabilidades identificadas en el No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.




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:

  • Relojes inteligentes
  • Token de autenticación
  • Punto de venta inteligente
  • Cerraduras inteligentes
  • Soluciones anti robo
  • Automatización del hogar
  • Buscadores inteligentes
  • Sensores
  • Balizas
  • Varios gadgets.

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

  • El módulo central (ws-slave.js) escucha anuncios, escanea los servicios del dispositivo para clonar en "periféricos" y reenvía los mensajes de lectura/escritura/notificación intercambiados durante el ataque activo.

  • El módulo "periférico" (advertise.js) carga la especificación de dispositivo (anuncio, servicios, características, descriptores) recogida por el módulo "central" y actúa como el dispositivo "emulador".

  • Las funciones de gancho opcionales permiten manipular solicitudes y respuestas.

  • Escáner de ayuda scout.js escanea para los dispositivos y crea los archivos de JSON con los anuncios y los servicios + características del dispositivo.

  • Además, se adjunta un script de interfaz BlueRadios AT en standalone / blueRadiosCmd.js.




Prerrequisitos:





Instalación:

Código: php
npm install gattacker





Configuración:

Ejecutar ambos componentes y configurar variables en config.env:

  • NOBLE_HCI_DEVICE_ID: dispositivo noble ( "central", ws-slave)
  • BLENO_HCI_DEVICE_ID: dispositivo bleno ( "periférico", anunciar)

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

  • WS_SLAVE: Dirección IP de la caja ws-slave
  • DEVICES_PATH: ruta para almacenar archivos json




Iniciar dispositivo "central"

Código: php
Sudo node ws-slave


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

Depurar:

Código: php
DEBUG = ws-slave nodo sudo ws-slave





Escáner:

Escaneo de anuncios

Código: php
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:

Código: php
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.

Código: php
cd helpers/bdaddr
make


wrapper script:

Código: php
./mac_adv -a <advertisement_json_file> [ -s <services_json_file> ]





Reiniciar dispositivo:

Código: php
hciconfig <hci_interface> reset





Infografía:




DOCUMENTACIÓN:


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta






Un saludo, HATI  ;D






Jugar o perder