Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)! Altri modi per supportare HackTricks: * 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.
# 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. ![](<../.gitbook/assets/image (201) (2) (1) (1).png>) 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 ```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 ``` ## 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`: ```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 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 -b --char-write-req -n gatttool -b a4:cf:12:6c:b3:76 --char-write-req -a 0x002e -n $(echo -n "04dc54d9053b4307680a"|xxd -ps) # Read data gatttool -i -b --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. ```bash # Start listening for beacons sudo bettercap --eval "ble.recon on" # Wait some time >> ble.show # Show discovered devices >> ble.enum # This will show the service, characteristics and properties supported # Write data in a characteristic >> ble.write >> ble.write 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: * 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).