1. Autoencoders, GANS y otros chicos del montón Rooted CON 2019
1
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
@toolsprods
2. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 2
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
3. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 3
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
4. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 4
¿De qué va esto?
1.Introducción BLE (Bluetooth Low Energy)
2.Precedentes
3.Evaluación
4.Fortificación
5.Conclusiones
5. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 5
Introducción BLE
(Bluetooth Low Energy)
6. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 6
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
7. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 7
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
8. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 8
BLE Stack
https://www.mathworks.com/help/comm/ug/bluetooth-protocol-stack.html
9. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 9
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)
10. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 10
El ámbito de juego de BLE
https://nis-summer-school.enisa.europa.eu/2018/cources/
IOT/nis-summer-school-damien-cauquil-BLE-workshop.pdf
11. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 11
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
12. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 12
¿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
13. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 13
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
14. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 14
Channel Map
15. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 15
BLE Packet
16. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 16
ADV PDU
17. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 17
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
18. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 18
CONNECT_REQ
Interval * 1.25 ms
19. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 19
Precedentes
20. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 21
La información al alcance de la mano
21. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 22
La información al alcance de la mano
22. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 23
La información al alcance de la mano
• MIBAND 4 - Python Library
https://github.com/satcar77/miband4
23. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 24
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
• …
24. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 25
Trackers
https://blog.rapid7.com/2016/10/25/multiple-bluetooth-low-energy-ble-tracker-vulnerabilities/
25. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 26
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
26. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 27
Entre ruedas anda el juego
CVE-2019-12500
27. 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
28. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 30
Entre ruedas anda el juego
https://github.com/CamiAlfa/M365-BLE-PROTOCOL
29. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 32
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
30. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 33
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/
31. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 34
Sweyntooth
https://asset-group.github.io/disclosures/sweyntooth/
32. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 35
Sweyntooth
https://asset-group.github.io/disclosures/sweyntooth/
33. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 36
Sweyntooth
https://asset-group.github.io/disclosures/sweyntooth/
34. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 38
Evaluación
35. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 39
Ataques
• Sniffing
• Replay
• Hijacking
• Jamming
• MITM
• Cifrado
• Contraseñas en texto plano
• Apps no ofuscadas/hardcodeadas
36. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 40
Sniffing
• Escuchas pasivas
• Conocer lo que viaja por el aire
• btlejack
37. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 41
Replay
https://gattack.io/
38. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 42
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)…
39. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 43
Hijacking
• Secuestro de una conexión existente
• btlejack
40. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 45
Jamming
https://gattack.io/
41. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 46
Jamming
• Interferencias en la señal
• Impide que la señal pueda llegar a su destino
• btlejack
42. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 47
MITM
https://gattack.io/
43. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 48
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
44. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 49
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)
• C o n l a s c l a v e s S T K y L T K , t o d a s l a s
comunicaciones entre el maestro y el esclavo
pueden ser descifradas
• crackle
45. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 50
Cifrado
• Trama de paquetes
• Pairing Request
• Pairing Response
• Pairing Confirm (x2)
• Pairing Random (x2)
• LL_ENC_REQ
• LL_ENC_RSP
• LL_START_ENC_REQ
46. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 51
Contraseñas en texto plano
https://blog.rapid7.com/2016/10/25/multiple-bluetooth-low-energy-ble-tracker-vulnerabilities/
47. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 52
Apps no ofuscadas
https://pickeroflocks.com/how-to-hack-smart-lock/
48. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 53
CrackLE
49. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 55
Fortificación
50. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 56
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
51. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 57
Conclusiones
52. Hackeando el mundo exterior a través de Bluetooth Low-Energy (BLE) Rooted CON 2020 58
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
53. Autoencoders, GANS y otros chicos del montón Rooted CON 2019
59
Muchas gracias
@pablogonzalezpe
@toolsprods