Pentesting BLE - Bluetooth Low Energy
Last updated
Last updated
Disponible depuis la spécification Bluetooth 4.0, le BLE utilise uniquement 40 canaux, couvrant la plage de 2400 à 2483,5 MHz. En revanche, le Bluetooth traditionnel utilise 79 canaux dans la même plage.
Les appareils BLE communiquent en envoyant des paquets publicitaires (balises), ces paquets diffusent l'existence de l'appareil BLE à d'autres appareils à proximité. Ces balises envoient parfois également des données.
Le dispositif d'écoute, également appelé dispositif central, peut répondre à un paquet publicitaire avec une demande de SCAN envoyée spécifiquement à l'appareil publicitaire. La réponse à ce scan utilise la même structure que le paquet publicitaire avec des informations supplémentaires qui n'ont pas pu être incluses dans la demande publicitaire initiale, telles que le nom complet de l'appareil.
L'octet de préambule synchronise la fréquence, tandis que l'adresse d'accès sur quatre octets est un identifiant de connexion, utilisé dans les scénarios où plusieurs appareils tentent d'établir des connexions sur les mêmes canaux. Ensuite, l'Unité de Données de Protocole (PDU) contient les données publicitaires. Il existe plusieurs types de PDU ; les plus couramment utilisés sont ADV_NONCONN_IND et ADV_IND. Les appareils utilisent le type de PDU ADV_NONCONN_IND s'ils n'acceptent pas les connexions, transmettant des données uniquement dans le paquet publicitaire. Les appareils utilisent ADV_IND s'ils autorisent les connexions et arrêtent d'envoyer des paquets publicitaires une fois qu'une connexion a été établie.
Le Profil d'Attribut Générique (GATT) définit comment le dispositif doit formater et transférer les données. Lorsque vous analysez la surface d'attaque d'un appareil BLE, vous concentrerez souvent votre attention sur le GATT (ou les GATTs), car c'est ainsi que la fonctionnalité de l'appareil est déclenchée et comment les données sont stockées, regroupées et modifiées. Le GATT répertorie les caractéristiques, descripteurs et services d'un appareil dans un tableau en tant que valeurs de 16 ou 32 bits. Une caractéristique est une valeur de données envoyée entre le dispositif 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ées dans des services s'ils sont liés à l'exécution d'une action particulière.
GATTool permet d'établir une connexion avec un autre appareil, d'afficher les caractéristiques de cet appareil, et de lire et écrire ses attributs.
GATTTool peut lancer un shell interactif avec l'option -I
: