Você está na página 1de 53

Hackeando el mundo exterior a

través de Bluetooth Low-Energy


(BLE)

/Rooted CON 2020 – Edición XI


Pablo González
Álvaro Núñez
@pablogonzalezpe
Autoencoders, GANS y otros chicos del montón Rooted CON 2019
@toolsprods 1
whoami $>
Pablo González
Ingeniero Informático & Máster Seguridad
Informática

2009 – 2013 Informática 64


2013 - ?? Telefónica (Ideas Locas – CDCO)

Director Máster Seguridad de las TIC UEM

MVP Microsoft 2017-2020

Co-fundador de Flu Project & hackersClub

Algunos libros (0xWord):


– Metasploit para pentesters
– Pentesting con Kali
– Ethical Hacking
– Got Root
– Pentesting con Powershell

https://www.mypublicinbox.com/PabloGonzalez

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 2
whoami $>
Álvaro Núñez
Graduado en Imagen y Sonido
Master Seguridad Informática

2016 - ?? Telefónica Digital


(ElevenPaths)

Docente en universidades españolas en


másteres de seguridad informática

Autor del libro Arduino para Hackers:


PoCs & Hacks just for Fun (0xWord)

https://www.mypublicinbox.com/AlvaroNunezRomero

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 3
¿De qué va esto?

1.Introducción BLE (Bluetooth Low Energy)


2.Precedentes
3.Evaluación
4.Fortificación
5.Conclusiones

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 4
Introducción BLE
(Bluetooth Low Energy)

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 5
Introducción BLE (Bluetooth Low Energy)

• Bluetooth Low Energy (BLE) 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

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 6
BLE vs BT Classic

https://www.everythingrf.com/community/what-is-the-difference-between-bluetooth-5-0-
bluetooth-low-energy-bluetooth-v4-2-and-classic-bluetooth
Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 7
BLE Stack

https://www.mathworks.com/help/comm/ug/bluetooth-protocol-stack.html

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 8
El ámbito de juego de BLE

• BLE utiliza 40 canales de radio frecuencia con un


espaciado entre canales de 2 MHz
• 3 canales de ADV (Decimos ¡estamos aquí!) ->
37, 38 y 39
• 37 canales de datos (Data)

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 9
El ámbito de juego de BLE

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

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 10
Access Address

• Es una “especie” de sesión


• Identifica una conexión entre dos dispositivos
• Es generada por el maestro
• La posibilidad de que dos maestros generen la
misma access address es insignificante
• Evitan la colisión

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 11
¿Cómo se realiza el salto entre canales?

• Colisiones entre BT/BLE y WiFi


• Utiliza el espectro de dispersión por salto de
frecuencia (FHSS)
• Channel Map

• Se utilizan únicamente los canales de datos (0 - 36)


• Se dispone de un patrón e intervalo de salto
• Hop Interval
• Hop Increment

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 12
Salta conmigo: Algoritmos de salto

• Algoritmo 1 (versión 4.X y 5)


• Canal = (canal + incremento salto) mod 37

• Algoritmo 2 (versión 5)
• Basado en un pseudogenerador de número
aleatorios

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 13
Channel Map

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 14
BLE Packet

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 15
ADV PDU

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 16
PDU Type

• 0000 ADV_IND: connectable undirected advertising event


• 0001 ADV_DIRECT_IND:connectable directed advertising
event
• 0010 ADV_NONCONN_IND:non-connectable undirected
advertising event
• 0011 SCAN_REQ:scan request
• 0100 SCAN_RSP: scan response
• 0101 CONNECT_REQ:connection request
• 0110 ADV_SCAN_IND:scannable undirected advertising
event
• 0111-1111 Reserved

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 17
CONNECT_REQ

Interval * 1.25 ms

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 18
Precedentes

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 19
La información al alcance de la mano

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 21
La información al alcance de la mano

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 22
La información al alcance de la mano

• MIBAND 4 - Python Library

https://github.com/satcar77/miband4
Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 23
Trackers

• Vulnerabilidades en dispositivos
• TrackR Bravo
• iTrack Easy
• Zizai Tech Nut
• Transmisión de contraseña en plano
• Exposición del ID del tracker
• Acceso no autenticado al servicio basado en la nube
• Pareo no autenticado
• …

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 24
Trackers

https://blog.rapid7.com/2016/10/25/multiple-bluetooth-low-energy-ble-tracker-vulnerabilities/

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 25
BluedIoT

• Cámaras 360fly 4k
• Gerard Fuguet
• La contraseña de configuración del AP viajaba en
texto plano (se configuraba por BLE)
• CVE-2017-8403
• Ver REST API para conocer los comandos

https://www.elladodelmal.com/2017/05/bluediot-como-hackear-360fly-action.html
Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 26
Entre ruedas anda el juego

CVE-2019-12500

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 27
Entre ruedas anda el juego

https://github.com/CamiAlfa/M365-BLE-PROTOCOL

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 29
Entre ruedas anda el juego

https://github.com/CamiAlfa/M365-BLE-PROTOCOL

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 30
Sweyntooth

• Familia de 12 vulnerabilidades
• Se encuentra en la implementación de BLE en el SDK
• Vendedores afectados
• Texas Instruments
• NXP
• Cypress
• Dialog Semiconductors
• Microchip
• STMicroelectronics
• Telink Semiconductor

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 32
Sweyntooth

• Crash
• Para la comunicación o deja de funcionar
• Deadlock
• El dispositivo puede congelarse y dejar de
funcionar correctamente
• Bypass security
• Acceso a funciones del dispositivo accesibles solo
a través de un usuario autorizado

https://www.zdnet.com/article/unknown-number-of-bluetooth-le-devices-impacted-by-sweyntooth-vulnerabilities/

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 33
Sweyntooth

https://asset-group.github.io/disclosures/sweyntooth/

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 34
Sweyntooth

https://asset-group.github.io/disclosures/sweyntooth/
Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 35
Sweyntooth

https://asset-group.github.io/disclosures/sweyntooth/
Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 36
Evaluación

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 38
Ataques
• Sniffing
• Replay
• Hijacking
• Jamming
• MITM
• Cifrado
• Contraseñas en texto plano
• Apps no ofuscadas/hardcodeadas

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 39
Sniffing
• Escuchas pasivas
• Conocer lo que viaja por el aire
• btlejack

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 40
Replay

https://gattack.io/

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 41
Replay
• Ataque de reproducción
• Se captura una señal y se vuelve a mandar la
misma información
• Cualquier herramienta que pueda leer y escribir
en características BLE sirve: Bettercap, gatttool, nRF
Connect (móvil)…

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 42
Hijacking
• Secuestro de una conexión existente
• btlejack

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 43
Jamming

https://gattack.io/

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 45
Jamming
• Interferencias en la señal
• Impide que la señal pueda llegar a su destino
• btlejack

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 46
MITM

https://gattack.io/

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 47
MITM
• Descubrimiento del dispositivo víctima (servicios,
características y advertisement)
• Conexión con el dispositivo víctima para que no se
anuncie más
• Anunciar el mismo dispositivo y redirigir los datos
cuando se tenga una nueva conexión
• gattack
• btlejuice

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 48
Cifrado
• Si tenemos una captura con un evento de pareo
BLE se puede hacer fuerza bruta para obtener el
TK (Temporary Key)
• Posteriormente, se pueden obtener el STK (Short
Term Key) y el LTK (Long Term Key)
• Con las claves STK y LTK, todas las
comunicaciones entre el maestro y el esclavo
pueden ser descifradas
• crackle

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 49
Cifrado
• Trama de paquetes
• Pairing Request
• Pairing Response
• Pairing Confirm (x2)
• Pairing Random (x2)
• LL_ENC_REQ
• LL_ENC_RSP
• LL_START_ENC_REQ

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 50
Contraseñas en texto plano

https://blog.rapid7.com/2016/10/25/multiple-bluetooth-low-energy-ble-tracker-vulnerabilities/

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 51
Apps no ofuscadas

https://pickeroflocks.com/how-to-hack-smart-lock/
Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 52
CrackLE
Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 53
Fortificación

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 55
Fortificación
• Utilización de canales seguros (cifrados)

• Los canales cifrados no deben cifrase con pin de 6


dígitos (JustWorks y Passkey)

• Utilizar mecanismos de intercambio de claves


robustos (ECDH o 128 bits out-of-band)

• Firma de paquetes

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 56
Conclusiones

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 57
Conclusiones

• Hacking BLE está al alcance de cualquiera

• Con un simple móvil ya es posible realizar ataques

• Muchos fabricantes no utilizan protocolos cifrados


para establecer sus comunicaciones

Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 58
Muchas gracias

@pablogonzalezpe
Autoencoders, GANS y otros chicos del montón Rooted CON 2019
@toolsprods 59

Você também pode gostar