|
|
WPA Cracking
Affronteremo i diversi approcci al cracking WPA/WPA2 PSK in ordine, analizzando prima l’utilizzo della sola suite di tools Aircrack-ng, poi l’utilizzo di coWPAtty e infine un loro utilizzo combinato. La base comune di tutti questi tutorial è quella di possedere un handshake valido tra il client e l’AP. Partiamo dalla catturta dell’handshake e alla sua verifica. ——————————– ——————————–
———————————————————————-
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.
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:
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: PinguinoNinja
|
|
|
![]() |
![]() |