# Introduction Disponible depuis la spécification Bluetooth 4.0, BLE utilise seulement 40 canaux, couvrant la plage de 2400 à 2483,5 MHz. En revanche, le Bluetooth traditionnel utilise 79 canaux dans cette 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 des données. L'appareil d'écoute, également appelé appareil 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. ![](<../.gitbook/assets/image (201) (2) (1) (1).png>) L'octet de préambule synchronise la fréquence, tandis que l'adresse d'accès de quatre octets est un **identifiant de connexion**, qui est utilisé dans des 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 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 **autorise les connexions** et **arrêtent d'envoyer des paquets publicitaires** une fois qu'une **connexion** a été **établie**. ## GATT Le **Generic Attribute Profile** (GATT) définit comment l'appareil 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 GATT), 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, les descripteurs et les services d'un appareil dans un tableau sous forme de valeurs de 16 ou 32 bits. Une **caractéristique** est une **valeur de données envoyée** entre l'appareil central et 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. # Énumération ```bash hciconfig #Check config, check if UP or DOWN # If DOWN try: sudo modprobe -c bluetooth sudo hciconfig hci0 down && sudo hciconfig hci0 up # Spoof MAC spooftooph -i hci0 -a 11:22:33:44:55:66 ``` ## GATTool **GATTool** permet d'**établir** une **connexion** avec un autre appareil, de lister les **caractéristiques** de cet appareil, et de lire et écrire ses attributs.\ GATTTool peut lancer une console interactive avec l'option `-I`: ```bash gatttool -i hci0 -I [ ][LE]> connect 24:62:AB:B1:A8:3E Attempting to connect to A4:CF:12:6C:B3:76 Connection successful [A4:CF:12:6C:B3:76][LE]> characteristics handle: 0x0002, char properties: 0x20, char value handle: 0x0003, uuid: 00002a05-0000-1000-8000-00805f9b34fb handle: 0x0015, char properties: 0x02, char value handle: 0x0016, uuid: 00002a00-0000-1000-8000-00805f9b34fb [...] # Write data gatttool -i -b --char-write-req -n gatttool -b a4:cf:12:6c:b3:76 --char-write-req -a 0x002e -n $(echo -n "04dc54d9053b4307680a"|xxd -ps) # Read data gatttool -i -b --char-read -a 0x16 # Read connecting with an authenticated encrypted connection gatttool --sec-level=high -b a4:cf:12:6c:b3:76 --char-read -a 0x002c ``` ## Bettercap Bettercap est un outil de piratage réseau open source qui permet de réaliser des attaques MITM (Man In The Middle) sur des réseaux câblés et sans fil. Il est capable de capturer des paquets, de les analyser et de les modifier en temps réel. Bettercap prend en charge plusieurs protocoles, notamment HTTP, HTTPS, DNS, FTP, SMTP, IMAP, POP3, TCP, UDP et ICMP. Il peut également être utilisé pour effectuer des attaques de phishing et d'injection de code JavaScript. Bettercap est un outil très puissant et polyvalent qui peut être utilisé pour tester la sécurité des réseaux et des applications. ```bash # Start listening for beacons sudo bettercap --eval "ble.recon on" # Wait some time >> ble.show # Show discovered devices >> ble.enum # This will show the service, characteristics and properties supported # Write data in a characteristic >> ble.write >> ble.write ff06 68656c6c6f # Write "hello" in ff06 ```
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - Travaillez-vous dans une entreprise de **cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! - Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) - Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) - **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) **groupe Discord** ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** - **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.