Il mondo delle reti Wi-Fi è cambiato radicalmente da qualche anno a questa parte. Molti utenti stanno migrando verso l’algoritmo WPA2-AES allestendo reti wireless maggiormente sicure.
Uno dei motivi che stanno portando alla sempre più estesa adozione di WPA2-AES è la diffusione dei dispositivi 802.11n. Secondo le specifiche del nuovo standard, per l’attivazione del collegamento a 54 Mbps è indispensabile aver attivato la protezione della connessione con WPA2-AES.
Anche il cracking delle reti è comunque evoluto di pari passo: se oggi sono necessarie risorse computazionali sempre maggiori per provare ad accedere ad una rete WiFi protetta, gli strumenti sono maturati. Servizi come Cloud Cracker, ad esempio, dietro il versamento di un importo variabile, consentono di utilizzare una batteria di macchine disponibili “sulla nuvola” grazie alle quali, distruendo il carico di lavoro, è possibile ridurre drasticamente i tempi necessari per craccare una rete wireless.
Le informazioni pubblicate in queste pagine non possono e non devono mai essere utilizzate per “attaccare” reti Wi-Fi di terzi (a meno di non aver ottenuto esplicita autorizzazione). Il rischio è quello di incorrere nelle sanzioni enucleate all’articolo 615 del codice penale.
L’utilizzo delle informazioni qui pubblicate avviene quindi sotto unica ed esclusiva responsabilità dell’utente-lettore.
Per provare a craccare una rete WiFi, la propria o quella di una persona dalla quale si è precedentemente ottenuta esplicita autorizzazione, verificando quanto è protetta, bisognerà “armarsi” con un portatile dotato di scheda Wi-Fi e provvedere a scaricare la distribuzione Kali Linux nella sua più recente versione. La nostra scelta è caduta su Kali Linux perché la distribuzione può essere considerata come l’evoluzione di BackTrack 5 R3, da tempo non più aggiornata. Il download è effettuabile dal sito ufficiale del progetto oppure cliccando su uno dei link seguenti:
– Kali Linux 1.0.4, ISO 32 bit
– Kali Linux 1.0.4, ISO 64 bit
Scaricata Kali Linux, il suggerimento è quello di installarla in una chiavetta USB opportunamente resa avviabile. Allo scopo noi ci siamo serviti di YUMI ma è possibile usare SARDU o gli altri programmi che abbiamo illustrato nell’articolo Installare sistema operativo da USB od avviarlo dalla chiavetta.
Per installare Kali Linux in una chiavetta USB (della capienza minima di 4 GB) con YUMI basterà avviare il programma, selezionare la lettera identificativa di unità associata al dispositivo di memorizzazione, scegliere Kali (Penetration testing) dall’elenco quindi individuare la ISO di Kali Linux appena scaricata.
Alla comparsa della successiva finestra di dialogo, bisognerà fare clic sul pulsante Sì tenendo presente che alcune informazioni sulla chiavetta saranno sovrascritte:
Dopo aver preparato la chiavetta USB, si dovrà effettuare il reboot della macchina assicurandosi che il BIOS sia impostato in modo tale che gli hard disk vengano avviati dopo le periferiche USB eventualmente collegate.
Dopo aver scelto le voci System tools, Kali (Penetration testing) e Run Kali from this USB dal menù di avvio di YUMI, trascorsi alcuni secondi, si vedrà comparire l’ambiente di lavoro (desktop environment) di Kali Linux.
Il nostro suggerimento è quello di aprire una finestra del terminale Linux cliccando sull’apposita icona.
Il comando iwconfig
consentirà di verificare quali schede di rete sono installate sul sistema. Kali Linux supporta i driver che garantiscono il corretto funzionamento della stragrande maggioranza delle schede wireless che equipaggiano, ad esempio, i vari notebook. Tipicamente, accanto alla voce wlan0
si dovrebbe leggere IEEE 802.11 seguito da tutta una serie di dati accessori.
Qualora dovesse apparire no wireless extensions, significa che la scheda wireless non è supportata.
Ad ulteriore conferma, digitando airmon-ng
e premendo il tasto Invio, si dovrebbe leggere, sempre in corrispondenza al nome dell’interfaccia di rete wlan0
i nomi del chipset e del driver in uso.
Per avviare il monitoraggio dei pacchetti dati che viaggiano nell’etere utilizzando lo standard IEEE 802.11 nelle sue diverse varianti, bisognerà digitare il comando airmon-ng start wlan0
.
Nel caso in cui dovesse essere visualizzato il messaggio “Found N processes that could cause trouble“, qualora le operazioni di monitoraggio dei pacchetti si fermassero, per risolvere il problema basterà digitare il comando kill
seguito dal numero dei processi indicati.
Digitando nuovamente airmon-ng
, oltre all’interfaccia di rete “fisica” wlan0
, si dovrebbe trovare anche quella “virtuale” (mon0
) appena aggiunta:
Tutto è pronto. Il comando airodump-ng mon0
consentirà di ottenere l’elenco completo delle reti wireless disponibili nelle vicinanze.
Nella prima metà della finestra airodump mostra gli indirizzi MAC (o MAC address) dei vari access point Wi-Fi rilevati nei dintorni (per sapere che cos’è l’indirizzo MAC suggeriamo la lettura dell’articolo Indirizzo MAC (Wi-Fi e Ethernet): cos’è e come trovarlo). Ricercando, all’interno di questo documento, i primi tre gruppi di ciascun MAC address, si potrà in molti casi stabilire con che tipo di dispositivo hardware si ha a che fare.
Ad esempio, cercando D85D4C
(D8:5D:4C
) si potrà verificare che nelle vicinanze è installato un router Wi-Fi di TP-LINK, 0014BF
indica la presenza di un router Linksys, 00C049
uno US Robotics, 28107B
un D-LINK e così via.
Come un aggressore può risalire alla password della rete WiFi protetta con WPA o WPA2
L’ultima colonna (ESSID
) riporta l’identificativo con cui è stata denominata la rete wireless facente capo al corrispondente router od access point Wi-Fi.
Le colonna ENC, CIPHER
e AUTH
indicano algoritmo crittografico in uso (WEP, WPA, WPA2) e metodologia di autenticazione impiegati.
Da annotare l’informazione sul numero di canale utilizzato per l’invio e la ricezione dei dati (colonna CH
).
Nella seconda metà della finestra, airodump-ng fornisce qualche informazione sull’attività in corso sui vari access point. Gli indirizzi MAC enumerati nella colonnaSTATION
corrispondono a quelli assegnati alle schede di rete dei vari sistemi wireless (notebook, netbook, smartphone, tablet,…) che si collegano all’access point indicato nella colonna BSSID
.
In altre parole, l’applicazione airodump-ng consente di stabilire quali e quanti sistemi stanno “colloquiando” con i vari access point wireless.
Ecco perché la semplice protezione basata sul filtraggio degli indirizzi MAC dei client Wi-Fi dal pannello di amministrazione del router non può essere considerata una misura di sicurezza valida (l’aggressore può annotare l’altrui MAC address ed utilizzarlo al posto di quello associato di default alla propria scheda di rete).
Qualora il nome dei router/access point non risultasse leggibile per intero, suggeriamo di fare clic sul menù Terminal quindi selezionare la voce 132×24.
Dopo aver individuato la rete wireless da craccare, si dovrà premere la combinazione di tasti CTRL+C
quindi impartire il seguente comando:
Al posto di NN va sostituito il numero del canale usato dall’access point wireless mentre MACADDRESSACCESSPOINT va rimpiazzato con l’indirizzo MAC dell’access point stesso, anch’esso desunto precedentemente.
Dopo aver aperto una nuova finestra del terminale Linux, bisognerà cercare di intercettare il cosiddetto 4-way handshake ossia la procedura che ogni dispositivo wireless segue per presentarsi ad un access point e per ottenere il via libera per l’accesso alla rete. Per abbreviare i tempi evitando quindi di dover aspettare il collegamento di un dispositivo Wi-Fi titolato per l’utilizzo dell’access point, si possono inviare alcuni pacchetti dati che di solito provocano la disconnessione e l’immediata riconnessione automatica di un sistema già collegato alla rete wireless.
Il comando da utilizzare è il seguente:
Al posto di MACADDRESSACCESSPOINT va inserito, di nuovo, l’indirizzo MAC dell’access point mentre MACADDRESSCLIENT va sostituito con il MAC address di un client Wi-Fi attualmente collegato al medesimo access point.
Non appena comparirà l’indicazione WPA handshake in testa all’altra finestra del terminale, è possibile premere la combinazione di tasti CTRL+C
in entrambe le finestre.
L’handshake dovrebbe essere intercettato nel giro di meno di un minuto. Digitando il comando ls
, si troveranno i file di log generati da airodump-ng.
Avviando Wireshark dal menù Applications, Kali Linux, Top 10 security tools, quindi scegliendo File, Open ed aprendo il file capwifi-01.cap
memorizzato nella cartella /root
, si potrà verificare che esso contenga effettivamente delle informazioni sull’handshaking. Basterà infatti digitare eapol
nella casella Filter e premere Invio. Nella colonna Info si dovrebbe visualizzare più volte la stringa Key (vedere anche questa pagina nella documentazione di Wireshark).
Craccare la rete WiFi: come funziona l’attacco
La Wi-Fi Alliance, organizzazione nata nel 1999 e formata da alcune tra le più importanti aziende impegnate nel settore delle comunicazioni wireless con l’obiettivo di sovrintendere all’adozione di uno standard unico a livello mondiale, ha fissato in 8 caratteri la lunghezza minima delle password assegnabili ad una connessione Wi-Fi protetta con gli algoritmi WPA/WPA2. Si tratta di una scelta assennata che porta a circa 6 x 1015 le possibili combinazioni di password utilizzabili su ciascun router/access point. Gli attacchi brute-force sono quindi praticamente impossibili da sferrare con successo. Provare tutte le possibili combinazioni di caratteri numerici ed alfanumerici richiede risorse computazionali immense e tempistiche improponibili.
Di solito, quindi, uno degli attacchi che viene solitamente provato è il dictionary attack. Le informazioni raccolte con airodump-ng, infatti, vengono utilizzate per cercare di decodificare i dati memorizzati in precedenza utilizzando insiemi più ridotti di password, così come se si stesse utilizzando una sorta di “dizionario”.
Kali Linux contiene un dizionario pesante all’incirca 140 MB. Per utilizzarlo, è possibile digitare il comando seguente, anch’esso da impartire dal prompt della finestra del terminale:
L’attacco basato sul dizionario è quindi avviabile digitando quanto segue:
Al posto di rockyou.txt
è ovviamente possibile utilizzare dizionari più ampi o comunque, almeno in linea teorica, più efficaci per l’utenza italiana.
Se il dictionary attack andasse a buon fine, aircrack mostrerà in chiaro la password utilizzata a protezione della rete Wi-Fi.
Velocizzare l’elaborazione delle password sfruttando la potenza della GPU ossia del processore grafico
Sia in ambiente Linux che Windows, per velocizzare ulteriormente l’individuazione della password o comunque l’elaborazione del dizionario, è possibile ricorrere al software oclHashcat-plus. Prelevabile da qui, esso consente di velocizzare le operazioni poggiando sulle risorse del processore grafico (GPU).
Prima di procedere, è necessario convertire il file capwifi-01.cap
nel formato .hccap, supportato da oclHashcat-plus.
Allo scopo è possibile fare riferimento a questa pagina.
In Windows, dopo aver prodotto il file .hccap e trasferito il file rockyou.txt
da Kali Linux (qui si dovranno installare i driver per la GPU in uso…), si potrà quindi avviare il comando seguente:
oclHashcat-plus consente di effettuare non solo attacchi basati sul dizionario ma anche attacchi misti o basati esclusivamente su combinazioni di lettere, numeri e simboli.
Il comando seguente, avviato sempre dal prompt dei comandi di Windows, consente di provare tutte le combinazioni lettera-numero fino a 9 caratteri:
Ovviamente il tempo per compiere un attacco del genere potrebbe essere dell’ordine degli anni!
Un esempio di attacco-misto:
In questo caso, ad ogni singola password presente nel dizionario rockyou.txt, viene posposto un suffisso costituito da due numeri compresi tra 00 e 99.
Maggiori informazioni sono reperibili a questo indirizzo (mask attack).
Al posto di ccudaHashcat-plus64.exe
dev’essere specificato ccudaHashcat-plus32.exe
nel caso in cui si utilizzi una versione di Windows a 32 bit.
Attaccare una rete WiFi WPA/WPA2 sfruttando la vulnerabilità WPS
In tutti i router di nuova generazione è presente il pulsante “WPS“. Acronimo di “Wi-Fi Protected Setup“, trattasi di una funzionalità che dà modo di configurare automaticamente il collegamento verso un altro dispositivo Wi-Fi. Allo scopo viene utilizzato uno standard, lanciato a gennaio 2007 dalla Wi-Fi Alliance, che permette di semplificare le connessioni senza fili “senza tralasciare l’aspetto legato alla sicurezza”. È però necessario che entrambi i dispositivi siano compatibili con le specifiche WPS. Diversamente, si dovrà ripiegare sulla classica configurazione manuale dei parametri legati alla rete Wi-Fi.
Il ricercatore Stefan Viehbock ha però rivelato di aver individuato una pericolosa vulnerabilità nello standard WPS, riuscendo – con un attacco “brute force” – ad accedere ad una rete wireless protetta utilizzando il PIN di WPS in appena due ore di tempo. Ogni volta che un device tenta di connettersi al router WPS, quest’ultimo trasmette un messaggio col quale viene informato se le prime quattro cifre del PIN sono corrette o meno. Dal momento che lo standard WPS usa un PIN da otto cifre e che l’ultima viene usata come checksum. Ecco allora il patatrac: anziché avere a che fare con 100 milioni di possibilità (108), l’aggressore – per violare la rete senza fili – dovrebbe condurre al massimo 11.000 tentativi (104 sommato a 103).
Il tool Reaver, già integrato nella distribuzione Kali Linux, permette di provare a verificare la possibilità di accedere ad una rete WiFi protetta WPA/WPA2 usando la vulnerabilità WPS.
Per procedere, sempre dalla finestra del terminale, è sufficiente digitare quanto segue:
Il consiglio, nel caso in cui il proprio router sia dotato di funzionalità WPS, è quello di installare eventuali aggiornamenti firmware che fossero stati nel frattempo rilasciati dal produttore. Nel caso in cui si decidesse di disattivare completamente il PIN WPS, il suggerimento è quello di effettuare comunque un penetration test completo con Reaver.
Come difendersi: conclusioni finali
Abbiamo visto che l’assenza della vulnerabilità WPS nel router, l’uso di un algoritmo “forte” (WPA o, meglio ancora, WPA2) e, soprattutto, l’adozione di una password a protezione della connessione Wi-Fi che sia molto lunga (almeno 12 caratteri) e che sia composta da lettere (maiuscole e minuscole), numeri e simboli (difficilmente presente in un qualsiasi dizionario), sono sicuramente le migliori difese.
L’algoritmo WEP dev’essere in ogni caso evitato perché un router “protetto” usando tale protocollo può essere violato in pochi minuti utilizzando il comando aircrack-ng capwifi*.cap -K -b MACADDRESSACCESSPOINT
.
Nel caso in cui dovesse servirvi, sappiate che la password predefinita dell’utente “root” di Kali Linux è toor
.
Per spegnere completamente il sistema da Kali Linux, si può usare il comando shutdown now -h -P
.