Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

WPA cracking con Backtrack

Usiamo la distribuzione Backtrack per attaccare reti wireless protette con WPA
Usiamo la distribuzione Backtrack per attaccare reti wireless protette con WPA
Link copiato negli appunti

Lo scopo principale di questo articolo è soprattutto didattico. Oltre ad illustrare una procedura per condurre un attacco ad una connessione wireless che utilizzi il protocollo WPA/TKIP, spiegheremo i vari passaggi, analizzando il contesto e formulando osservazioni. È bene ricordare che l'attacco a connessioni wireless (non di nostra proprietà o per le quali non sia stato sottoscritto un accordo scritto tra le parti) è illegale, per cui esercitatevi solo nel vostro laboratorio.

WPA/TKIP (Wi-Fi Protected Access (WPA)/Temporal Key Integrity Protocol) è un protocollo di sicurezza progettato per le wireless lan. WPA era stato progettato per risolvere i problemi legati alle debolezze del protocollo WEP (Wired Equivalent Privacy), un altro protocollo di sicurezza, già compromesso, ma purtroppo ancora molto usato soprattutto nelle WLAN "casalinghe".

WPA utilizza due tipi di chiave:

  • una chiave a 64 bit detta Message Integrity Check (MIC);
  • una chiave a 128 bit per l'encryption;

la prima è usata per individuare eventuali pacchetti forgiati o falsificati, mentre la seconda è usata per criptare/decriptare i pacchetti.

Il contesto

La rete è piena di video tutorial (non sempre veritieri in realtà...) che mostrano attacchi condotti in poco tempo contro connessioni protette da WPA (c'è addirittura chi confonde il "Brute Force" con un attacco a dizionario, spacciando il secondo per il primo, ma tant'è!). La realtà però è un'altra. Mentre i passaggi necessari per catturare il traffico, analizzarlo e trovare la pre-shared key (PSK) possono risultare perfino banali, il nodo di tutto il procedimento risulta essere proprio il cracking della chiave. Poichè i tempi di un attacco brute-force nel caso di WPA possono essere enormemente lunghi, l'unico metodo proponibile in termini di tempi di risposta è l'attacco a dizionario. Teoricamente potremmo utilizzare anche le Rainbow Tables, ma non sono consigliabili a causa delle enormi risorse che richiedono, a fronte di un risultato tutt'altro che certo.

L'ambiente software

La suite che useremo è ovviamente Backtrack 4, che contiene al suo interno tutti gli strumenti necessari. In particolare utilizzeremo aircrack-ng per tutto il procedimento. Per quanto riguarda il cracking della chiave possiamo anche affidarci ad altri strumenti come ad esempio cowpatty (sempre incluso in Backtrack).
Dopo aver fatto il bootstrap di Backtrack, per prima cosa apriamo una shell e portiamo su l'interfaccia wifi. Supponendo che si chiami ad esempio wlan0, lanciamo il comando:

ifconfig wlan0 up

Verifichiamo quindi le schede wireless presenti sul nostro computer con il seguente comando:

airmon-ng

Il mio PC rileva varie interfacce, la mia è la "wlan0". A questo punto dobbiamo porre l'interfaccia in monitor mode: in questo modo viene creata un'interfaccia "virtuale" che tipicamente viene indicata come "mon0". Usiamo quindi il seguente comando:

airmon-ng start wlan0

L'output dei comandi precedenti è mostrato in fig. 1 ().

Figura 1. Airmon in azione
(clic per ingrandire)


Airmon in azione

Ora apriamo una nuova shell per listare le reti wireless disponibili (e relativi access points), a distanza di rilevamento. Per far ciò lanciamo il comando:

airodump-ng mon0

Otterremo una lista di reti disponibili

Figura 2. La lista di reti disponibili
(clic per ingrandire)


Airmon reti disponibili

annotiamo i parametri di quella che ci interessa e proseguiamo. I parametri da annotare sono:

  • BSSID: il mac-address dell'access point
  • ESSID: il "nome" della rete wifi
  • il canale su cui trasmette l'access point
  • il tipo di encryption (WEP, WPA, WPA2) ovviamente ci interessano le connessioni WPA

A questo punto, iniziamo la cattura dei pacchetti scambiati tra l'access point e un computer associato a quell'access point, con il seguente comando:

airodump-ng -c 11 --bssid XX:XX:XX:XX:XX:XX -w wpacrack mon0

ove l'opzione "-c 11" indica il canale di trasmissione (11), XX:XX:XX:XX:XX:XX è il mac-address dell'access point che ci interessa, "-w wpacrack.cap" dice al software di salvare tutto il traffico catturato in un file chiamato "wpacrack.cap", utilizzando l'interfaccia virtuale "mon0"

l'output del comando è mostrato nella figura 3

Figura 3. Il risultato del comando
(clic per ingrandire)


Airmon risultato comando

Ora, attendiamo che almeno un computer si associ (se già non l'ha fatto) all'access point, dopodichè possiamo passare alla parte "attiva" dell'attacco. Lanciamo quindi il comando seguente:

aireplay-ng -0 10 -a XX:XX:XX:XX:XX:XX -c YY:YY:YY:YY:YY:YY mon0

il comando "aireplay-ng", il cui output è mostrato in figura 4

Figura 4. Il risultato di aireplay-ng
(clic per ingrandire)


Il risultato di aireplay-ng

è quello che esegue la c.d. "deauthentication" del client. L'opzione "-c YY:YY:YY:YY:YY:YY" indica il client avente come mac-address YY:YY:YY:YY:YY:YY, mentre l'opzione -a indica l'access point avente mac-address XX:XX:XX:XX:XX:XX. Ovviamente vanno sostituiti i veri valori dei mac-address. Il flag "-0 10" dice al programma di ripetere la deautenticazione 10 volte in modo tale da avere più chance di catturare l'Handshake. La deauthenitcation infatti serve a disassociare un client dal relativo access point, costringendolo a richiedere a quest'ultimo una nuova sessione di handshake.

Torniamo adesso all'altra finestra di shell (quella dove sta continuando a girare il comando "airodump-ng"): se è stato catturato l'handshake, noteremo in alto destra la dicitura "WPA Handshake", come mostrato in figura 5.

Figura 5. WPA handshake
(clic per ingrandire)


WPA handshake

E ora...cracking!

Dopo aver effettuato la verifica di cui sopra, siamo pronti per passare all'attacco vero e proprio. In caso di attacco a dizionario, è necessario dotarsi di una wordlist adeguata. I dizionari che si trovano in giro sulla Rete sono essenzialmente dizionari di prova, per lo più anglofoni e generici. Poichè il successo del nostro attacco dipende essenzialmente dalla bontà del dizionario, il consiglio è costruircene uno "custom" nel tempo.

Per far ciò all'interno di Backtrack esistono degli strumenti specifici: Il primo è Wyd (Backtrack –> Privilege Escalation –> PasswordAttacks –> OfflineAttacks –> Wyd). Wyd può sfruttare sia i dizionari di default di Backtrack, sia quelli scaricati, sia generarne di nuovi a partire ad esempio da pagine web. Supponendo di aver scaricato pagine web piene di vocaboli (ad es. i nomi italiani, reperibili da Wikipedia, possiamo darle in pasto a Wyd per generare il nostro database di vocaboli, lanciando ad esempio il seguente comando:

./wicd.pl wordlist.txt -o dizionario.lst

ove wordlist.txt è la nostra lista di vocaboli (ma potrebbe essere una pagina web o altro) e dizionario.lst è il database di output generato. È possibile utilizzare anche Pyrit e CUDA Multiforcer, reperibili sempre nello stesso ramo del menu Backtrack. La particolarità di questi due strumenti è quella di sfruttare CUDA (Computer Unified Device Architecture), un'architettura e un ambiente di sviluppo software per il calcolo parallelo creati da NVIDIA, che quindi riduce drasticamente i tempi di calcolo. Dopo aver fatto queste considerazioni non ci resta che lanciare il comando:

aircrack-ng wpacrack.cap -w dizionario.lst

In figura 6 è mostrato l'output del comando.

Figura 6. Crack attraverso una wordlist
(clic per ingrandire)


Crack attraverso una wordlist

Non mi resta quindi che augurarvi buono studio!

Ti consigliamo anche