hacktricks/radio-hacking/pentesting-ble-bluetooth-low-energy.md

115 lines
7.8 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
2022-05-01 16:32:23 +00:00
2024-02-10 13:03:23 +00:00
# Introduzione
2022-02-28 09:13:08 +00:00
2024-02-10 13:03:23 +00:00
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.
2022-02-28 09:13:08 +00:00
2024-02-10 13:03:23 +00:00
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**.
2022-02-28 09:13:08 +00:00
2024-02-10 13:03:23 +00:00
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.
2022-02-28 09:13:08 +00:00
2022-05-01 16:17:23 +00:00
![](<../.gitbook/assets/image (201) (2) (1) (1).png>)
2022-02-28 09:13:08 +00:00
2024-02-10 13:03:23 +00:00
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**.
2022-02-28 09:13:08 +00:00
2022-05-01 16:32:23 +00:00
## GATT
2022-02-28 09:13:08 +00:00
2024-02-10 13:03:23 +00:00
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.
2022-02-28 09:13:08 +00:00
2024-02-10 13:03:23 +00:00
# Enumerazione
2022-02-28 09:13:08 +00:00
```bash
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
```
2022-05-01 16:32:23 +00:00
## GATTool
2022-02-28 09:13:08 +00:00
2024-02-10 13:03:23 +00:00
**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`:
2022-02-28 09:13:08 +00:00
```bash
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
2024-02-10 13:03:23 +00:00
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
2022-02-28 09:13:08 +00:00
[...]
# 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
```
2022-05-01 16:32:23 +00:00
## Bettercap
2022-02-28 09:13:08 +00:00
2024-02-10 13:03:23 +00:00
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.
2022-02-28 09:13:08 +00:00
```bash
# 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
```
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai repository github di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>