Per cercare più facilmente i pacchetti relativi all'handshake inserite nella casella filtro la parola "eapol". I pacchetti devono essere in tutto 4, 2 in partenza dall'AP verso il client, e 2 dal client all'AP. Dall'esempio potete vedere che i pacchetti compresi tra il 575 e il 578 rispecchiano le 4 fasi che compongono l'handhsake WPA, e in particolare:
575 --> l'AP inizia l'handshake; nell'etichetta "802.1X Authentication" vedrete una voce chiamata "Replay Counter" settata a 1
576 --> il client risponde al primo pacchetto inviatogli dall'AP, anche qui il replay counter è settato a 1
577 --> ancora è l'AP a iniziare la seconda fase dell'autenticazione, in questo caso il replay counter è settato a 2
578 --> il client a sua volta risponde, il replay counter è 2
In pratica abbiamo 2 coppie di invio/risposta tra AP e client con lo stesso "replay counter".
Cracking
Visto che si tratta di bruteforcing, partiamo dal recuperare una wordlist per il nostro scopo.
Per il tutorial inseriremo in una wordlist, scaricata dal box del blog, la chiave WPA della nostra rete, cosi da eseguire il tutorial senza troppi problemi; teniamo presente che una wordlist per essere "funzionante" non ha solo bisogno di essere grande, ma anche "adatta" allo scenario; per questo tutorial userò una wordlist molto corta per velocizzarne l'esecuzione di prova.
Dirigiamoci sul box del blog (in alto a destra) e scarichiamo da qui una wordlist, per i test ho utilizzato
questa. Quindi scompattiamola con il comando:
-----------------
gunzip -d junk.gz
-----------------
e editiamola inserendo al suo interno la password della nostra rete in questo modo:
--------------------
cat >> junk << "end"
>-=m0r3l337k3y=-
>end
--------------------
ovviamente al posto di "-=m0r3l337k3y=-" dovete inserire quella che è la vostra password WPA, quindi stoppate cat inserendo la parola "end"(senza virgolette!).
[AIRCRACK-NG]
Ora iniziamo con il primo metodo di cracking utilizzando esclusivamente Aircrack-ng con la wordlist creata:
————————-
aircrack-ng -w junk -b 00:1c:10:90:86:7f handshake*.cap
————————-
-=Xploit=- ha fatto un video tutorial, il link è a
questo post del forum di remote-exploit.org
[AIROLIB-NG]
Adesso andremo ad utilizzare un’altro metodo di cracking che sfrutta Airolib-ng per creare un database con al suo interno le password precomputate con l’ESSID della vostra rete, in questo modo Aircrack-ng velocizzerà il lavoro di cracking.
Prima di tutto specifico che per proseguire dovete avere installato
SQLite3,
se state usando BT3 non avete problemi, è installato di default. Per chi non avesse SQLite3 installato, può installarlo tramite il modulo creato da
balding_parrot scaricabile da
qui. Installato SQLite3 è necessario installare la versione di Aircrack-ng in fase di sviluppo,
qui sul wiki di Aircrack-ng ci sono delle istruzioni dettagliate.
A questo punto passiamo a creare il nostro database con Airolib-ng:
————————-
airolib-ng wpaTestDB init
————————-
Con questo comando andremo a creare un database chiamato “wpaTestDB“. Ora creiamo la lista di ESSID con cui fare il salt delle password, per semplicità e velocità creiamo un file con all’interno solo il nome della nostra rete:
————–
nano essid.txt
————–
un volta aperto il file con nano (se non esiste il file quest’ultimo verrà creato in automatico) inseriamo al suo interno il nome della nostra rete, nel mio caso “trinacria“.
Quindi salviamo premendo “F2” e rispondiamo con “y” seguito dal tasto enter per salvare.
Adesso inseriamo la lista di ESSID presenti nel file appena creato nel database con il comando:
——————————-
airolib-ng wpaTestDB import ascii essid essid.txt
——————————-
e subito dopo le password:
——————————-
airolib-ng wpaTestDB import ascii passwd junk
——————————-
Ora procediamo con una pulizia del database in modo che vengano eliminate tutte le chiavi non valide rendendolo cosi più veloce e leggero:
——————————
airolib-ng wpaTestDB clean all
——————————
Adesso creiamo le PMK computando password con essid, tutto questo è fatto in automatico da Airolib-ng con il comando:
————————–
airolib-ng wpaTestDB batch
————————–
il tempo impiegato dipende dalla quantità di password inserite e dal numero di essid (1 nel nostro caso) oltre che dal sistema in vostro possesso.
Se volessimo essere sicuri di essere riusciti a creare un database senza errori possiamo utilizzare l’opzione “verify“; in questo modo Airolib-ng effettua una verifica volta ad eliminare ogni PMK che riscontra non valida, il comando per eseguire la verifica:
——————————-
airolib-ng wpaTestDB verify all
——————————-
se voleste controllare solo un numero random di chiavi non specificate l’opzione “all“.
Non ci resta che recuperare la chiave WPA con Aircrack-ng usando il database crerato da Airolib-ng al posto della sola wordlist:
——————————–
aircrack-ng -r wpaTestDB handshake-01.cap
——————————–
Ancora una volta
-=Xpoitz=- ha spiegato tutto producendo un’ottimo video, trovate il link leggendo
questo post del forum di Remote-Exploit.org
[COWPATTY]
Non resta che provare con un’altro strumento a nostra disposizione,
coWPAtty. In
BT3 per lanciare
coWPAtty 4.0, quello
usato da theprez98 in questo post che si trova su Remote-Exploit.org, dovete andare nella cartella
/pentest/wireless/cowpatty-4.0/ e lanciarlo da qua dentro con
./cowpatty.
Anche con
coWPAtty possiamo utilizzare metodi diversi, incominciamo sviluppando l’hash della password in tempo reale durante il cracking:
———————–
./cowpatty -f junk -r handshake-01.cap -s “trinacria”
———————–
oppure possiamo precalcolare l’hash con genpmk e poi utilizzarlo con coWPAtty:
—————–
genpmk -f junk -d hashGenpmk -s “trinacria”
—————–
e quindi recuperare la password fornendo in input l’hash, l’hanshake e l’ESSID della rete:
——————
./cowpatty -d hashGenpmk -r handshake-01.cap -s “trinacria”
——————
Seguendo il post di shamanvirtuel ho scoperto che
Airolib-ng ha tra le vari funzioni anche quella di esportare l’hash gia computato di un determinato ESSID con la nostra wordlist in un file che possa essere letto da
coWPAtty, in questo modo
abbiamo la possibilità di gestire un database di hash con Airolib-ng e utilizzare coWPAtty per recuperare la chiave; il comando per esportare solo gli hash di un determinato ESSID e password è:
——————–
airolib-ng wpaTestDB export cowpatty “trinacria” airoexport
——————–
come vedete specifichiamo il database su quale lavorare (wpaTestDB) l’ESSID da esportare (trinacria) e il nome del file che andremo a generare (airoexport). Adesso con coWPAtty possiamo recuperare la nostra chiave:
——————–
./cowpatty -d airoexport -s “trinacria” -r hanshake-o1.cap
——————–
[AGGIORNARE "wpaTestDB"]
Aggiornare il database con Airolib-ng è possibile, in questo modo potete aggiungere di volta in volta password o essid al vostro database senza perdere cio che avevate già computato prima.
Verifichiamo lo stato del nostro database:
————————–
airolib-ng wpaTestDB stats
————————–
in questo modo avremo per output l’elenco degli ESSID inseriti (trinacria) e la percentuale di PMK generate con le password inserite (100.0). Ora aggiungiamo un nuovo ESSID al database, quindi cancelliamo il file essid.txt creato prima e creiamone un’altro con all’interno l’ESSID da aggiungere (possiamo aggiungerne anche più di uno alla volta):
——————-
airolib-ng wpaTestDB import ascii essid essid.txt
——————-
Adesso proviamo a verificare ancora lo stato del nostro database e guardiamo il risultato:
Come potete vedere l’ESSID è stato aggiunto (essidAGGIUNTO) ma ancora non è stato computata nessuna PMK con questo ESSID (0.0); appunto ora comptiamo le chiavi con l’opzione batch e verifichiamo lo stato del database:
Adesso il database è computato al 100%!!
Cosa utilizzare di ciò che ho scritto e in che circostanza penso si possa capire solo con la pratica, io non mi sono fatto un’idea generale. Per farsi un’idea migliore bisogna fare più prove e porgere attenzione alla tempistica di ogni passaggio, magari provando wordlist di dimensioni diverse, tanto sperimentare non fa mai male!

Per concludere vi ricordo che dovete sperimentare tutto quello che ho scritto su una rete di vostra proprietà, non intendo prendermi nessuna responsabilità dell’uso che farete di quanto descritto.
Fonte: Carlito Brigante Blog