Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
btlejuice — BtleJuice : framework Bluetooth Smart (LE) Man-in-the-Middle | Kitploit
Outils/GitHubGitHub/digitalsecurity/btlejuice
Sniffing et Analyse de PaquetsSécurité BluetoothExploitationSécurité Sans FilTests d'IntrusionRed TeamingArchived
GitHubdigitalsecurity/btlejuice

btlejuice

BtleJuice : framework Bluetooth Smart (LE) Man-in-the-Middle

Voir le dépôt
85115325il y a 7 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Framework BtleJuice

Introduction

BtleJuice est un framework complet pour effectuer des attaques Man-in-the-Middle sur les appareils Bluetooth Smart (également connus sous le nom de Bluetooth Low Energy). Il est composé de :

  • un noyau d'interception
  • un proxy d'interception
  • une interface web dédiée
  • des bindings Python et Node.js

Comment installer BtleJuice ?

Installer BtleJuice est un jeu d'enfant. Tout d'abord, assurez-vous que votre système utilise une version récente de Node.js (>=4.3.2) et npm. Ensuite, assurez-vous d'installer toutes les dépendances nécessaires :

Ubuntu/Debian/Raspbian

sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

Fedora / Autres basés sur RPM

sudo yum install bluez bluez-libs bluez-libs-devel npm

Enfin, installez BtleJuice en utilisant npm :

sudo npm install -g btlejuice

Si tout s'est bien passé, BtleJuice est prêt à être utilisé !

Comment utiliser BtleJuice ?

BtleJuice est composé de deux composants principaux : un proxy d'interception et un noyau. Ces deux composants doivent être exécutés sur des machines indépendantes afin d'exploiter simultanément deux adaptateurs Bluetooth 4.0+. BtleJuice Proxy ne fonctionne pas dans un conteneur Docker.

L'utilisation d'une machine virtuelle peut aider à faire fonctionner ce framework sur un seul ordinateur.

Depuis votre machine virtuelle, installez btlejuice et assurez-vous que votre adaptateur USB BT4 est disponible depuis la machine virtuelle :

$ sudo hciconfig
hci0:	Type: BR/EDR  Bus: USB
	BD Address: 10:02:B5:18:07:AD  ACL MTU: 1021:5  SCO MTU: 96:6
	DOWN
	RX bytes:1433 acl:0 sco:0 events:171 errors:0
	TX bytes:30206 acl:0 sco:0 commands:170 errors:0
$ sudo hciconfig hci0 up

Ensuite, assurez-vous que votre machine virtuelle a une adresse IP accessible depuis l'hôte.

Lancez le proxy dans votre machine virtuelle :

$ sudo btlejuice-proxy

Sur votre machine hôte, n'oubliez pas d'arrêter le service bluetooth et de vous assurer que le périphérique HCI reste ouvert/initialisé :

$ sudo service bluetooth stop
$ sudo hciconfig hci0 up

Enfin, exécutez la commande suivante sur votre machine hôte :

$ sudo btlejuice -u <Proxy IP address> -w

Le drapeau -w indique à BtleJuice de démarrer l'interface web tandis que l'option -u spécifie l'adresse IP du proxy.

L'interface utilisateur web est maintenant disponible à l'adresse http://localhost:8080. Notez que le port du serveur web peut être modifié via la ligne de commande.

Utilisation de l'interface web

L'interface web de BtleJuice fournit dans le coin supérieur droit un ensemble de liens pour contrôler le noyau d'interception, comme illustré ci-dessous.

Interface web principale de BtleJuice

Sélection de la cible

Tout d'abord, cliquez sur le bouton Select target et une boîte de dialogue s'affichera montrant tous les appareils Bluetooth Low Energy disponibles détectés par le noyau d'interception :

Popup de sélection de cible BtleJuice

Double-cliquez sur la cible souhaitée, et attendez que l'interface soit prête (l'aspect du bouton bluetooth changera). Une fois le périphérique factice prêt, utilisez l'application mobile associée ou un autre appareil (selon ce qui est attendu) pour vous connecter au périphérique factice. Si la connexion réussit, un événement Connected sera affiché sur l'interface principale.

BtleJuice en cours d'écoute

Toutes les opérations GATT interceptées sont ensuite affichées avec les UUID des services et caractéristiques correspondants, et bien sûr les données qui leur sont associées. Les données sont affichées par défaut au format HexII (une variante du format conçu par Ange Albertini), mais vous pouvez passer de HexII à Hex (et inversement) en cliquant sur les données elles-mêmes. Les formats Hex et HexII sont tous deux supportés par BtleJuice.

Rejouer des opérations GATT

Il est possible de rejouer toute opération GATT en effectuant un clic droit dessus puis en sélectionnant l'option Replay, comme illustré ci-dessous :

Popup de rejeu

Dialogue de rejeu

Cliquez sur le bouton Write (ou Read) pour rejouer l'opération GATT correspondante. Cette opération sera enregistrée dans l'interface principale.

Modification des données à la volée

Last but not least, l'interface peut intercepter localement ou globalement toute opération GATT et permettre la modification des données à la volée. Vous pouvez soit utiliser l'interception globale en cliquant sur le bouton Intercept dans le coin supérieur droit, soit utiliser le menu contextuel pour activer ou désactiver un hook sur un service et une caractéristique donnés. Chaque fois qu'une opération GATT est interceptée, la boîte de dialogue suivante s'affiche :

Dialogue d'interception

Exporter les données vers un fichier

Depuis la version 1.0.6, l'interface offre une fonctionnalité d'exportation de données permettant des exports lisibles et JSON. Ces exports sont générés à partir des opérations GATT interceptées, mais incluent également des informations sur le périphérique cible. Lorsque le bouton Export est cliqué, la boîte de dialogue suivante s'affiche :

Dialogue d'exportation

Cliquez sur le bouton Export en bas de la boîte de dialogue pour télécharger une version JSON (ou texte) des données interceptées.

Paramètres

La boîte de dialogue des paramètres propose actuellement une seule option permettant de reconnecter automatiquement le proxy lorsque le périphérique cible se déconnecte. Cela peut être utile lorsqu'on traite avec des appareils qui sont actifs pendant une courte durée.

Dialogue des paramètres

Déconnexion

Cliquer sur le bouton Select Target dans le coin supérieur droit lorsque le proxy est actif l'arrêtera et permettra à nouveau la sélection de cible.

Installation des bindings

Les bindings Node.js de BtleJuice peuvent également être installés via npm :

$ sudo npm install -g btlejuice-bindings

Plus d'informations sur l'utilisation des bindings Node.js dans la documentation du package.

Remerciements

Un remerciement spécial à Slawomir Jasek qui a souligné de nombreuses astuces noble/bleno pour éviter des problèmes avec les applications mobiles, et a partagé des stratégies BLE MITM lors de la DEF CON 24 =). Il est également l'auteur de Gattacker.

Licence

Copyright (c) 2016 Econocom Digital Security

Télécharger l’outil