hacktricks/radio-hacking/pentesting-ble-bluetooth-low-energy.md
2024-02-10 13:03:23 +00:00

7.8 KiB

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Introduzione

Disponibile dalla specifica Bluetooth 4.0, BLE utilizza solo 40 canali, coprendo la gamma da 2400 a 2483,5 MHz. Al contrario, il Bluetooth tradizionale utilizza 79 canali nella stessa gamma.

I dispositivi BLE comunicano inviando pacchetti pubblicitari (beacon), questi pacchetti diffondono l'esistenza del dispositivo BLE ad altri dispositivi nelle vicinanze. Questi beacon a volte inviano anche dati.

Il dispositivo di ascolto, chiamato anche dispositivo centrale, può rispondere a un pacchetto pubblicitario con una richiesta di scansione inviata specificamente al dispositivo pubblicitario. La risposta a quella scansione utilizza la stessa struttura del pacchetto pubblicitario con informazioni aggiuntive che non potevano essere inserite nella richiesta pubblicitaria iniziale, come il nome completo del dispositivo.

Il byte di preambolo sincronizza la frequenza, mentre l'indirizzo di accesso di quattro byte è un identificatore di connessione, che viene utilizzato in scenari in cui più dispositivi stanno cercando di stabilire connessioni sugli stessi canali. Successivamente, l'Unità di Dati di Protocollo (PDU) contiene i dati pubblicitari. Ci sono diversi tipi di PDU; i più comunemente utilizzati sono ADV_NONCONN_IND e ADV_IND. I dispositivi utilizzano il tipo PDU ADV_NONCONN_IND se non accettano connessioni, trasmettendo dati solo nel pacchetto pubblicitario. I dispositivi utilizzano ADV_IND se consentono connessioni e smettono di inviare pacchetti pubblicitari una volta che una connessione è stata stabilita.

GATT

Il Generic Attribute Profile (GATT) definisce come il dispositivo deve formattare e trasferire i dati. Quando si analizza la superficie di attacco di un dispositivo BLE, spesso si concentra l'attenzione sul GATT (o GATTs), perché è così che viene attivata la funzionalità del dispositivo e come i dati vengono archiviati, raggruppati e modificati. Il GATT elenca le caratteristiche, i descrittori e i servizi di un dispositivo in una tabella come valori a 16 o 32 bit. Una caratteristica è un valore di dati inviato tra il dispositivo centrale e il periferico. Queste caratteristiche possono avere descrittori che forniscono informazioni aggiuntive su di esse. Le caratteristiche sono spesso raggruppate in servizi se sono correlate all'esecuzione di una particolare azione.

Enumerazione

hciconfig #Check config, check if UP or DOWN
# If DOWN try:
sudo modprobe -c bluetooth
sudo hciconfig hci0 down && sudo hciconfig hci0 up

# Spoof MAC
spooftooph -i hci0 -a 11:22:33:44:55:66

GATTool

GATTool consente di stabilire una connessione con un altro dispositivo, elencando le caratteristiche di tale dispositivo e leggendo e scrivendo i suoi attributi.
GATTTool può avviare una shell interattiva con l'opzione -I:

gatttool -i hci0 -I
[ ][LE]> connect 24:62:AB:B1:A8:3E Attempting to connect to A4:CF:12:6C:B3:76 Connection successful
[A4:CF:12:6C:B3:76][LE]> characteristics
handle: 0x0002, char properties: 0x20, char value handle:
0x0003, uuid: 00002a05-0000-1000-8000-00805f9b34fb
handle: 0x0015, char properties: 0x02, char value handle:
0x0016, uuid: 00002a00-0000-1000-8000-00805f9b34fb
[...]

# Write data
gatttool -i <Bluetooth adapter interface> -b <MAC address of device> --char-write-req <characteristic handle> -n <value>
gatttool -b a4:cf:12:6c:b3:76 --char-write-req -a 0x002e -n $(echo -n "04dc54d9053b4307680a"|xxd -ps)

# Read data
gatttool -i <Bluetooth adapter interface> -b <MAC address of device> --char-read -a 0x16

# Read connecting with an authenticated encrypted connection
gatttool --sec-level=high -b a4:cf:12:6c:b3:76 --char-read -a 0x002c

Bettercap

Bettercap è uno strumento di pentesting per il Bluetooth Low Energy (BLE) che consente di eseguire una serie di attacchi e test di sicurezza su dispositivi BLE. È progettato per essere facile da usare e offre una vasta gamma di funzionalità per l'analisi e l'intercettazione del traffico BLE.

Installazione

Per installare Bettercap, è possibile seguire i seguenti passaggi:

  1. Assicurarsi di avere installato Go sul proprio sistema.
  2. Clonare il repository di Bettercap da GitHub.
  3. Eseguire il comando make build per compilare il codice sorgente.
  4. Eseguire il comando sudo make install per installare Bettercap.

Utilizzo di Bettercap per il pentesting BLE

Una volta installato Bettercap, è possibile utilizzarlo per eseguire una serie di attacchi e test di sicurezza su dispositivi BLE. Alcuni esempi di utilizzo includono:

  • Scansione dei dispositivi BLE nelle vicinanze utilizzando il comando ble.recon on.
  • Interrogazione dei servizi e delle caratteristiche di un dispositivo BLE utilizzando il comando ble.enum.
  • Esecuzione di attacchi di spoofing utilizzando il comando ble.replay.
  • Interrogazione e manipolazione del traffico BLE utilizzando il comando ble.sniff.

Risorse aggiuntive

Per ulteriori informazioni su come utilizzare Bettercap per il pentesting BLE, è possibile consultare la documentazione ufficiale di Bettercap su GitHub.

# Start listening for beacons
sudo bettercap --eval "ble.recon on"
# Wait some time
>> ble.show # Show discovered devices
>> ble.enum <mac addr> # This will show the service, characteristics and properties supported

# Write data in a characteristic
>> ble.write <MAC ADDR> <UUID> <HEX DATA>
>> ble.write <mac address of device> ff06 68656c6c6f # Write "hello" in ff06
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks: