The Best Geek Forum

HACKING WIFI | Hackerare WPA/WPA2 Aircrack e Hashcat

Le basi dell'Etica Hacker raccolte in una rubrica che descrive la terminologia di essa prendendo spunto da diversi libri e fatti accaduti.

Moderatore: Moderatore in prova

Salve a tutti lettori,

in questa guida vedremo com hackerare la chiave di cifratura più diffusa sui router di tutto il mondo. Innanzitutto, chiariamo che la differenza tra WPA e WPA2 non è da sottovalutare... Entrambi gli acronimi vogliono dire Wifi Protected Access, ma per il secondo viene specificato il due in quanto è la versione più avanzata di crittografia sui router fino ad oggi.
Mal grado le vittime ( e fortunatamente per gli attaccanti) la differenza di decriptazione, al contrario, non è diversa. Entrambi possono essere Brute-Forzati attraverso un semplice Dictionary Attack.

Immagine


Prima di iniziare spiegherò prima quello che andremo a fare:

Come prima opzione sceglieremo il nostro target, e lo analizzeremo con il comando airodump-ng già utilizzato precedentemente.


Successivamente avremo bisogno di catturare
l' HandShake...
cos'è l'handshake??
L'HandShake è un protocollo che si instaura tra l'host e il router, in modo tale che la successiva comunicazione per navigare su internet, tra i due possa avvenire. In pratica non è altro che uno scambio di pacchetti dati tra i due per regolare come deve avvenire la connessione.


L'HandShake lo cattureremo in seguito all'invio di pacchetti di deautenticazione,in modo tale da costringere i dispositivi nei paraggi del router a ristabilire un protocollo con esso e "sniffare" i pacchetti che i due si scambiano reciprocamente. Questo passaggio può avvenire in automatico se un utente si collega al router, ma nel nostro caso forzeremo il tutto per velocizzare l'operazione con il software aireplay-ng già preinstallato nelle distro dedicate al pentesting. L'HandShake verrà poi salvato in un file denominato con estensione *.cap.
La Chiave contenuta all'interno del file .cap (quindi WPA/WPA2) possiede una codifica in 128 bit. Quindi l'unico modo per decriptarla è un bruteforce, che noi però, non andremo a fare direttamente, nel senso che non possiamo provare lettera per lettera il bruteforce della password altrimenti con una normale CPU, come qualsiasi bruteforce di qualsiasi password, ci vorrebbero centinaia di anni!!!!!! Quindi, a meno che non vogliate passare la vita a cercare una password, e magari poi ve la cambiano pure, il metodo più semplice e più "rapido" è sì un bruteforce, ma con un dizionario che contiene già le password più usate e più comuni del mondo in tutte le lingue, certo poi dipende dal dizionario che si ha...

In questa guida in fondo vi elencherò i dizionari, con password rubate da database italiani e non, e ordinate in ordine alfabetico, reperiti su internet nel corso del tempo e re-uplodati per la guida da me.

Dulcis in fundo, il brute force verrà eseguito con il famosissimo software Aircrack-ng.... Ma non solo!!!!! Esamineremo anche il tool HashCat di cui vi parlerò più approfonditamente in seguito, non vi faccio perdere ulteriormente tempo e passiamo subito all'opera!

Hacking WPA/WPA2 con Linux Per iniziare chiudiamo tutti i processi

Codice: Seleziona tutto

airmon-ng check kill
Poi

Codice: Seleziona tutto

airmon-ng start interfaccia_scheda_di rete
Dopo aver fatto ciò vedete qual è la vostra interfaccia di monitor mode, nel mio caso avendo aggiornato il sistema, è cambiata da mon0 -> wlan0mon

Codice: Seleziona tutto

airmon-ng
Una volta fatte queste "premesse", passiamo ad airodump e lanciamolo, cercando tutti i network nella zona, nel mio cosa scelgo, ovviamente, il mio router.

Codice: Seleziona tutto

airodump-ng interfaccia_monitor_mode
Nel mio caso la rete vittima è la TIM

Immagine

Ora possiamo prendere di mira la suddetta rete, sempre tramite airodump-ng in modo tale da restare in attesa dei pacchetti spiegati precedentemente, necessari per la cattura dell'HandShake.
Per fare ciò impartiamo il seguente comando alla macchina:

Codice: Seleziona tutto

airodump-ng --bssid bissi_del_router -c canale_router -w /percorso/dove/salvare/handshake/file.cap interfaccia_monitor_mode
Immagine

Lasciando invio, mettiamo il programma in ascolto sul router, in attesa dell'handshake.

Immagine

Adesso dobbiamo far sì che il dispositivo/i connessi alla rete si scambino i pacchetti dati quindi, facciamo avvenire questo con aireplay, mandando pacchetti di deauth su un dispositivo elencato sotto STATION...

quindi:

Codice: Seleziona tutto

aireplay-ng -0 10 -a bussed_router -c bssid_client interfaccia_montior_mode 
Il parametro -0: indica il tipo di attacco e quindi lo 0 il deauth
10 sono i numeri di pacchetti di deauth da inviare

Immagine

Alla fine dell'attacco inviato con aireplay, dopo pochi attmimi dovrebbe comparire una scritta nella schermata di airodump ovvero:

WPA handshake: bssid del router

Immagine

QUESTO VUOL DIRE CHE LA NOSTRA PASSWORD E' STATA PRATICAMENTE CATTURATA E SALVATA ALL'INTERNO DEL FILE CHE ABBIAMO ASSEGNATO ALL'INIZIO AD AIRODUMP PRIMA DI AVERLO MESSO IN ASCOLTO

Inoltre come potrete notare dopo il lancio di airodump saranno stati salvati altri file, a noi interessa solamente quello con estensione .cap.

Come detto in precedenza la password contenuta nel file, è criptata in 128 bit, quindi ora andremo ad eseguire un Vocabulary Attack.

Attenzione!
Vi lascerò i link dei vari dizionari più utili e affidabili sotto la guida. Inoltre l'ultimo link riguarderà l'immenso dizionario di CrackStation, un file di ben 15 Gb (compresso in 4) contenente circa 1.500.000.000 di password rubate da database e altro!!!!
Ora andremo ad eseguire il BruteForce con un dizionario piccolo tramite aircrack

Codice: Seleziona tutto

aircrack-ng -a2 -b bssid_del_router -w /percorso/dizionario.txt /percorso/file/handshake.cap
Immagine

E quindi partirà il bruteforce, dove il tempo per trovare la password dipende prima di tutto
  • Se la password è contenuta nel dizionario.
    La dimensione del dizionario.
Immagine

Infine se la vostra password è contenuta nel dizionario aircrack ve la mostrerà sullo schermo!

Immagine

BruteForce con GPU

Sin ora, il lavoro svolto da aircrack sfruttando la CPU è senza dubbio ottimo, ma cosa succederebbe se vi dicessi che il brute force può essere velocizzato, e di molto??

Ebbene sì, negli ultimi tempi si è scoperto che grazie alla velocità con la quale le GPU eseguono i calcoli per i giochi, è possibile sfruttarle per eseguire un bruteforce e migliorare i tempi in modo impressionante!!!!
La differenza, ovviamente, la si nota quanto più il dizionario è grande e tanto si vede il distacco.
Un tool che permette questo è senza dubbio HashCat.

Il software esegue i bruteforce di tantissimi tipi di chiavi crittografate attraverso le GPU:
·Nvidia (Dedicata)
·AMD (Dedicata)
·Intel (Integrate con I processori)

Potete scaricarlo dal link postato sopra.

Ora andremo ad utilizzarlo per eseguire il bruteforce della stessa chiave di prima, ovvero la WPA2.

Attenzione!
Tendo a specificare che il BruteForce mediante HashCat non è possibile effettuarlo su partizione virtuale, in quanto, questa, non ha la possibilità di sfruttare le componenti hardware del nostro computer, e quindi, in questo caso della nostra scheda video.
Per questo motivo, io eseguirò il bruteforce su windows, il quale risiede su una partizione dedicata del disco rigido.
Prima però di passare al bruteforce vero e proprio abbiamo bisogno di eseguire alcuni passaggi preliminari, di modo tale da convertire il file cap in un file hccap leggibile da hashcat.
Il primo comando da eseguire serve per rimuover alcuni dati inutili per un file hccap.

Codice: Seleziona tutto

wpaclean file_output.cap file_orgininario.cap
Poi tramite aircrck stesso avviamo la conversione del file

Codice: Seleziona tutto

aircrack-ng file_originario.cap -J file_output.hccap
Immagine

A questo punto possiamo passare ad hashcat. Se eseguite su linux il programma, potete farlo tramite il comando ./hashcat64.bin o ./hashcat32.bin a seconda dell'architettura del vostro OS. Lo stesso vale su windows solo che i comandi cambiano in hashcat64.exe e hashcat32.exe
Perchè si possa iniziare finalmente l'attacco a dizionario, vi è bisogno di identificare il tipo di codifica da inserire in hashcat. Tutte le codifiche e i comandi sfruttabili possono essere visualizzate attraverso il comando --help. L'assegnazione WPA/WPA2 in hashcat equivale al numero 2500 (comando -> -m 2500) quindi andiamo ad eseguire il tutto...

Codice: Seleziona tutto

hashcat64.exe -m 2500 /percorso/file_handshake.hccap /percorso/dizionario.txt
Immagine

Per poi infine trovare la nostra password!!!

Immagine

Conclusione:

Da notare ragazzi il tempo che ha impiegato hashcat rispetto ad aircrack per trovare la password con lo stesso dizionario. Facendo un piccolo calcolo del tempo, hashcat ha impiegato 1 minuto nel mio caso per formattare in modo corretto il dizionario, ma con vocabolari con estensioni .dict questo non dovrebbe accadere e il bruteforce dovrebbe iniziare immediatamente.
Tralasciando questo piccolo dettaglio, possiamo notare ragazzi, che, aircrack per trovare la password ha impiegato più di 1 minuto e mezzo... Mentre tramite hashcat e quindi con un GPU bruteforce l'attacco di forza bruta E' DURATO UN SOLO SECONDO!!!!!
Di seguito potrete trovare i link per i vocabolari re-uplodati da me eccetto il dizionario di crackstation cui link rimanda al sito ufficiale.


Vocabolario 1: BIG LIST 1 | Grandezza: 241 Mb
Vocabolario 2: BIG LIST 2 | Grandezza: 299 Mb
Vocabolario 3: BIG LIST 3 | Grandezza: 283.3 Mb
Vocabolario 4: RockYou | Grandezza: 139.9 Mb
Vocabolario 5: Darkc0de | Grandezza: 18 MB
Vocabolario 6: CrackStation | Grandezza: 4 Gb
[/align]

Ho promesso in precedenza di specificare se un attacco fosse stato efficace contro la protezione Ap Rate Limiting o meno, ma mi pare evidente che qui, questo tipo di protezione può fare ben poco e non serve a niente! :yahoooooo:

 ! Messaggio da: Virgula
ATTENZIONE!
Non mi avvalgo della responsabilità dei danni che potreste provocare con le informazioni contenute in questi post. Vi ricordo che se avete brutte intenzioni ovvero di """hackerare"""" qualche router non di vostra proprietà, con queste guide, non ce n'è alcun bisogno, anzi ecco un procedimento migliore e molto più semplice:
bussi alla porta del vicino, ti prendi un caffè parli di qualcosa e poi gentilmente gli chiedi: Potresti farmi connettere al tuo wifi per favore?
In caso di risposta positiva divertiti, in caso contrario caccia i big money, assolda un tecnico e fatti sistemare tutto affinchè tu possa essere connesso con il mondo di oggi!

Codice: Seleziona tutto

       [email protected]:~# cd hashcat
[email protected]:~/hashcat# ls
BUILD.md      example0.hash    example500.cmd   hashcat           hashcat.potfile  obj        tools
charsets      example0.sh      example500.hash  hashcat.dictstat  include          OpenCL
deps          example400.cmd   example500.sh    hashcat.hcstat    kernels          README.md
docs          example400.hash  example.dict     hashcat.hctune    Makefile         rules
example0.cmd  example400.sh    extra            hashcat.log       masks            src
[email protected]:~/hashcat# ./example400.sh
hashcat (v3.10-542-ge1010ff) starting...

OpenCL Platform #1: Mesa
========================
* Device #1: AMD ICELAND (DRM 3.1.0 / 4.6.0-kali1-amd64, LLVM 3.8.1), 256/1024 MB allocatable, 5MCU

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Applicable Optimizers:
* Zero-Byte
* Single-Hash
* Single-Salt
* Slow-Hash-SIMD

Watchdog: Hardware Monitoring Interface not found on your system
Watchdog: Temperature abort trigger disabled
Watchdog: Temperature retain trigger disabled

Initializing device kernels and memory...clBuildProgram(): CL_BUILD_PROGRAM_FAILURE

unsupported initializer for address space in m00400_init
Device #1: Kernel /root/hashcat/OpenCL/m00400.cl build failure. Proceeding without this device.

Started: Tue Oct 25 01:09:14 2016
Stopped: Tue Oct 25 01:09:16 2016
[email protected]:~/hashcat# ./example500.sh
hashcat (v3.10-542-ge1010ff) starting...

OpenCL Platform #1: Mesa
========================
* Device #1: AMD ICELAND (DRM 3.1.0 / 4.6.0-kali1-amd64, LLVM 3.8.1), 256/1024 MB allocatable, 5MCU

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Applicable Optimizers:
* Zero-Byte
* Single-Hash
* Single-Salt

Watchdog: Hardware Monitoring Interface not found on your system
Watchdog: Temperature abort trigger disabled
Watchdog: Temperature retain trigger disabled

Initializing device kernels and memory...clBuildProgram(): CL_BUILD_PROGRAM_FAILURE

unsupported initializer for address space in m00500_init
Device #1: Kernel /root/hashcat/OpenCL/m00500.cl build failure. Proceeding without this device.

Started: Tue Oct 25 01:16:18 2016
Stopped: Tue Oct 25 01:16:20 2016
[email protected]:~/hashcat# ./example0.sh 
hashcat (v3.10-542-ge1010ff) starting...

OpenCL Platform #1: Mesa
========================
* Device #1: AMD ICELAND (DRM 3.1.0 / 4.6.0-kali1-amd64, LLVM 3.8.1), 256/1024 MB allocatable, 5MCU

Hashes: 6494 digests; 6494 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates

Applicable Optimizers:
* Zero-Byte
* Precompute-Init
* Precompute-Merkle-Demgard
* Meet-In-The-Middle
* Early-Skip
* Not-Salted
* Not-Iterated
* Single-Salt
* Raw-Hash

Watchdog: Hardware Monitoring Interface not found on your system
Watchdog: Temperature abort trigger disabled
Watchdog: Temperature retain trigger disabled

Initializing device kernels and memory...clBuildProgram(): CL_BUILD_PROGRAM_FAILURE

unsupported initializer for address space in m00000_m04
Device #1: Kernel /root/hashcat/OpenCL/m00000_a1.cl build failure. Proceeding without this device.

Started: Tue Oct 25 01:17:19 2016
Stopped: Tue Oct 25 01:17:22 2016
[email protected]:~/hashcat# 
      
ciao e buonasera
presumo che la mia situazione hardwear non mi consenta di andare fin in fondo a questa guida ,con mio sommo dispiacere . in pratica ho installato kali linux su un ssd esterno usb per non occupare spazio sul disco del notebook che e 250 gb con w 10 e da quello che vedo se ben interpreto il terminale temo proprio che sia cosi, comunque chiedo ai piu esperti di me di dare uno guardo al codice per vedere che non abbia fatto qualche errore . tutto questo in ambito linux , in ambito windows invece mi dice esplicitamente che questo programma non puo essere eseguito sul mio pc. mi restano 2 opzioni a questo punto ,o metto un ssd da 500gb e linux in dual boot con w 10 o installo linux in dual boot sul desktop che ha gia un ssd da 500 gb ... :wallbash: peccato mi entusiasmava questa guida
Buongiorno a tutti sul forum ragazzi ,dovrei rettificare il mio precedente post (tutto sbagliato non so dove e come )nel quale scrivevo che a questa guida non sarei mai arrivato ad una fine . Ebbene mi sbagliavo , ho rieseguito tutto da capo e voila proprio come nella guida di Virgula (sempre sia lodato) tutto e filato liscio (a parte non aver trovato la password interessata ,ma questo ci puo stare) .

Tuttavia A MIO AVVISO ho avuto modo di vedere che il tempo di calcolo si riduce in maniera IMPRESSIONANTE (vedere foto )un dizionario di 14 gb mi da un tempo stimato di 11 ORE 19 MINUTI quando prima per elaborare 1 gb di dizionario ci volevano 6\7 ore . Ovviamente tutto dipende dall hardwear del proprio pc . Per cui se la password e contenuta nel dizionario state pur certi che saltera fuori in tempi relativamente brevi se confrontati a prima .
Cè un pero che non mi e "piaciuto " l eccessiva temperatura raggiunta dalla CPU arrivata a 88 gradi , (mai vista una simile temperatura sul mio pc che arriva al massimo a 60 \65 )al che io ho preferito interrompere prima di friggere tutto .
Ecco ora faro altre prove con l altro pc desktop pero non ho molte speranze perche l hardwear e inferiore (I5 intel 4500) comunque vedremo come si comportera .
vi allego l immagine .


Immagine

ciao a tutti un saluto e ......alla prossima
.

ed ecco il desktop che con il dizionario da 14 gb se la cavera (se non trova prima la password )in ben 3gg e 13 ore . se non altro questo pc non mi da problemi di temperatura .Immagine Immagine

ora pero mi piacerebbe provare in linux con kali ,qualcuno piu pratico di me riesce a spiegarmi come risolvere ?come detto nel post precedente ho kali installato su un ssd esterno usb . ho montato lo stesso disco sul portatile ed eseguito tutta la procedura ma non ce stato niente da fare non mi riconosce il sistema. ora riprovo e posto l ouptoup . ciao
Ciao ascolta ti rispondo brevemente..... Come ho spiegato nella guida, non è possibile eseguire un bruteforce su partizione virtuale in quanto, questa, non ha accesso alle risorse hardware. Non è da meno una partizione di avvio installata su un SSD esterno. Perchè il programma possa accedere alle risorse hardware e quindi alla GPU, vi è bisogno che il sistema operativo sul quale lo si esegue sia installato sul disco rigido del computer e non in una partizione allocata come dimensione fissa o dinamica che è 'esterna'.
Aggiungo inoltre che il tempo di bruteforce dipende sempre dalle tue risorse hardware, sebbene quanto possa essere piccola la GPU, sarà sempre velocizzato il tutto, e di molto!
Ad esempio, la velocità con il quale si trova una password cambia drasticamente a seconda che tu abbia un nuovo o vecchio modello della scheda grafica, o dalla grandezza 1gb,2gb,4gb ecc...

Inoltre è normale che le temperature arrivino a quel livello, ma con hashcat puoi dire tu al programma, a che temperatura fermarsi, e una volta raffredatosi ad un'altra certa temperatura, ripartire.
Puoi smmanettare e impostare tu le temperature studiandoti un pò la lista dei comandi attraverso hashcat --help...
Di default hashcat imposta la scheda video con un range di temperatura massimo di 90°. Una volta arrivatoci, hashcat ferma il bruteforce, facendo abbassare la temperatura del computer nuovamente, di default la fa abbassare a 75°, per poi ripartire.
Ma ripeto, queste sono tutte opzioni che puoi impostare tu manualmente, e dire tu a che temperatura fermarsi e poi ripartire, tutto in automatico.
molto bene mi studiero un po le impostazioni non credevo si potesero settare .. grande guida comunque mi e piaciuta un casino , al di la delle mie lacune tecniche .. ciao e grazie mille
Ciao, ho scaricato il dizionario da 4gb ma quando vado ad estrarlo con winzip mi da errore perchè il file è troppo grande.
Estrailo da terminale. Comunque ti ho già consigliato di non partire subito con il dizionario da 15 gb, sopratutto se esegui un bruteforce normale senza GPU.... Ribadisco di iniziare con BIG List 1-2-3, perchè questi contengono anch'essi una grande vastità di parole e numeri, sopratutto in italiano. Ed anche perchè nel caso ci sia un errore all'handshake, nel senso che la parola c'è nel dizionario ma non viene stampata in quanto ci potrebbe essere questo errore, fai una prova prima con la tua rete wifi inserendo la tua password reale in una piccola lista creata da te di poche parole, per vedere se ti funziona il tutto se non ci sono problemi e sopratutto se sei riuscito a capire la tecnica e come utilizzare i tools correttamente.
Si, gia' provato sulla mia rete ed ha funzionato.
Ok allora procedo con le prime 3 big list.
Grazie
Ciao, ho provato ad installare hashcat e naturalmente non me lo fa installare, allora ho fatto l'estrazione del file da windows e l'ho messo su una chiavetta, come faccio ad installarlo??
WOW Virgula! :D :D Una guida veramente fica.Tutti i passaggi seguiti passo per passo e senza un errore la mia GPU adesso ha in pasto 1.3gb.. in 10 minuti.Veramente da paura.Comunque una cosa volevo chiedertela come sempre:

hashcat (v3.10) starting...

OpenCL Platform #1: Intel(R) Corporation
========================================
- Device #1: Intel(R) HD Graphics 530, 1626/6507 MB allocatable, 24MCU
- Device #2: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, skipped

OpenCL Platform #2: NVIDIA Corporation
======================================
- Device #3: GeForce GTX 965M, 512/2048 MB allocatable, 8MCU
- Device #3: WARNING! Kernel exec timeout is not disabled, it might cause you errors of code 702
See the wiki on how to disable it: https://hashcat.net/wiki/doku.php?id=timeout_patch

WARN: nvmlDeviceGetFanSpeed() 3 Not Supported

Hashes: 1 hashes; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1
Applicable Optimizers:
* Zero-Byte
* Single-Hash
* Single-Salt
* Slow-Hash-SIMD
Watchdog: Temperature abort trigger set to 90c
Watchdog: Temperature retain trigger set to 75c

- Device #1: Kernel m02500.22d7883f.kernel not found in cache! Building may take a while...
- Device #1: Kernel amp_a0.22d7883f.kernel not found in cache! Building may take a while...

- Device #3: Kernel m02500.de1807c6.kernel not found in cache! Building may take a while...
- Device #3: Kernel amp_a0.de1807c6.kernel not found in cache! Building may take a while...

Generated dictionary stats for F:\Prove\pass\biglist1: 1247805441 bytes, 96685489 words, 96644603 keyspace

tatus [p]ause [r]esume ypass [c]heckpoint [q]uit =>

prima di partire mi ha dato quell 'errore' che non supporta: WARN e i Device(kernel) che non trova.Di cosa si tratta? Si può impostare qualcosa velocizzarla ancora di più oppure è tutto normale? E un'altra cosa: ho notato che lavora solo la GPU in questo modo,ma c 'è un modo per far lavorare sia GPU che CPU oppure è un po,diciamo,inutile rispetto ai grandi calcoli che fa già la GPU? Come se la CPU tanto ricoprisse giusto un 10% e quindi cambierebbe poco.
Grazie Virgula! :thanks:
ps: questi giorni ogni volta che metto una virgola mi viene in mente il tuo avatar xD

:builder: :builder: