🔋BLE

Bluetooth Low Energy

Description

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.

Structure d'un paquet BLE

Generic Access Profile et Generic Attribute Profile

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.

Setup

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/)

Vérifier si l'interface bluetooth est activée

$ 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

Reconnaissance

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:

  1. Chercher les adresses des équipements BLE.

  2. Énumérer les serveurs GATT.

  3. Identifier leur fonctionnalité à travers les caractéristiques listées, les services, et attributs.

  4. Manipuler les fonctionnalités de l'appareil via des opérations de lecture et d'écriture.

GATTTool

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.

Lecture

$ gatttool -i <interface bluetooth> -b <adresse mac> --char-write-req <handler> <donnée>

Ecriture

$ gatttool -i <interface bluetooth> -b <adresse mac> --char-read -a <handler>

Bettercap

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/

Découverte d'hôtes

$ bettercap --eval "ble.recon" on

puis,

>> ble.show #Pour visualiser les informations des équipements trouvés

Énumération des caracteristiques, services et descripteurs

>> ble.enum

Ecriture

>> ble.write <adresse mac> <UUID> <Données hexadécimales>

Dernière mise à jour