Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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 — Framework Man-in-the-Middle BLE qui intercepte, rejoue et modifie le trafic GATT entre les appareils Bluetooth Smart et les applications mobiles via un proxy d'interception basé sur le web. | Kitploit
Outils/GitHubGitHub/virtualabs/btlejuice
Sniffing et Analyse de PaquetsSécurité BluetoothSécurité IoTOutils d'ImpersonationSécurité Sans FilTests d'IntrusionRed TeamingArchived
GitHubvirtualabs/btlejuice

btlejuice

Framework Man-in-the-Middle BLE qui intercepte, rejoue et modifie le trafic GATT entre les appareils Bluetooth Smart et les applications mobiles via un proxy d'interception basé sur le web.

Voir le dépôt
il y a 7 ansPas encore vérifié

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

BtleJuice Framework

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 se compose de :

  • un cœur 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 de npm. Ensuite, assurez-vous d'installer toutes les dépendances requises :

Ubuntu/Debian/Raspbian

root@kitploit:~
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

### Fedora / autres distributions basées sur RPM

root@kitploit:~
sudo yum install bluez bluez-libs bluez-libs-devel npm

Enfin, installez BtleJuice à l'aide de npm :

root@kitploit:~
sudo npm install -g btlejuice

Si tout s'est bien passé, BtleJuice est prêt à l'emploi !

Comment utiliser BtleJuice ?

BtleJuice est composé de deux composants principaux : un proxy d'interception et un cœur. Ces deux composants doivent être exécutés sur des machines indépendantes afin de faire fonctionner 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 :

root@kitploit:~
$ 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 dispose d'une adresse IP joignable depuis l'hôte.

Lancez le proxy dans votre machine virtuelle :

root@kitploit:~
$ 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é :

root@kitploit:~
$ sudo service bluetooth stop
$ sudo hciconfig hci0 up

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

root@kitploit:~
$ sudo btlejuice -u <Proxy IP address> -w

L'option -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 cœur d'interception, comme illustré ci-dessous.

BtleJuice main web UI

Sélection de la cible

Tout d'abord, cliquez sur le bouton Sélectionner la cible et une boîte de dialogue s'affichera, affichant tous les appareils Bluetooth Low Energy disponibles détectés par le cœur d'interception :

BtleJuice Target Selection Popup

Double-cliquez sur la cible souhaitée, puis attendez que l'interface soit prête (l'apparence 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 Connecté s'affichera sur l'interface principale.

BtleJuice Target Selection Popup

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 pris en charge par BtleJuice.

Rejouer les opérations GATT

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

Replay Popup

Replay dialog

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

Modification des données à la volée

Dernier point, mais non des moindres, 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 Intercepter 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 :

Interceptr dialog

Exporter les données dans un fichier

Depuis la version 1.0.6, l'interface fournit une fonctionnalité d'exportation de données permettant des exports lisibles et au format 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 Exporter est cliqué, la boîte de dialogue suivante s'affiche :

Export dialog

Cliquez sur le bouton Exporter 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 a affaire à des appareils qui ne sont actifs que pendant une courte durée.

Settings dialog

Déconnexion

Cliquer sur le bouton Sélectionner la cible en haut à droite lorsque le proxy est actif l'arrêtera et permettra de sélectionner à nouveau une cible.

Installation des bindings

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

root@kitploit:~
$ sudo npm install -g btlejuice-bindings

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

Remerciements

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

Licence

Copyright (c) 2016 Econocom Digital Security

La permission est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), de traiter le Logiciel sans restriction, y compris, sans limitation, les droits d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre des copies du Logiciel, et de permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :

L'avis de droit d'auteur ci-dessus et le présent avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du Logiciel.

LE LOGICIEL EST FOURNI « TEL QUEL », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU TITULAIRES DU DROIT D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DU LOGICIEL, DE SON UTILISATION OU D'AUTRES INTERACTIONS AVEC LE LOGICIEL.

Télécharger l’outil