Está en la página 1de 57

#CyberCamp19

Auditoría y hacking a
dispositivos Bluetooth
Low-Energy (BLE)

Pablo González
@pablogonzalezpe
Whoami
Ingeniero Informático & Máster Seguridad Informática
2009 – 2013 Informática 64
2013 - ?? Telefónica
Director Máster Seguridad de las TIC UEM
Co-fundador de Flu Project
Founder hackersClub
MVP Microsoft 2017-2020
Algunos libros (0xWord):
Metasploit para pentesters
Pentesting con Kali
Ethical Hacking
Got Root
Pentesting con Powershell
Índice
1. Un poco de teoría de BLE
2. Sniffing: Escuchando en mi móvil y en el aire
3. Análisis de PCAP
4. Ataques BLE
5. Suplantación de dispositivos
6. Conclusiones
#CyberCamp19

0.
$> makelab
Antes de empezar…
$>makelab
¿Qué se necesita?
Hardware

2 Micro:Bit
1 Adaptador Bluetooth [Opcional]
1 Dispositivo Android
$>makelab
¿Qué se necesita?
Software

Wireshark
Hcitool / Hciconfig
BtleJack
Bettercap
Gatttool
nRF Connect
#CyberCamp19

1.
Un poco de teoría de BLE
Conceptos básicos
Bluetooth Low-Energy

Es un protocolo inalámbrico
Comunicación entre dispositivos a un nivel muy bajo de consumo y con una
velocidad de transferencia de datos muy baja
Comunicación en la banda de frecuencia de 2.4GHz con tasas de
transferencia de datos de 1Mbps
Bluetooth Low-Energy

BLE utiliza 40 canales de radio frecuencia con un espaciado entre canales


de 2MHz

3 canales son de ADV -> 37, 38 y 39 (con estos canales podemos decir:
¡Estamos aquí!

Resto de canales son de datos (Data)


Bluetooth Low-Energy
BLE utiliza 40 canales de radio frecuencia con un espaciado entre canales
de 2MHz
3 canales son de ADV -> 37, 38 y 39 (con estos canales podemos decir:
¡Estamos aquí!
Resto de canales son de datos (Data)

Fuente: https://www.flu-project.com/2019/09/puro-ble-ble-ble-bluetooth-low-energy.html
Bluetooth Low-Energy

Fuente: https://nis-summer-school.enisa.europa.eu/2018/cources/IOT/nis-summer-school-damien-cauquil-BLE-workshop.pdf
Bluetooth Low-Energy

¿Cómo se realiza el salto entre canales?

Colisiones entre BT/BLE y WiFi

Se utilizan 37 canales de datos

Se dispone de un patrón e intervalo de salto (Hop interval / Hop increment)


Bluetooth Low-Energy
Bluetooth Low-Energy

¿Algoritmos de salto?

Selección de canal #1. Algoritmo 1 (versión 4.X y 5)

Selección de canal #2. Algoritmo 2 (solo versión 5)


Bluetooth Low-Energy

Algoritmo 1

Canal = (canal + incremento salto) mod 37


Bluetooth Low-Energy

Los roles en este juego de BLE

Broadcaster (beacons). Utilizado para enviar advertisement (3 canales)

Periheral (rol de esclavo). Aceptan conexiones

Central (rol de maestro). Se escanea y conectan con Periherals.


Bluetooth Low-Energy

Los roles en este juego de BLE

Observer escanean en los canales de advertisement para detectar


dispositivos
Bluetooth Low-Energy: Diferencia entre Periheral y Central

Fuente: https://nis-summer-school.enisa.europa.eu/2018/cources/IOT/nis-summer-school-damien-cauquil-BLE-workshop.pdf
Bluetooth Low-Energy: Diferencia entre Periheral y Central

Fuente: https://nis-summer-school.enisa.europa.eu/2018/cources/IOT/nis-summer-school-damien-cauquil-BLE-workshop.pdf
Bluetooth Low-Energy

Fuente: http://files.brucon.org/2017/012_Damien_Cauquil_Weaponizing_the_BBC_Micro_Bit.pdf
#CyberCamp19

2.
Sniffing
Capturando tráfico
Sniffing

Podemos enfocarlo de dos formas:

Desde el móvil (Android) y capturar el tráfico Bluetooth que generamos


desde el dispositivo

Utilizando hardware dedicado a escuchar el “aire”


Sniffing: Caso A

Instalar App en Android

Activar Registro de comunicaciones Bluetooth

Utilizar pequeñas funcionalidades para almacenar


en el PCAP

Fuente: https://www.elladodelmal.com/2017/05/bluediot-como-hackear-360fly-action.html
Sniffing: Caso A

Recuperar fichero sdcard o memoria interna (/Android/data -> *snoop.log)

Renombrar a .pcap

Analizar con wireshark


Sniffing: Caso A
Sniffing: Caso B

Micro:Bit (3 es lo ideal = Granja)

Flashear Micro:Bit con btlejack (-i) -> https://github.com/virtualabs/btlejack

Se puede utilizar diferentes modos de btlejack


Sniffing: Caso B

Modo 1: Sniffing conexión nueva


btlejack –c any
btlejack –c bmac_address

Modo 2: Sniffing conexión existente


btlejack –s
btlejack –f access_address
Sniffing: Caso B
Sniffing: Caso B

¿Cómo volcarlo a un fichero PCAP?

btlejack [-c <any> |-f <access_address>] -x nordic –o [filename] –w


/tmp/blepipe

¿Qué es –w? Vamos a pasar el tráfico por un pipe a Wireshark, para poder
almacenarlo
Sniffing: Caso B
#CyberCamp19

3.
Análisis de PCAP
Entendiendo el
tráfico
Análisis de PCAP

¿Qué debemos alinear entre teoría y PCAP?


Perfil: Describe el tipo de dispositivo basado en sus servicios.
Servicio: Define función/es del dispositivo, un servicio tiene una colección
de características.
Característica: Contiene un valor y se utiliza para el transporte de los datos.
Contiene también propiedades para controlar el comportamiento de la
característica (lectura, escritura, notificación) para designar los permisos
adecuados, y los descriptores para describir en más detalle mediante línea/s
de texto tipo string.
Análisis de PCAP

Fuente:
https://learn.adafruit.com/introducing-adafruit-ble-bluetooth-low-energy-friend/ble-gatt
https://www.polidea.com/blog/bluetooth-low-energy-sniffing-guide-part-2/
Análisis de PCAP
Análisis de PCAP
#CyberCamp19

4.
Ataques BLE
Jugando con BLE
Replay

Cuando capturo una trama puedo:

Encontrarla cifrada

Encontrarla no cifrada
Replay

Sacamos nuestra microbit y utilizamos uno de los programas de prueba para


simular:

- SmartLock

- Plataforma desarrollo https://makecode.microbit.org


Replay
Esquema (os lo daré en un servidor para que se pueda hacer)
Ataque de Replay
Session Hijacking
Session Hijacking
Ataque de Hijacking
Jamming
Jamming
Crackear: Conexión cifrada

La comunicación puede ir cifrada de varias formas

En muchos casos, puede ir cifrada con un PIN de 6 digitos

Es fácilmente configurable en makecode


Crackear: Conexión cifrada

Crackle -> Crackea y descifra conexiones BLE


https://github.com/mikeryan/crackle

Explota un fallo en el proceso de pairing de BLE

Se obtiene la clave temporal TK


Con la TK y datos del proceso de emparejamiento, el STK (clave corto plazo)
y el LTK (clave largo plazo) pueden recolectarse
Crackear: Conexión cifrada

Crackle -> con LTK y STK todas las comunicaciones entre master y slave
pueden ser descifradas
Crackear: Conexión cifrada
Ataque a la capa de cifrado con btlejack y crackle
#CyberCamp19

5.
Suplantación
Rogue…
Suplantación con Opendrop

Airdrop = BLE + WiFi

BLE_read_state
Suplantación con Opendrop

Adv_airpods
#CyberCamp19

6.
Conclusiones
Fin
Fortificación y cosas a tener en cuenta
Conexiones cifradas (no con PIN)

Se puede hacer replay si los datos transmitidos son fijos y no variantes (con
el tiempo o algún modificador)

Se puede hacer hijacking

Se puede hacer ruptura de cifrado (PIN 6 digitos) capturando lo necesario


Links de interés

BtleJack -> https://github.com/virtualabs/btlejack


BtleJuice -> https://github.com/DigitalSecurity/btlejuiceGAT
GATTacker -> http://www.gattack.io

Con SDR
BTLE -> https://github.com/JiaoXianjun/BTLE
gr-bluetooth -> https://github.com/greatscottgadgets/gr-bluetooth
RFTap -> https://rftap.github.io
GRACIAS

@CybercampES
#CyberCamp19

También podría gustarte