"Se ci sono due o più modi di fare una cosa,
e uno di questi modi può condurre a una catastrofe,
allora qualcuno la farà in quel modo.

(Edward Murphy)

Cracking di reti Wi-Fi

Mer, 21/10/2009 - 00:00 -- arturu
Cracking Wi-Fi

Gli ultimi anni sono stati segnati da una diffusione significativa delle connessioni wi-fi sia in ambito domestico che lavorativo. In entrambi gli ambiti, tuttavia, troppo spesso si sottovalutano i rischi connessi alla sicurezza delle reti wireless; il più degli utenti, infatti, ignora che il cracking di queste reti può essere davvero molto semplice e, fatto ancor più grave, può essere messo in pratica con successo anche da utenti poco esperti.Questo breve articolo si propone di illustrare, anche attraverso esempi pratici, le tecniche di cracking più comuni al fine di consentire al lettore di adottare le opportune contromisure necessarie a mettere in sicurezza la propria rete senza fili.

Reti WEP e WPA

Attualmente la quasi totalità delle reti wi-fi è protetta mediante gli standard WEP e WPA-PSK. Il WEP (Wired Equivalent Privacy) è uno standard basato sull'algoritmo di cifratura dei dati RC4, il quale ha il vantaggio di essere molto veloce ma poco sicuro: nella particolare implementazione utilizzata, infatti, sono stati riscontrati difetti gravissimi che permettono il calcolo della chiave di rete a partire da dati ottenuti dall'analisi del traffico criptato. Il WPA-PSK (Wi-Fi Protected Access / Pre Shared Keys) è un protocollo creato per tamponare il problema scaturito dal fallimento del WEP. Utilizza chiavi di criptazione dinamiche a 128 bit e combina la chiave in uso con un vettore di inizializzazione (IVS). Le chiavi variano dinamicamente e la stessa non compare mai due volte consecutive. WPA2-AES è l'evoluzione dei protocolli precedenti, più robusto dei due sistemi appena trattati.

La suite Aircrack-ng

Per gli esempi pratici di questo articolo useremo la nota suite per l'auditing di reti wireless Aircrack-ng su sistema operativo Linux (è possibile, anche se più problematico, utilizzare la suite anche su sistemi Windows). Aircrack-ng offre all'utilizzatore un packet sniffer e una serie di tool di analisi che possono essere impiegati con qualsiasi scheda wireless munita di supporto per il monitor mode. Dopo aver effettuato il download dal sito ufficiale dovremo procedere all'installazione; per farlo si consiglia di seguire le istruzioni presenti sul sito dell'autore; se avete Ubuntu ve la caverete con l'istruzione:

$ sudo apt-get install aircrack-ng
Il Monitor Mode

Le schede di rete funzionano normalmente in una modalità che legge in prima istanza il MAC Address del pacchetto catturato e lo scarta automaticamente se non è indirizzato nostro host. Per i nostri fini è invece necessario poter catturare tutto il traffico "circolante". La modalità Monitor permette la ricezione del pacchetto anche nel caso in cui il nostro host non sia associato con l'access point o il terminale che lo ha generato. Per impostare la scheda di rete nella modalità Monitor, si utilizzano comunemente le seguenti istruzioni:

$ su
# airmon-ng stop [interfaccia]
# airmon-ng start [interfaccia]

Per verificare se il Monitor Mode sia stato attivato correttamente sarà sufficiente lanciare il comando:

# iwconfig

e leggere il valore del campo Mode dall'output del comando.

Sniffing dei pacchetti

Si definisce "sniffing" l'attività di intercettazione passiva dei dati che transitano in una rete telematica. Lo sniffing, in pratica, non è altro che la cattura dei pacchetti in transito su una rete. Per visualizzare l'elenco delle reti sotto monitoraggio è sufficiente lanciare il comando

# airodump-ng [interfaccia]

Lanciato senza altri parametri il comando citato non salva i pacchetti ricevuti da nessuna parte ma si limita a fare polling tra tutti i canali alla ricerca del massimo numero di reti possibile (il polling consiste nel provare a connettersi su tutti i canali ad intervalli regolari di tempo).

Questa fase, generalmente, percede lo sniffing vero e proprio; in questa fase preliminare, in sostanza, si "sceglie la vittima" dell'attacco. Per farlo sarà innanzituitto necessario appuntarsi alcune informazioni sulla rete individuata:

  • BSSID
  • ESSID
  • Channel (canale)
  • SSID del/dei client/s

Fatto questo sarà possibile lanciare il comando che avvia lo sniffing vero e proprio e salva su file il traffico catturato:

# airodump-ng -c [canale] -b  -w [filedicattura.ivs] [interfaccia]

A questo punto, a seconda del tipo di protezione che difende la rete-obiettivo si può agire con tecniche differenti. In certi casi, a dire il vero non frequentissimi, gli access point si proteggono da attacchi esterni tramite il MAC filtering, che consiste nell'accettare connessioni soltanto dagli host il cui indirizzo sia presente in una lista dedicata (whitelist). Sfruttando il fatto che almeno il MAC address dell'utente proprietario della rete sia presente in whitelist si può tentare di attaccare questo sistema facendo MAC Spoofing, ovvero cambiando con una riga di comando il proprio MAC Address con quello del proprietario della rete, che può essere ricavato ad esempio dalla lista delle connessioni tracciate da airodump. I seguenti comandi cambiano il proprio indirizzo MAC con quello inserito come argomento:

# ifconfig [interfaccia] down
# ifconfig [interfaccia] hw ether 
# ifconfig [interfaccia] up
Cracking WEP

Come già accennato il WEP ha un difetto di implementazione che lo rende vulnerabile ad un attacco basato su un semplice calcolo statistico: qualora si sia intercettata una quantità sufficiente di traffico l'attacco ha percentuali di riuscita vicine al 99%. >Se il nostro obiettivo è bucare (o meglio testare) una rete protetta con WEP, il primo passo da compiere è, quindi, quello di catturare un adeguato numero di pacchetti nel più breve tempo possibile. Per farlo una comune attività di sniffing potrebbe essere sufficiente. Qualora si desideri velocizzare l'operazione è possibile utilizzare in combinazione tecniche di fake association e packet injection: con la prima tecnica si crea un'associazione fittizia con l'access point vittima mentre con la seconda si fa in modo che nella rete circolino un gran numero di pacchetti. In questo modo sarà sufficiente pochissimo tempo per raccogliere il nostro bottino.

Il comando che mette in pratica quanto appena descritto è aireplay-ng, lanciato coi parametri indicati:

  1. Per la "Fake Association":
    # aireplay-ng -1 0 -e  -a  -h  [interfaccia]
  2. Per il "Packet Injection":

    # aireplay-ng -3 -b  -h  [interfaccia]

Al termine delle operazioni lanciamo il comando:

# aircrack-ng [filedicattura.ivs]

...ed attendiamo il responso.

Cracking WPA-PSK

Le reti WPA-PSK fortunatamente non soffrono della grave vulnerabilità del protocollo WEP. Craccare una rete di questo tipo necessità, pertanto, di un approccio per tentativi in cerca della giusta passphrase. L'obiettivo preliminare è catturare un handshake valido. Per chi non lo sapesse l'handshake è una sequenza di pacchetti scambiati tra un client autorizzato e un Access Point che porta all'autenticazione. Per conseguire questo primo fine si possono seguire due strade, la prima è aspettare che un client si connetta spontaneamente, la seconda è usare il Deauthentication attack. Il principio è far disconnettere un client con lo scopo di fargli ripetere la procedura di autenticazione, che sarà attentamente catturata dal nostro sniffer. La prima opzione, che pare a prima vista "poco furba", diventa l'unica praticabile quando nessun client è connesso alla rete obiettivo.

Una volta catturato l'handshake si passa alla ricerca della passphrase. Per questioni di tempo è impensabile effettuare un attacco a tentativi col grezzo "brute force" (prova sequenziale di tutte le combinazioni di un insieme di caratteri detto "charset"). E' da preferire un attacco a dizionario, che però richiede una wordlist (lista di parole di senso compiuto normalmente utilizzate come password; ad esempio nomi di persona) di buona qualità per risultare efficiente. Una volta ottenuta la wordlist sarà sufficiente eseguire il comando:

aircrack-ng -w [wordlist.txt] -b  [filedicattura.ivs]

ed attendere speranzosi che la password cercata sia nel dizionario. Un tipo di attacco di questo tipo andrà difficilmente a buon fine se la password è stata scelta con le dovute cautele.

Evoluzione del cracking e difesa della rete

Ovviamente questo testo non ha pretese di esaustività nel trattare la materia del cracking di una rete senza fili: esistono, infatti, tecniche più sofisticate che sfruttano altri tipi di vulnerabilità ma di più difficile applicazione. Di contro sono veramente pochi gli utenti in grado di utilizzare metodi differenti da quelli qui descritti.

Negli ultimi tempi sono stati sviluppati sistemi software che velocizzano il numero di operazioni effettuabili nell'arco di tempo in un attacco: i più interessanti sfruttano i velocissimi processori grafici, molto adatti per fare calcoli di questa natura, oppure sono basati sulla programmazione distribuita (il calcolo viene affidato non a una sola macchina ma ad una rete di calcolatori). Questo genere di innovazioni può minare anche la sicurezza delle password più sofisticate e di lunghezza medio-alta.

Per proteggersi dal WEP, pare scontato che l'unica soluzione sia non usarlo. Il WEP non è mai sicuro, e il cracking risulta facile qualsiasi sia la passphrase impiegata. Il WPA-PSK offre protezione buona a patto che la password sia sufficientemente lunga, composta da vari tipi di caratteri (maiuscole/minuscole/numeri/caratteri speciali) e non sia una parola potenzialmente presente nel dizionario. La sicurezza cresce esponenzialmente con ogni carattere in più aggiunto alla password! In ogni caso, quando possibile, il sistema migliore è certamente passare a WPA2-AES oppure, soluzione consigliata in ambito professionale, dotarsi di un server di autenticazione, ad esempio un server RADIUS.

Fonte mr webmaster