Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/jiaoxianjun/btle
Sniffing e Analisi dei PacchettiSicurezza BluetoothSicurezza IoTSicurezza WirelessTop in Sicurezza Bluetooth n.6
GitHubjiaoxianjun/btle

BTLE

Sniffer di pacchetti e trasmettitore Bluetooth Low Energy (BLE) sia per standard che non standard (bit grezzi) basato su Software Defined Radio (SDR).

Vedi Repository
942176293 mesi faRevisionato da Kitploit
Sito web

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

BTLE

BTLE è una suite software libera e open-source per Bluetooth Low Energy (BLE) basata su Software Defined Radio, insieme a un progetto open di chip BTLE.

Include:

  • Banda base BTLE: descrizione degli algoritmi, implementazione in Python e Verilog, risultati con FPGA e SkyWater 130 PDK (workflow OpenLane2).
  • Implementazione con Analog Devices AD9361 + Xilinx Zynq FPGA: FPGA Bluetooth
  • btle_rx - Sniffer BLE. Oltre allo sniffing di canali broadcast/fissi, può anche tracciare il channel hopping di un collegamento di comunicazione.
  • btle_tx - Trasmettitore universale di pacchetti BLE. Oltre allo standard BLE, supporta anche la modalità raw bit per generare pacchetti GFSK arbitrari. In questo modo puoi testare protocolli non standard, o standard ancora in discussione, prima che il chip sia sul mercato.

Caratteristiche

  • Il PHY e gli strati superiori sono implementati in software (linguaggio C). Piena flessibilità Software Defined Radio.
  • PHY GFSK BLE standard da 1 Mbps.
  • Sono supportati tutti i formati di pacchetto del link layer per i canali ADV e DATA in Core_V4.0 (Capitoli 2 e 3, Parte B, Volume 6).
  • Lo sniffer è in grado di analizzare e seguire automaticamente il pattern di channel hopping, non limitandosi al canale broadcast o a un canale fisso.

Hardware

  • HackRF
  • bladeRF
  • versione compatibile delle librerie HackRF e bladeRF

Compilazione e test rapido

Assicurati che l'ambiente hardware SDR (driver/lib) sia stato configurato correttamente prima di eseguire questo progetto.

git clone https://github.com/JiaoXianjun/BTLE.git
cd BTLE/host
mkdir build
cd build
cmake ../                   (default. for HackRF)
cmake ../ -DUSE_BLADERF=1   (only for bladeRF)

make
./btle-tools/src/btle_rx

Il comando precedente effettua lo sniffing sul canale 37. Dovresti vedere molti pacchetti sullo schermo se hai dispositivi BLE (telefono/tablet/portatile) nelle vicinanze.

./btle-tools/src/btle_tx 37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-LOCAL_NAME09-SDR/Bluetooth/Low/Energy r500 

Il comando precedente trasmette pacchetti discovery sul canale ADV. Dovresti vedere un dispositivo con nome "SDR/Bluetooth/Low/Energy" in un'altra app sniffer BLE (come LightBlue).

Per avere una sequenza di operazioni più veloce su HACKRF, usa quanto segue:

#define TRANSFER_COUNT 4
#define TRANSFER_BUFFER_SIZE 4096

in hackrf/host/libhackrf/src/hackrf.c. Quindi ricompila la libreria HACKRF e reinstallala. Non dimenticare di ricompilare BTLE per applicare la modifica alla libreria HACKRF.

Oltre agli strumenti, la directory matlab include la valutazione degli algoritmi e altri script utili

Uso di btle_rx

-h --help

Stampa tutti gli argomenti/gli usi.

-c --chan

Numero del canale. Valore predefinito 37 (uno dei canali ADV). Valori validi 0~39 (tutti i canali ADV e DATA).

-g --gain

Guadagno di ricezione in dB. HACKRF rxvga predefinito 6, valori validi 0 - 62. Il default di bladeRF è il guadagno rx massimo di 66dB (valido 0 - 66). Il guadagno deve essere regolato con molta attenzione per garantire le migliori prestazioni nella tua situazione. Si consiglia di provare partendo da un guadagno basso, perché un guadagno alto provoca sempre una forte distorsione e non ottieni nulla.

-l --lnaGain

Guadagno LNA in dB (solo HackRF). Predefinito 32, valori validi 0 - 40. Il guadagno deve essere regolato con molta attenzione per garantire le migliori prestazioni nella tua situazione.

-b --amp

Abilita l'amplificatore (solo HackRF). Predefinito: disattivato.

-a --access

Access address. Predefinito 8e89bed6 per i canali ADV 37, 38, 39. Dovresti specificare il valore corretto per il canale dati in base alla procedura di setup della connessione catturata.

-k --crcinit

Predefinito 555555 per il canale ADV. Dovresti specificare il valore corretto per il canale dati in base alla procedura di setup della connessione catturata.

-v --verbose

Modalità verbose. Stampa più informazioni quando c'è un errore

-r --raw

Modalità raw. Dopo il rilevamento dell'access addr, stampa i successivi 42 byte raw (senza de-scrambling né parsing)

-f --freq_hz (need argument)

Questa frequenza (Hz) avrà la precedenza sull'impostazione del canale (nel caso in cui si voglia lavorare su una frequenza diversa da BTLE. Scopo più generale).

-m --access_mask (need argument)

Se un bit di questa maschera è 1, il bit corrispondente nell'access address verrà incluso nella decisione sull'esistenza del pacchetto (nel caso in cui si voglia una parola unica più corta/rada per il rilevamento dei pacchetti. Scopo più generale).

-o --hop

Questo attiva il tracciamento del canale dati (frequency hopping) dopo che le informazioni di setup del collegamento vengono catturate nel pacchetto ADV_CONNECT_REQ sul canale ADV.

-s --filename

Salva i pacchetti in un file pcap.

Uso di btle_tx

btle_tx packet1 packet2 ... packetX ...  rN

oppure

btle_tx packets.txt

packets.txt è un file di testo che contiene i parametri della riga di comando (packet1 packet2 ... rN) come testo. Un parametro per riga. Una riga che inizia con "#" è considerata un commento. Vedi esempio packets.txt

packetX 

è una stringa che descrive un pacchetto. Tutti i pacchetti compongono una sequenza di pacchetti.

rN

significa che la sequenza verrà ripetuta N volte. Se non viene specificato, la sequenza verrà inviata una sola volta.

Formato della stringa packetX

channel_number-packet_type-field-value-field-value-...-Space-value

Ogni stringa descrittiva inizia con il numero del canale BTLE (0~39), seguita dal packet_type (RAW/iBeacon/ADV_IND/ADV_DIRECT_IND/etc. Vedi tutti gli esempi di formato ALLA FINE: Appendice), quindi dalla coppia campo-valore specifica del packet_type; alla fine c'è la coppia Space-value (opzionale), in cui il valore specifica quanti millisecondi attendere dopo l'invio di questo pacchetto.

NON usare il carattere spazio " " in un descrittore di pacchetto da riga di comando. PUOI usare lo spazio nel descrittore di pacchetto nel file txt.

NON usare "-" all'interno di ciascun campo. "-" è un carattere magico usato per separare i diversi campi nel descrittore di pacchetto.

  • esempio btle_tx: Pacchetti Discovery

Apri l'app LightBlue (o un altro sniffer BLE) sul tuo iPhone/dispositivo prima di questo comando:

./btle-tools/src/btle_tx ../btle-tools/src/packets_discovery.txt

Vedrai un dispositivo chiamato "SDR Bluetooth Low Energy" nella tua app LightBlue.

Riga di comando corrispondente:

./btle-tools/src/btle_tx 37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-LOCAL_NAME09-SDR/Bluetooth/Low/Energy r40

Nota: lo spazio " " è sostituito da "/" perché lo spazio " " non è supportato nella riga di comando.

Scarica lo strumento