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
esp32_bluetooth_classic_sniffer — Sniffer/injecteur Bluetooth BR/EDR actif, aussi bon marché que n'importe quelle carte ESP32. Fonctionne avec Scapy ;-) | Kitploit
Outils/GitHubGitHub/matheus-garbelini/esp32_bluetooth_classic_sniffer
Sécurité des Systèmes EmbarquésSniffing et Analyse de PaquetsSécurité BluetoothExploitationSécurité Sans FilHacking Matériel
GitHubmatheus-garbelini/esp32_bluetooth_classic_sniffer

esp32_bluetooth_classic_sniffer

Sniffer/injecteur Bluetooth BR/EDR actif, aussi bon marché que n'importe quelle carte ESP32. Fonctionne avec Scapy ;-)

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
Voir le dépôt
59877il y a 3 ansVérifié par Kitploit

BrakTooth Sniffeur/Injecteur BR/EDR actif pour ESP32

Simple « mode moniteur » pour Bluetooth Classic. Sniffez ou injectez des paquets BR/EDR en bande de base dans les connexions BT ESP32.

Il s'agit d'un sniffeur BR/EDR actif conçu par rétro-ingénierie et d'un framework de patching ESP32, qui peut être utilisé pour explorer l'interaction BR/EDR Bluetooth (BT) entre le contrôleur ESP32 et une cible distante.

Contrairement aux sniffeurs passifs, qui n'interagissent pas avec le réseau BT (piconet), le sniffeur actif se connecte lui-même au périphérique BT distant (cible BR/EDR) et permet de tester le protocole BT jusqu'à la couche bande de base, tout en étant guidé par une pile hôte BT telle que blue-kitchen. Le sniffeur BrakTooth prend en charge des cartes bon marché telles que ESP32-DOIT (4 $) ou ESP32-DevKitC (10 $).

Table des matières
  • Aperçu de la configuration simplifiée
  • 1) Installation
    • A. Installer les prérequis Linux (Ubuntu 18.04 / 20.04)
    • B. Flasher le firmware personnalisé sur l'ESP32
  • 2) Instructions d'utilisation
    • Exemple 1 - Connexion à une cible distante (rôle maître)
    • Exemple 2 - Attendre une connexion BT (rôle esclave)
    • Exemple 3 - Mode pont HCI (connexion avec une autre pile hôte BT)
  • 3) Compiler le firmware depuis les sources (ESP32 Patching Framework)
  • 4) Personnalisation des programmes hôte BT (profils)
  • Architecture logicielle du sniffeur BrakTooth
  • Aperçu des fonctionnalités
  • Remerciements

Aperçu de la configuration simplifiée

poc_setup

1) Installation

A. Installer les prérequis Linux (Ubuntu 18.04 / 20.04)
root@kitploit:~
git clone https://github.com/Matheus-Garbelini/esp32_bluetooth_classic_sniffer
cd esp32_bluetooth_classic_sniffer
./requirements.sh # (sudo required) Installs latest wireshark and standalone python3 runtime
./build.sh 		  # Build BT Host programs and Wireshark h4bcm dissector
B. Flasher le firmware personnalisé sur l'ESP32

Avant de commencer à utiliser le sniffeur BrakTooth, vous devez téléverser un firmware personnalisé sur votre carte ESP32 :

root@kitploit:~
sudo chown $USER:$USER /dev/ttyUSB0 # Give user permission to serial port to avoid using sudo
./firmware.py flash /dev/ttyUSB0 # Change ttyUSB0 to match your port name
# Note: ESP-WROVER-KIT or ESP-ETHERNET-KIT uses /dev/ttyUSB1 instead as the first port is for the FTDI JTAG circuit.

Important : certaines cartes nécessitent de maintenir le bouton BOOT enfoncé pour mettre correctement l'ESP32 en mode flashage.

2) Instructions d'utilisation

root@kitploit:~
Usage: BTSnifferBREDR.py [OPTIONS]
Options:
  --port TEXT       Serial port name (/dev/ttyUSBx for Linux)
  --host TEXT       BDAddress of local host (default: E0:D4:E8:19:C7:68)
  --target TEXT     BDAddress of remote target (ex: a8:96:75:25:c2:ac)
  --live-wireshark  Opens Wireshark live session
  --live-terminal   Show a summary of each packet on terminal
  --bridge-only     Starts the HCI bridge without connecting any BT Host stack
  --help            Show this message and exit.

Vous pouvez démarrer le sniffeur en tant que maître ou esclave. Si vous utilisez l'argument --target, le sniffeur tentera de se connecter à votre cible distante. Sinon, il attendra simplement qu'une personne s'y connecte.

Enfin, l'option --bridge-only crée uniquement le pseudo-terminal HCI (/dev/pts/x) afin que l'ESP32 puisse fonctionner comme un contrôleur BT HCI standard. Vous pouvez utiliser cette fonctionnalité pour connecter toute autre pile hôte BT à l'ESP32.

Exemple 1 - Connexion à une cible distante (rôle maître)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --target=E0:D4:E8:19:C7:69 --live-terminal --live-wireshark

mode_master

Exemple 2 - Attendre une connexion BT (rôle esclave)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --live-terminal --live-wireshark
Exemple 3 - Mode pont HCI (connexion avec une autre pile hôte BT)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --bridge-only --live-terminal --live-wireshark

mode_bridge_only

3) Compiler le firmware depuis les sources (ESP32 Patching Framework)

Le code source peut être compilé directement depuis le dépôt ESP32 Firmware Patching Framework comme suit :

root@kitploit:~
cd firmware
./build_from_source.sh # clone submodule & build firmware with platformio environment 'sniffer-serial'
./firmware.py flash <serial port> # flash built firmware to ESP32 via serial port

Les binaires du firmware ESP32 (firmware.bin, bootloader.bin, partitions.bin) sont copiés dans le dossier firmware après une compilation réussie. Ensuite, vous pouvez flasher le firmware comme décrit à l'étape 1.B).

4) Personnalisation des programmes hôte BT (profils)

Étant donné que le sniffeur BrakTooth utilise une pile hôte BT pour guider la connectivité, les exemples BlueKitchen modifiés suivants sont utilisés :

  • host_stack/sdp_rfcomm_query - Ce programme initie une connexion avec le périphérique esclave et tente d'effectuer un balayage SDP et un appairage.
  • host_stack/spp_counter - Ce programme attend les connexions et établit une connexion spp (port série) avec le périphérique maître.

Vous pouvez modifier ou ajouter des profils BT aux programmes actuels en suivant la documentation officielle de BlueKitchen. Notez que le dossier host_stack/bluekitchen/example/ contient déjà quelques exemples de profils.

Architecture logicielle du sniffeur BrakTooth

arch

Le firmware personnalisé du sniffeur/injecteur BR/EDR ESP32 communique avec le système hôte via un port série USB et attend de recevoir des commandes personnalisées ou des commandes HCI. Au démarrage, un pont HCI est créé pour séparer le protocole personnalisé BrakTooth des commandes HCI standard envoyées ou reçues par l'ESP32. Une fois la fonctionnalité « RX/TX Sniffer » activée sur le firmware ESP32, les paquets de la bande de base sont directement transmis au script BTSnifferBREDR.py qui décode simplement les paquets sniffés via le protocole personnalisé et les affiche via Scapy et/ou les envoie à Wireshark via une capture en direct et dans le dossier logs.

Aperçu des fonctionnalités

firmware_design

  • RX/TX Sniffer : Déverse les paquets de la bande de base et les transmet à l'hôte. Paquets pris en charge :
    • En-tête de bande de base
    • NULL/POLL de la cible distante
    • FHS (pas de couche Scapy pour le moment)
    • EIR (pas de dissection pour le moment)
    • En-tête ACL
    • LMP
  • Interception TX : Cela permet au PC hôte de modifier les paquets TX en temps réel avant leur transmission hertzienne depuis l'ESP32. Cela nécessite cependant une carte ESP32 avec USB haute vitesse telle que ESP-PROG ou ESP-WROVER-KIT. Les deux disposent d'un contrôleur USB vers UART FTD2232H, ce qui permet de réduire la latence de scrutation USB à 125us. (désactivé pour le moment, désolé).
  • Injecteur TX : Cela permet à l'hôte d'injecter des paquets BR/EDR immédiatement après la procédure de paging BT et à chaque slot de transmission (c.-à-d. toutes les 1.25ms), avec des attentes s'il y a quelque chose dans la file d'attente LMP interne de l'ESP32. (désactivé pour le moment, désolé).
  • Bypass RX/TX : Rend effectivement « aveugle » la pile BT ESP32 en empêchant la réception ou la transmission des paquets LMP après la procédure de paging. On peut l'utiliser pour construire une machine à états LMP autonome sur l'hôte et avec Scapy 🙂.​ Cette fonctionnalité pourrait permettre quelque chose de similaire à ce qui a été fait dans SweynTooth nRF52 dongle, mais pour BR/EDR.
  • Patcheur ROM : Installe des hooks ROM à l'intérieur du firmware.
  • HCI IN/OUT : Interface de communication standard avec la pile hôte BT. Une pile tierce telle que bluekitchen.

Remerciements

La dissection des paquets de la bande de base étend le dissecteur Wireshark Broadcom InternalBlue. Plus précisément, la dissection a étendu le plugin Wireshark h4bcm pour prendre en charge quelques couches BT supplémentaires et notre en-tête de métadonnées ESP32 personnalisé. Merci @jiska2342.

Merci à tous les projets open-source suivants :

  • Un merci spécial à @Ebiroll pour sa maintenance du module Xtensa pour Ghidra
  • @mringwal pour l'excellente pile hôte BT BlueKitchen open-source
  • Projet InternalBlue
  • Bibliothèque de manipulation de paquets Scapy
  • Projet Wireshark
Télécharger l’outil