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
btlejuice — BtleJuice framework Man-in-the-Middle per Bluetooth Smart (LE) | Kitploit
Strumenti/GitHubGitHub/digitalsecurity/btlejuice
Sniffing e Analisi dei PacchettiSicurezza BluetoothExploitSicurezza WirelessPenetration TestingRed TeamingArchived
GitHubdigitalsecurity/btlejuice

btlejuice

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

Vedi Repository
8511537 anni faRevisionato da Kitploit

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

Framework BtleJuice

Introduzione

BtleJuice è un framework completo per effettuare attacchi Man-in-the-Middle su dispositivi Bluetooth Smart (noti anche come Bluetooth Low Energy). È composto da:

  • un core di intercettazione
  • un proxy di intercettazione
  • un'interfaccia web dedicata
  • binding Python e Node.js

Come installare BtleJuice?

Installare BtleJuice è un gioco da ragazzi. Prima di tutto, assicurati che il tuo sistema usi una versione recente di Node.js (>=4.3.2) e npm. Quindi, assicurati di installare tutte le dipendenze richieste:

Ubuntu/Debian/Raspbian

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

### Fedora / Altre basate su RPM

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

Infine, installa BtleJuice usando npm:

root@kitploit:~
sudo npm install -g btlejuice

Se tutto è andato bene, BtleJuice è pronto per l'uso!

Come usare BtleJuice?

BtleJuice è composto da due componenti principali: un proxy di intercettazione e un core. Questi due componenti devono essere eseguiti su macchine indipendenti per utilizzare contemporaneamente due adattatori bluetooth 4.0+. BtleJuice Proxy non funziona in un contenitore Docker.

L'uso di una macchina virtuale può aiutare a far funzionare questo framework su un singolo computer.

Dalla tua macchina virtuale, installa btlejuice e assicurati che il tuo adattatore USB BT4 sia disponibile dalla macchina virtuale:

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

Quindi, assicurati che la tua macchina virtuale abbia un indirizzo IP raggiungibile dall'host.

Avvia il proxy nella tua macchina virtuale:

root@kitploit:~
$ sudo btlejuice-proxy

Sulla tua macchina host, non dimenticare di fermare il servizio bluetooth e assicurati che il dispositivo HCI rimanga aperto/inizializzato:

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

Infine, esegui il seguente comando sulla tua macchina host:

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

Il flag -w dice a BtleJuice di avviare l'interfaccia web mentre l'opzione -u specifica l'indirizzo IP del proxy.

L'interfaccia utente web è ora disponibile all'indirizzo http://localhost:8080. Nota che la porta del server web può essere cambiata tramite riga di comando.

Utilizzo dell'interfaccia web

L'interfaccia web di BtleJuice fornisce nell'angolo in alto a destra un insieme di link per controllare il core di intercettazione, come mostrato di seguito.

BtleJuice main web UI

Selezione del target

Prima, clicca sul pulsante Select target e apparirà una finestra di dialogo che mostra tutti i dispositivi Bluetooth Low Energy disponibili rilevati dal core di intercettazione:

BtleJuice Target Selection Popup

Fai doppio clic sul target desiderato e attendi che l'interfaccia sia pronta (l'aspetto del pulsante bluetooth cambierà). Una volta che il dispositivo fittizio è pronto, usa l'applicazione mobile associata o un altro dispositivo (a seconda di ciò che ci si aspetta) per connetterti al dispositivo fittizio. Se la connessione riesce, un evento Connected verrà mostrato sull'interfaccia principale.

BtleJuice Target Selection Popup

Tutte le operazioni GATT intercettate vengono quindi visualizzate con i corrispondenti UUID dei servizi e delle caratteristiche, e ovviamente i dati associati. I dati vengono mostrati di default in formato HexII (una variante del formato ideato da Ange Albertini), ma puoi passare da HexII a Hex (e viceversa) cliccando sui dati stessi. Entrambi i formati Hex e HexII sono supportati da BtleJuice.

Riproduzione delle operazioni GATT

È possibile riprodurre qualsiasi operazione GATT facendo clic destro su di essa e selezionando l'opzione Replay, come mostrato di seguito:

Replay Popup

Replay dialog

Clicca sul pulsante Write (o Read) per riprodurre la corrispondente operazione GATT. Questa operazione verrà registrata nell'interfaccia principale.

Modifica dei dati al volo

Ultimo ma non meno importante, l'interfaccia può intercettare localmente o globalmente qualsiasi operazione GATT e permettere la modifica dei dati al volo. Puoi usare l'intercettazione globale cliccando sul pulsante Intercept nell'angolo in alto a destra o usare il menu contestuale per abilitare o disabilitare un hook su un determinato servizio e caratteristica. Ogni volta che un'operazione GATT viene intercettata, apparirà la seguente finestra di dialogo:

Interceptr dialog

Esportazione dati in file

Dalla versione 1.0.6, l'interfaccia fornisce una funzionalità di esportazione dati che permette esportazioni in formato leggibile e JSON. Queste esportazioni sono generate in base alle operazioni GATT intercettate, ma includono anche informazioni sul dispositivo target. Quando si clicca sul pulsante Export, apparirà la seguente finestra di dialogo:

Export dialog

Clicca sul pulsante Export in fondo alla finestra di dialogo per scaricare una versione JSON (o testo) dei dati intercettati.

Impostazioni

La finestra delle impostazioni offre al momento una singola opzione che permette di riconnettere automaticamente il proxy quando il dispositivo target si disconnette. Questo può essere utile quando si ha a che fare con dispositivi attivi per un breve periodo di tempo.

Settings dialog

Disconnessione

Cliccando sul pulsante Select Target in alto a destra quando il proxy è attivo lo fermerà e permetterà di selezionare nuovamente il target.

Installazione dei binding

I binding Node.js di BtleJuice possono essere installati anche tramite npm:

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

Maggiori informazioni su come usare i binding Node.js nella documentazione del pacchetto.

Ringraziamenti

Un ringraziamento speciale a Slawomir Jasek che ha segnalato molti trucchi di noble/bleno per evitare problemi con le applicazioni mobili, e ha condiviso strategie MITM BLE durante il DEF CON 24 =). È anche l'autore di Gattacker.

Licenza

Copyright (c) 2016 Econocom Digital Security

Con la presente viene concessa, gratuitamente, a qualsiasi persona che ottenga una copia di questo software e dei file di documentazione associati (il "Software"), l'autorizzazione a utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e a consentire alle persone a cui il Software viene fornito di fare altrettanto, alle seguenti condizioni:

L'avviso di copyright sopra riportato e il presente avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, IVI INCLUSE, MA NON LIMITATE, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN FINE PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, ILLECITO O ALTRO, DERIVANTE DA, O IN CONNESSIONE CON, IL SOFTWARE O L'USO O ALTRE OPERAZIONI CON IL SOFTWARE.

Scarica lo strumento