🔋BLE
Bluetooth Low Energy
Dernière mise à jour
Bluetooth Low Energy
Dernière mise à jour
Le BLE consomme beaucoup moins d'énergie que le Bluetooth traditionnel, mais il peut transmettre très efficacement de petites quantités de données. BLE utilise seulement 40 canaux, couvrant l'intervalle de fréquence de 2400 à 2483,5 MHz contrairement au Bluetooth traditionnel qui utilise 79 canaux dans ce même intervalle.
Tous les équipements utilisant le BLE possédent un GAP (Generic Access Profile) leur permettant de définir comment ils peuvent se connecter à d'autres équipements, comment communiquer avec et comment se rendre disponible à la decouverte au travers du broadcast.
Un périphérique peut être connecté à un seul appareil central, alors qu'un appareil central peut se connecter à autant de périphériques que le périphérique central peut en supporter. Une fois une connexion établie, plus aucune connexion n'est permise.
Le GATT (Generic Attribute Profile) quant à lui permet de définir le formatage et la transmission de données. Le GATT répertorie les caractéristiques, les descripteurs et les services d'un appareil dans une table sous forme de valeurs 16 ou 32 bits. Une caractéristique est une valeur de données envoyée entre l'appareil central et le périphérique. Ces caractéristiques peuvent avoir des descripteurs qui fournissent des informations supplémentaires à leur sujet. Les caractéristiques sont souvent regroupés en services s'ils sont liés à l'exécution d'une action. Les services peuvent avoir plusieurs caractéristiques comme montré ci-dessous.
Afin de communiquer avec le protocole BLE, il faut utiliser un équipement spécifique tel qu'un ESP32 Wroom (ESP possédant un module Bluetooth).
Prérequis: driver BlueZ (http://www.bluez.org/download/)
$ hciconfig
Si l'interface n'est pas visible, vérifier les config du module avec modprobe comme ceci:
$ modprobe -c bluetooth
Vous pourvez également essayer de relancer l'interface:
$ hciconfig hci0 down && hciconfig hci0 up
$ hciconfig hci0 reset
Si un appareil IoT compatible BLE n'est pas correctement protégé, vous pouvez intercepter, analyser, modifier et retransmettre ses communications. Dans l'ensemble, lors de l'évaluation de la sécurité d'un appareil IoT avec BLE, vous devez suivre ce processus:
Chercher les adresses des équipements BLE.
Énumérer les serveurs GATT.
Identifier leur fonctionnalité à travers les caractéristiques listées, les services, et attributs.
Manipuler les fonctionnalités de l'appareil via des opérations de lecture et d'écriture.
GaTTTool est un outil appartenant à BlueZ permettant de faire ses actions.
GATTTool peut lancer un shell interactif avec l'option -I.
$ gatttool -i hci0 -I
Une fois cela fait il faut se connecter à l'équipement grâce à son adresse MAC.
>connect <adresse mac>
puis > characteristics
pour lister les caractéristiques.
Une fois cela fait, on obtiens des handles, values et services mais ils ne sont pas directement lisible contrairement a bettercap.
$ gatttool -i <interface bluetooth> -b <adresse mac> --char-write-req <handler> <donnée>
$ gatttool -i <interface bluetooth> -b <adresse mac> --char-read -a <handler>
Bettercap est un outil permettant d'effectuer des attaques contre les protocoles opérants à la fréquence de 2,4 GHz. Bettercap est natif à kali.
ressource: https://www.bettercap.org/
$ bettercap --eval "ble.recon" on
puis,
>> ble.show #Pour visualiser les informations des équipements trouvés
>> ble.enum
>> ble.write <adresse mac> <UUID> <Données hexadécimales>
Recupération du traffic bluetooth depuis un téléphone android via ADB.
Activer le mode développeur
Dans les options développeur, activer la journalisation HCI Bluetooth
Faire ses manipulations avec l'appareil bluetooth
Via adb, $ adb bugreport bugreport
Décompresser le fichier bugreport.zip
Trouver le fichier btsnoop_hci.log
($ find . -name "btsnoop_hci.log"
)
Ouvrir le fichier avec Wirehark
Filtrer les requêtes avec les filtres bthci_evt.bd_addr == xx:xx:xx:xx:xx:xx || bthci_cmd.bd_addr == xx:xx:xx:xx:xx:xx || bluetooth.addr == xx:xx:xx:xx:xx:xx
où xx:xx:xx:xx:xx:xx correspond à l'adresse MAC du device bluetooth testé.