Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
esp32_bluetooth_classic_sniffer — Sniffer/Iniettore Bluetooth BR/EDR attivo, economico quanto qualsiasi scheda ESP32 possa essere. Funziona con Scapy ;-) | Kitploit
Strumenti/GitHubGitHub/matheus-garbelini/esp32_bluetooth_classic_sniffer
Sicurezza Sistemi EmbeddedSniffing e Analisi dei PacchettiSicurezza BluetoothExploitSicurezza WirelessHacking Hardware
GitHubmatheus-garbelini/esp32_bluetooth_classic_sniffer

esp32_bluetooth_classic_sniffer

Sniffer/Iniettore Bluetooth BR/EDR attivo, economico quanto qualsiasi scheda ESP32 possa essere. Funziona con Scapy ;-)

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
5987753 anni faRevisionato da Kitploit

BrakTooth ESP32 BR/EDR Sniffer/Iniettore Attivo

Semplice "modalità monitor" per Bluetooth Classic. Sniffa o inietta pacchetti Baseband BR/EDR nelle connessioni BT dell'ESP32.

Questo è uno sniffer BR/EDR attivo ottenuto tramite reverse engineering e un framework di patch per ESP32, che può essere usato per esplorare l'interazione Bluetooth (BT) BR/EDR tra il controller ESP32 e un target remoto.

A differenza degli sniffer passivi, che non interagiscono con la rete BT (piconet), lo sniffer attivo si connette al dispositivo BT remoto (target BR/EDR) e consente di testare il protocollo BT fino al livello Baseband, guidato da uno stack host BT come blue-kitchen. Lo sniffer BrakTooth supporta schede economiche come ESP32-DOIT ($4) o ESP32-DevKitC ($10).

Indice dei contenuti
  • Panoramica della configurazione semplificata
  • 1) Installazione
    • A. Installare i requisiti Linux (Ubuntu 18.04 / 20.04)
    • B. Flashare il firmware personalizzato su ESP32
  • 2) Istruzioni per l'uso
    • Esempio 1 - Connettersi a un target remoto (Ruolo Master)
    • Esempio 2 - Attendere una connessione BT (Ruolo Slave)
    • Esempio 3 - Modalità HCI Bridge (connettersi con un altro stack host BT)
  • 3) Compilare il firmware dal sorgente (ESP32 Patching Framework)
  • 4) Personalizzare i programmi host BT (Profili)
  • Architettura software dello sniffer BrakTooth
  • Panoramica delle funzionalità
  • Riconoscimenti

Panoramica della configurazione semplificata

poc_setup

1) Installazione

A. Installare i requisiti 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. Flashare il firmware personalizzato su ESP32

Prima di iniziare a usare lo sniffer BrakTooth, devi caricare un firmware personalizzato sulla tua scheda 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.

Importante: alcune schede richiedono di tenere premuto il pulsante BOOT per mettere correttamente l'ESP32 in modalità di flashing.

2) Istruzioni per l'uso

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.

Puoi avviare lo sniffer nel ruolo di master o slave. Se aggiungi l'argomento --target, lo sniffer tenterà una connessione al tuo target remoto. Altrimenti, attenderà semplicemente che qualcuno si connetta ad esso.

Infine, l'opzione --bridge-only crea solo il pseudo-terminale HCI (/dev/pts/x) così che l'ESP32 possa operare come un controller BT HCI standard. Puoi usare questa funzionalità per connettere qualsiasi altro stack host BT all'ESP32.

Esempio 1 - Connettersi a un target remoto (Ruolo Master)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --target=E0:D4:E8:19:C7:69 --live-terminal --live-wireshark

mode_master

Esempio 2 - Attendere una connessione BT (Ruolo Slave)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --live-terminal --live-wireshark
Esempio 3 - Modalità HCI Bridge (connettersi con un altro stack host BT)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --bridge-only --live-terminal --live-wireshark

mode_bridge_only

3) Compilare il firmware dal sorgente (ESP32 Patching Framework)

Il codice sorgente può essere compilato direttamente dal repository ESP32 Firmware Patching Framework come segue:

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

I binari del firmware ESP32 (firmware.bin, bootloader.bin, partitions.bin) vengono copiati nella cartella firmware al termine della compilazione. A questo punto, puoi procedere a flashare il firmware come descritto nel passaggio 1.B).

4) Personalizzare i programmi host BT (Profili)

Poiché lo sniffer BrakTooth usa uno stack host BT per guidare la connettività, vengono usati i seguenti esempi BlueKitchen modificati:

  • host_stack/sdp_rfcomm_query - Questo programma avvia la connessione con il dispositivo slave e tenta di eseguire la scansione SDP e l'associazione (pairing).
  • host_stack/spp_counter - Questo programma attende connessioni e stabilisce una connessione spp (porta seriale) con il dispositivo master.

Puoi modificare o aggiungere profili BT ai programmi esistenti seguendo la documentazione ufficiale di BlueKitchen. Nota che la cartella host_stack/bluekitchen/example/ contiene già alcuni esempi di profili.

Architettura software dello sniffer BrakTooth

arch

Il firmware personalizzato dello sniffer/iniettore BR/EDR ESP32 comunica con il sistema host tramite una porta seriale USB e attende di ricevere comandi personalizzati o comandi HCI. All'avvio, viene creato un bridge HCI per separare il protocollo personalizzato di BrakTooth dai comandi HCI standard inviati o ricevuti dall'ESP32. Una volta abilitata la funzionalità "RX/TX Sniffer" sul firmware ESP32, i pacchetti Baseband vengono inoltrati direttamente allo script BTSnifferBREDR.py, che decodifica semplicemente i pacchetti sniffati tramite il protocollo personalizzato e li stampa tramite Scapy e/o li salva in Wireshark tramite cattura live e nella cartella logs.

Panoramica delle funzionalità

firmware_design

  • RX/TX Sniffer: Scarica i pacchetti Baseband e li inoltra all'host. Pacchetti supportati:
    • Header Baseband
    • NULL/POLL dal target remoto
    • FHS (nessun layer Scapy per ora)
    • EIR (nessuna dissezione per ora)
    • Header ACL
    • LMP
  • Intercettazione TX: Consente al PC host di modificare i pacchetti TX in tempo reale prima della trasmissione over-the-air dall'ESP32. Richiede tuttavia una scheda ESP32 con USB ad alta velocità come ESP-PROG o ESP-WROVER-KIT. Entrambe hanno un controller USB-UART FTD2232H, che consente una latenza di polling USB ridotta di 125us. (disabilitata per ora, spiacente).
  • Injector TX: Consente all'host di iniettare pacchetti BR/EDR immediatamente dopo la procedura di paging BT e in ogni slot di trasmissione (cioè ogni 1.25ms), soggetto ad attese se c'è qualcosa nella coda LMP interna dell'ESP32. (disabilitata per ora, spiacente).
  • RX/TX Bypass: Di fatto "acceca" lo stack BT dell'ESP32, impedendogli di ricevere o trasmettere pacchetti LMP dopo la procedura di paging. Si può usare per costruire una macchina a stati LMP autonoma sull'host e con Scapy 🙂. Questa funzionalità potrebbe abilitare qualcosa di simile a quanto fatto con la chiavetta SweynTooth nRF52, ma per BR/EDR.
  • ROM Patcher: Installa hook ROM dall'interno del firmware.
  • HCI IN/OUT: Interfaccia di comunicazione standard con lo stack host BT. Uno stack di terze parti come bluekitchen.

Riconoscimenti

La dissezione dei pacchetti Baseband estende il InternalBlue Broadcom Wireshark Dissector. Nello specifico, la dissezione estende il plugin Wireshark h4bcm per supportare alcuni ulteriori livelli BT e l'header di metadati ESP32 personalizzato. Grazie a @jiska2342.

Grazie a tutti i seguenti progetti open-source:

  • Un ringraziamento speciale a @Ebiroll per la sua manutenzione del Modulo Xtensa per Ghidra
  • @mringwal per l'eccellente BlueKitchen BT Host Stack open-source
  • Progetto InternalBlue
  • Libreria Scapy per la manipolazione dei pacchetti
  • Progetto Wireshark
Scarica lo strumento