6. Aircrack-ng Essentials
Aircrack-ng è una potente suite di oltre 20 strumenti per l'audit delle reti Wi-Fi. Tra questi figurano uno sniffer di pacchetti, un rilevatore di reti, uno strumento di iniezione di frame e uno strumento per crackare chiavi WEP e passphrase WPA-PSK.
Prima di immergerci e iniziare ad attaccare le reti wireless, copriamo innanzitutto alcuni degli strumenti essenziali che useremo per la maggior parte dei nostri attacchi e familiarizziamo con la suite Aircrack-ng in generale.
Inizieremo con Airmon-ng, che mette le nostre interfacce in e fuori dalla modalità monitor. Continueremo con Airodump-ng per catturare frame 802.11 grezzi e visualizzare informazioni sulle reti wireless. Abbiamo anche Aircrack-ng per crackare reti WEP e WPA1 e WPA2 con chiave precondivisa (PSK). Poi useremo Airdecap-ng, uno strumento per filtrare e decrittare file di cattura. Infine, Airgraph-ng crea rappresentazioni grafiche delle reti Wi-Fi catturate e dei relativi client.
6.1. Airmon-ng
Airmon-ng è un modo conveniente per abilitare e disabilitare la modalità monitor su varie interfacce wireless.
Eseguire airmon-ng senza parametri mostra lo stato e le informazioni sulle interfacce wireless del sistema.
kali@kali:~$ sudo airmon-ng
PHY Interface Driver Chipset
phy0 wlan0 ath9k_htc Atheros Communications, Inc. AR9271 802.11n
Listato 1 - Output di Airmon-ng
L'output di Airmon-ng fa riferimento all'identificatore PHY dell'interfaccia wireless, seguito dal nome dell'interfaccia, dal driver e infine dal chipset. Le interfacce sono tipicamente denominate "wlan" seguito da una o due cifre.
Warning
Sebbene il nome dell'interfaccia possa essere modificato, "phy" è un identificatore univoco e immutabile che un'interfaccia mac80211 ottiene fino a un riavvio o ogni volta che un adattatore Wi-Fi viene collegato e il relativo driver viene caricato. Pertanto, collegare e scollegare lo stesso adattatore Wi-Fi comporterà numeri "phy" incrementati.
6.1.1. Airmon-ng check
Alcuni processi, molti dei quali si avviano automaticamente, sono noti per interferire con gli strumenti della suite Aircrack-ng e altri strumenti che utilizzano interfacce in modalità monitor. Ad esempio, Network Manager riporterà un'interfaccia wireless in modalità managed e salterà su canali diversi scansionando le reti.
Sarà importante identificare e terminare processi come Network Manager. Il parametro check di Airmon-ng verifica e elenca questi processi.
kali@kali:~$ sudo airmon-ng check
Found 3 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before putting
the card in monitor mode, they will interfere by changing channels
and sometimes putting the interface back in managed mode
PID Name
1885 NetworkManager
1955 wpa_supplicant
2015 dhclient
Listato 2 - Verifica dei network manager con Airmon-ng
L'output indica che il nostro sistema sta eseguendo Network Manager, WPA Supplicant e DHCP client.
Airmon-ng con il parametro check kill prima tenta di arrestare i servizi noti in modo ordinato, quindi termina il resto dei processi:
kali@kali:~$ sudo airmon-ng check kill
Killing these processes:
PID Name
1955 wpa_supplicant
2015 dhclient
Listato 3 - Terminazione dei network manager con Airmon-ng
Warning
Se è necessario l'accesso a Internet, deve essere configurato manualmente dopo aver messo l'interfaccia in modalità monitor utilizzando strumenti come dhclient e/o wpa_supplicant su un'altra interfaccia. Se è richiesta la modalità access point, deve essere configurata manualmente anche questa utilizzando hostapd.
6.1.2. Airmon-ng start
Per mettere la nostra interfaccia wireless wlan0 in modalità monitor, eseguiamo Airmon-ng con l'opzione start e il nome dell'interfaccia.
kali@kali:~$ sudo airmon-ng start wlan0
PHY Interface Driver Chipset
phy0 wlan0 ath9k_htc Atheros Communications, Inc. AR9271 802.11n
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)
Listato 4 - Airmon-ng abilita la modalità monitor su wlan0
Airmon-ng crea una nuova interfaccia in modalità monitor denominata "wlan0mon" come mostrato sopra. Aggiunge "mon" al nome dell'interfaccia quando possibile; alcuni driver non consentono di modificare il nome dell'interfaccia, quindi è importante prendere nota dell'interfaccia in modalità monitor risultante.
Per avviare la modalità monitor su un canale specifico, aggiungiamo il numero del canale al nostro comando precedente.
kali@kali:~$ sudo airmon-ng start wlan0 3
PHY Interface Driver Chipset
phy0 wlan0 ath9k_htc Atheros Communications, Inc. AR9271 802.11n
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)
Listato 5 - Airmon-ng abilita la modalità monitor su wlan0, canale 3
Dobbiamo impostare il canale solo quando lo strumento che usiamo dopo Airmon-ng non ha la capacità di impostarlo. Un esempio sarebbe Aireplay-ng. Nella maggior parte dei casi, eseguiremo Airodump-ng prima di Aireplay-ng. In quel caso, il canale sarà impostato da Airodump-ng. Esploreremo entrambi gli strumenti più avanti in questo modulo.
Airmon-ng non fornisce alcuna conferma che la modalità monitor sia stata avviata sul canale specificato. Eseguire iw mostra che l'interfaccia in modalità monitor sta ascoltando sul canale e sulla frequenza desiderati.
kali@kali:~$ sudo iw dev wlan0mon info
Interface wlan0mon
ifindex 6
wdev 0x4
addr 00:13:a7:12:3c:5b
type monitor
wiphy 0
channel 3 (2422 MHz), width: 20 MHz (no HT), center1: 2422 MHz
txpower 20.00 dBm
Listato 6 - Verifica del canale corrente con iw
In alternativa, possiamo anche usare il comando iwconfig, ma poiché è deprecato, il suo output potrebbe non essere affidabile.
kali@kali:~$ sudo iwconfig wlan0mon
wlan0mon IEEE 802.11 Mode:Monitor Frequency:2.422 GHz Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Listato 7 - Verifica della frequenza/canale con iwconfig
Opzioni verbose e debug di Airmon-ng
Le opzioni verbose e debug di Airmon-ng producono informazioni dettagliate sul sistema e sulla scheda wireless installata. Queste informazioni sono utili per il debug.
L'opzione --verbose produce informazioni sulla release da lsb_release -a, informazioni sul kernel da uname -a, rilevamento di macchine virtuali e dettagli sulle interfacce collegate.
kali@kali:~$ sudo airmon-ng --verbose
No LSB modules are available.
Distributor ID: Kali
Description: Kali GNU/Linux Rolling
Release: 2019.3
Codename: kali-rolling
Linux kali 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-6kali1 (2019-07-22) x86_64 GNU/Linux
Detected VM using lspci
This appears to be a VMware Virtual Machine
If your system supports VT-d, it may be possible to use PCI devices
If your system does not support VT-d, you can only use USB wifi cards
K indicates driver is from 4.19.0-kali5-amd64
V indicates driver comes directly from the vendor, almost certainly a bad thing
S indicates driver comes from the staging tree, these drivers are meant for reference not actual use, BEWARE
? indicates we do not know where the driver comes from... report this
X[PHY]Interface Driver[Stack]-FirmwareRev Chipset Extended Info
K[phy0]wlan0 ath9k_htc[mac80211]-1.4 Qualcomm Atheros Communications AR9271 802.11n mode managed
Listato 8 - Uso di --verbose con Airmon-ng
Usando la legenda nell'output come riferimento, il modulo della nostra interfaccia è nella categoria "K" in quanto proviene dal kernel, a differenza di quello del vendor o di un albero staging. Qualsiasi modulo proveniente da qualcosa di diverso dal kernel del sistema potrebbe non funzionare correttamente con Aircrack-ng o altri strumenti di sicurezza Wi-Fi. L'output fornisce anche maggiori dettagli su driver e scheda. Extended_Info indica che la nostra interfaccia è ancora in modalità managed.
In confronto, l'output con --debug fornisce dettagli leggermente più approfonditi derivati da comandi di sistema:
kali@kali:~$ sudo airmon-ng --debug
/bin/sh -> /usr/bin/dash
SHELL is GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later (http://gnu.org/licenses/gpl.html)
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
No LSB modules are available.
Distributor ID: Kali
Description: Kali GNU/Linux Rolling
Release: 2019.3
Codename: kali-rolling
Linux kali 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-6kali1 (2019-07-22) x86_64 GNU/Linux
Detected VM using lspci
This appears to be a VMware Virtual Machine
If your system supports VT-d, it may be possible to use PCI devices
If your system does not support VT-d, you can only use USB wifi cards
K indicates driver is from 4.19.0-kali5-amd64
V indicates driver comes directly from the vendor, almost certainly a bad thing
S indicates driver comes from the staging tree, these drivers are meant for reference not actual use, BEWARE
? indicates we do not know where the driver comes from... report this
X[PHY]Interface Driver[Stack]-FirmwareRev Chipset Extended Info
getStack mac80211
getBus usb
getdriver() ath9k_htc
getchipset() Qualcomm Atheros Communications AR9271 802.11n
BUS = usb
BUSINFO = 0CF3:9271
DEVICEID =
getFrom() K
getFirmware 1.4
K[phy0]wlan0 ath9k_htc[mac80211]-1.4 Qualcomm Atheros Communications AR9271 802.11n mode managed
Listato 9 - Uso di debug con airmon-ng
6.1.3. Airmon-ng stop
Per disabilitare la modalità monitor, usiamo l'opzione stop seguita dal nome dell'interfaccia in modalità monitor.
kali@kali:~$ sudo airmon-ng stop wlan0mon
PHY Interface Driver Chipset
phy0 wlan0mon ath9k_htc Atheros Communications, Inc. AR9271 802.11n
(mac80211 station mode vif enabled on [phy0]wlan0)
(mac80211 monitor mode vif disabled for [phy0]wlan0mon)
Listato 10 - Uso dell'opzione stop con Airmon-ng
Si noti che il nome dell'interfaccia è la nostra interfaccia in modalità monitor e non l'interfaccia wireless originale.
Esercizi
Metti in funzione la tua scheda wireless nel sistema di attacco e usa Airmon-ng per:
- Terminare i network manager.
- Identificare la tua scheda, il relativo driver, lo stack wireless e la revisione del firmware.
- Abilitare la modalità monitor sulla tua scheda wireless.
- Disabilitare la modalità monitor.
6.2. Airodump-ng
Airodump-ng viene utilizzato per catturare frame 802.11 grezzi ed è particolarmente adatto per raccogliere Initialization Vector (IV) WEP o handshake WPA/WPA2, che useremo con Aircrack-ng o altri strumenti di cracking 802.11. Airodump-ng offre la possibilità di esportare file in vari formati. Questo ci permette di creare script personalizzati e facilita l'integrazione con altri strumenti, incluse le GUI. Ad esempio, con un ricevitore GPS collegato, Airodump-ng può correlare i dati di posizione con gli AP e le stazioni rilevati. Questi dati GPS possono poi essere importati in un database per fornire una rappresentazione grafica utilizzando mappe online.
6.2.1. Uso di Airodump-ng
Airodump-ng ha molte opzioni di filtraggio e cattura. Possiamo visualizzarle eseguendo airodump-ng senza parametri.
kali@kali:~$ sudo airodump-ng
Aircrack-ng 1.7 - (C) 2006-2022 Thomas d'Otreppe
https://www.aircrack-ng.org
usage: aircrack-ng [options] <input file(s)>
Common options:
-a <amode> : force attack mode (1/WEP, 2/WPA-PSK)
-e <essid> : target selection: network identifier
-b <bssid> : target selection: access point's MAC
-p <nbcpu> : # of CPU to use (default: all CPUs)
-q : enable quiet mode (no status output)
-C <macs> : merge the given APs to a virtual one
-l <file> : write key to file. Overwrites file.
Static WEP cracking options:
: same as --write
...
Listato 11 - Opzioni di Airodump-ng
Le opzioni che useremo più spesso sono il salvataggio su file, il filtraggio per BSSID e la cattura solo su un canale specifico.
| Option | Descrizione |
|---|---|
| -w prefix | Salva il dump di cattura nel nome file specificato |
| --bssid BSSID | Filtra Airodump-ng per catturare solo il BSSID specificato |
| -c channel(s) | Forza Airodump-ng a catturare solo il/i canale/i specificato/i |
Tabella 1 - Opzioni di Airodump-ng più comunemente usate
6.2.2. Sniffing con Airodump-ng
Con la nostra interfaccia wireless in modalità monitor, avviamo la nostra prima sessione di sniffing con airodump-ng, il nome dell'interfaccia e l'opzione -c per catturare il traffico solo sul canale 2.
Listato 12 - Comando Airodump su un canale fisso
Una volta eseguito il comando, inizia la nostra cattura di pacchetti.
CH 2 ][ Elapsed: 12 s ][ 2011-11-06 13:31 ][ WPA handshake: C8:BC:C8:FE:D9:65
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
C8:BC:C8:FE:D9:65 -23 87 579 69 1 2 54e. WPA2 CCMP PSK secnet
34:08:04:09:3D:38 -30 0 638 24 0 3 54e OPN wifu
00:18:E7:ED:E9:69 -84 10 104 0 0 3 54e. OPN dlink
BSSID STATION PWR Rate Lost Packets Probes
C8:BC:C8:FE:D9:65 0C:60:76:57:49:3F -69 0 - 1 0 35 secnet
34:08:04:09:3D:38 00:18:4D:1D:A8:1F -26 54 -54 0 31 wifu
30:46:9A:FE:79:B7 30:46:9A:FE:69:BE -73 0 - 1 0 1
Listato 13 - Output di Airodump-ng su un canale fisso
Campi di Airodump-ng
Airodump-ng presenta una grande quantità di informazioni mentre esegue la cattura. L'output è diviso in due sezioni separate. La parte superiore fornisce informazioni sugli AP rilevati insieme alla crittografia in uso, ai nomi delle reti, ecc. La parte inferiore fornisce informazioni sulle stazioni che inviano frame e sull'AP associato.
La riga superiore del display, a partire da sinistra, mostra il canale corrente, seguito dal tempo di sniffing trascorso, dalla data e ora correnti e, interessantemente, un'indicazione che è stato catturato un handshake WPA per l'AP con BSSID C8:BC:C8:FE:D9:65. Catturare un handshake WPA è il nostro obiettivo finale con questa utility.
La tabella seguente contiene le descrizioni di tutti i campi di Airodump-ng nella sezione superiore, dove vengono visualizzati gli AP.
| Campo | Descrizione |
|---|---|
| BSSID | L'indirizzo MAC dell'AP |
| PWR | Il livello del segnale riportato dalla scheda, che aumenterà man mano che ci avviciniamo all'AP o alla stazione |
| RXQ | Receive Quality misurata come percentuale di frame ricevuti con successo negli ultimi 10 secondi |
| Beacons | Numero di frame di annuncio inviati dall'AP |
| # Data | Numero di pacchetti dati catturati (se WEP, questo è il conteggio univoco degli IV), inclusi i pacchetti dati broadcast |
| #/s | Numero di pacchetti dati al secondo misurato negli ultimi 10 secondi |
| CH | Numero del canale ricavato dai frame beacon. Si noti che a volte vengono catturati frame da altri canali a causa della sovrapposizione dei canali |
| MB | Velocità massima supportata dall'AP. 11=802.11b, 22=802.11b+, fino a 54 è 802.11g e qualsiasi valore superiore è 802.11n o 802.11ac |
| ENC | Algoritmo di crittografia in uso. OPN=nessuna crittografia, "WEP?"=WEP o superiore (dati insufficienti per scegliere tra WEP e WPA/WPA2), WEP=WEP statico o dinamico, e WPA o WPA2 se è presente TKIP o CCMP. WPA3 e OWE richiedono entrambi CCMP |
| CIPHER | Il cipher rilevato: CCMP, WRAP, TKIP, WEP, WEP40 o WEP104 |
| AUTH | Il protocollo di autenticazione usato. Uno tra MGT (WPA/WPA2/WPA3 Enterprise), SKA (chiave condivisa WEP), PSK (chiave precondivisa WPA/WPA2/WPA3) o OPN (autenticazione aperta WEP) |
| ESSID | Il cosiddetto SSID, che può essere vuoto se l'SSID è nascosto |
Tabella 2 - Descrizioni delle colonne della sezione superiore di Airodump-ng
Nell'output inferiore delle stazioni, Airodump-ng presenta un elenco di dispositivi. A meno che non sia specificato nelle opzioni, qualsiasi stazione che invia frame viene elencata nella colonna STATION. Se le stazioni sono connesse a un AP, viene visualizzato il BSSID. In caso contrario, il campo mostrerà "(not associated)".
La tabella seguente contiene le descrizioni di tutti i campi di Airodump-ng nella sezione inferiore, dove vengono visualizzate tutte le stazioni, associate e non associate.
| Campo | Descrizione |
|---|---|
| BSSID | L'indirizzo MAC dell'AP |
| STATION | L'indirizzo MAC di ciascuna stazione associata |
| Rate | Velocità di ricezione della stazione, seguita dalla velocità di trasmissione |
| Lost | Numero di frame dati persi negli ultimi 10 secondi in base al numero di sequenza |
| Packets | Numero di pacchetti dati inviati dal client |
| Probes | Gli ESSID sondati dal client |
Tabella 3 - Descrizioni delle colonne della sezione inferiore di Airodump-ng
Evidenziamo rapidamente solo alcuni dei campi di queste due tabelle.
La Receive Quality (RXQ) è misurata su tutti i frame di gestione e dati. Ad esempio, supponiamo di avviare la cattura al 100% di RXQ. Poi la RXQ scende sotto il 90% anche se stiamo ancora catturando tutti i beacon inviati. Da questo possiamo dedurre che l'AP sta inviando frame a un client, ma non possiamo "sentire" il client o l'AP che invia dati al client. La soluzione è avvicinarsi fisicamente all'AP.
Si noti che la colonna RXQ verrà visualizzata solo quando siamo bloccati su un singolo canale. Non sarà visibile mentre stiamo saltando tra i canali.
Il campo Lost misura i frame dati persi provenienti dalla stazione. Per determinare il numero di frame persi, Airodump-ng misura il campo sequence di ogni frame non di controllo.
Esistono diverse possibili cause per i frame persi. Esaminiamone alcune ora.
Innanzitutto, non possiamo inviare dati e "ascoltare" la rete contemporaneamente. Ogni volta che inviamo dati, non possiamo "sentire" i frame trasmessi per quell'intervallo.
La nostra posizione fisica rispetto all'AP è molto importante. Se siamo troppo lontani, potremmo perdere frame perché il segnale è troppo debole. Interessantemente, possiamo anche perdere frame se il segnale è troppo forte. Questo accade quando siamo troppo vicini a un AP. Dobbiamo anche essere consapevoli di altri AP, forni a microonde, dispositivi Bluetooth e altri dispositivi che possono causare interferenze. Queste interferenze causeranno troppo rumore sul canale corrente. In scenari meno comuni, potremmo dover spostare il nostro dispositivo se l'AP utilizza Beamsteering (chiamato beamforming nell'emendamento 802.11ac), che dirige il fascio in una direzione specifica.
Successivamente, dovremo considerare i limiti della nostra scheda wireless. Se, ad esempio, non è in grado di decodificare certe modulazioni, potremmo avere problemi. Questo sarebbe il caso se usassimo una scheda wireless per la cattura di pacchetti che fosse 802.11n, mentre la rete wireless fosse 802.11ac. Avremo anche problemi se la nostra scheda wireless non è in grado di decodificare a causa del numero di stream. Ad esempio, l'Alfa AWUS036NHA è un dispositivo a 1 stream e non può decodificare trasmissioni superiori a 1 stream.
Infine, vale la pena menzionare che potremmo perdere frame perché una stazione che scansiona gli AP salterà su canali diversi.
Per ridurre al minimo il numero di frame persi, possiamo provare a cambiare la posizione fisica del nostro dispositivo, il tipo di antenna che stiamo usando, il canale, il data rate o il tasso di iniezione. Una o più di queste opzioni potrebbero rivelarsi utili.
6.2.3. Sniffing di precisione
Se ci troviamo in un'area con troppi altri AP, il display di Airodump-ng e i file di cattura diventeranno molto ingombri di dati indesiderati. Come parte della nostra ricognizione iniziale, vorremo determinare il BSSID dell'AP target e il suo canale in modo da poterci concentrare specificamente su di esso.
Per sniffare i dati di un AP specifico su un dato canale, aggiungiamo l'opzione --bssid e il BSSID al nostro comando airodump-ng. Inviamo i dati ai file cap1 con l'opzione -w, che verrà spiegata in una sezione successiva:
kali@kali:~$ sudo airodump-ng -c 3 --bssid 34:08:04:09:3D:38 -w cap1 wlan0mon
...
CH 3 ][ Elapsed: 4 mins ][ 2011-11-06 15:14
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
34:08:04:09:3D:38 -29 62 2369 381 1 3 54e OPN wifu
BSSID STATION PWR Rate Lost Packets Probes
34:08:04:09:3D:38 00:18:4D:1D:A8:1F -26 6 -48 0 399 wifu
Listato 14 - Airodump-ng focalizzato su un canale e BSSID
Come mostrato nell'output di Airodump-ng sopra, filtrare per un AP specifico può rendere il display molto più gestibile e manterrà i file di cattura a una dimensione ragionevole.
6.2.4. File di output di Airodump-ng
Per impostazione predefinita, eseguire airodump-ng con l'opzione -w, seguita da un prefisso del nome file, scrive l'output in diversi formati:
- PCAP, con estensione cap.
- CSV, con estensione csv.
- Kismet legacy CSV, con estensione kismet.csv.
- Kismet legacy NetXML, con estensione kismet.netxml.
- Log CSV, con estensione log.csv.
Vengono creati due file aggiuntivi con determinate opzioni:
- Coordinate GPS, con estensione gps quando l'opzione -g e un dispositivo GPS sono configurati. Maggiori dettagli su questa funzionalità in una sezione successiva.
- Initialization Vector (IVS), con estensione .ivs con l'opzione --ivs. In questo caso, verrà creato solo il file IVS. Questa opzione è utile solo per il cracking WEP.
I file non vengono mai sovrascritti; il nome file passato sulla riga di comando viene incrementato con un numero seguito dall'estensione del file. Ad esempio, quando si usa "wpa" come prefisso, i file sono inizialmente denominati wpa-01.cap, wpa-01.csv e così via. Eseguendo di nuovo lo stesso comando airodump-ng, i file sono denominati wpa-02.cap, wpa-02.csv e così via.
Per limitare quali formati di file generiamo, possiamo usare l'opzione --output-format seguita da un elenco separato da virgole di formati di file. Un esempio di comando è sudo airodump-ng --output-format csv,pcap wlan0mon.
Questi file di output rendono molto più facile lo scripting degli attacchi. Inoltre, esistono diversi strumenti che possono usare questi file per visualizzare le informazioni trovate da Airodump-ng. Alcuni degli strumenti che possono lavorare con questo input sono Fern WiFi cracker e WiFite 2, che sono entrambe GUI per Aircrack-ng; GISKismet, che mappa gli AP utilizzando Google Earth; e Airgraph-ng, che è uno strumento di grafici.
6.2.5. Modalità interattiva di Airodump-ng
Airodump-ng non è limitato ai parametri sulla riga di comando. Possiamo anche interagire con le informazioni visualizzate sullo schermo durante l'esecuzione. Airodump-ng riconosce le pressioni dei tasti in alto a destra.
Uno dei tasti più utili è space, che ci permette di congelare l'output quando notiamo qualcosa di utile sullo schermo. Solo la GUI è congelata e la cattura continua in background. Premendo di nuovo space lo schermo si aggiorna e la visualizzazione dei dati in tempo reale riprende.
La colorazione di AP e client è un'altra funzionalità utile. Premere Tab abilita e disabilita lo scorrimento nell'elenco degli AP. Quando lo scorrimento è abilitato possiamo spostarci su e giù con i tasti ↑ e ↓. Mentre scorriamo gli AP, potremmo notare che le stazioni associate sono evidenziate. Il tasto M cicla tra le opzioni di colore per un AP selezionato.
Il tasto A cicla tra le diverse opzioni di visualizzazione.
- AP e stazioni (predefinito)
- AP e stazioni più statistiche ACK (nota: alcuni driver wireless non forniscono frame di controllo allo user space)
- Solo AP
- Solo stazioni
Il tasto S cicla tra le diverse opzioni di ordinamento:
- Quantità di beacon
- Quantità di pacchetti dati
- Velocità dei pacchetti
- Canale
- Data rate massimo
- Crittografia
- Cipher
- Autenticazione
- ESSID
- Prima visualizzazione
- BSSID
- Livello di potenza
Il tasto I inverte l'ordinamento e D ripristina l'ordinamento predefinito (per livello di potenza).
6.2.6. Risoluzione dei problemi di Airodump-ng
Esaminiamo rapidamente alcuni modi per risolvere problemi comuni che potremmo incontrare usando Airodump-ng.
Nessun AP o client visualizzato
Quando nessun AP o client viene mostrato nell'output di Airodump-ng, dovremmo prima verificare che ci siano AP sul canale corrente. Successivamente, possiamo assicurarci che la nostra scheda funzioni in modalità managed. Se ancora non riusciamo a vedere AP o client, possiamo provare a scaricare il driver con rmmod e ricaricarlo con modprobe. Potrebbe essere necessario scaricare più moduli. Infine, possiamo controllare dmesg per errori.
Pochi o nessun dato catturato
Se durante la nostra sessione di sniffing vengono catturati pochi o nessun dato, possiamo iniziare assicurandoci di aver usato l'opzione -c o --channel per specificare un singolo canale. Se non lo facciamo, Airodump-ng salterà tra canali diversi. Potremmo anche considerare la nostra posizione fisica. Potremmo dover essere fisicamente più vicini (o più lontani) dall'AP per ottenere un segnale di qualità. Successivamente, possiamo verificare di aver avviato la nostra scheda wireless in modalità monitor con Airmon-ng. Infine, possiamo assicurarci che non ci sia un network manager che causa interferenze. Possiamo farlo eseguendo airmon-ng check.
Airodump-ng smette di catturare dopo un breve periodo di tempo
Se Airodump-ng smette di catturare dopo un breve periodo di tempo, la causa più comune è che un connection manager in esecuzione sul sistema rimuove la scheda wireless dalla modalità monitor.
Per rimediare, dovremo usare airmon-ng check kill prima di mettere la scheda in modalità monitor. Possiamo anche assicurarci che non ci siano processi interferenti in esecuzione sul sistema usando airmon-ng check.
Un'altra possibilità sono problemi di firmware. Il firmware, essendo un pezzo di codice compilato, può bloccarsi, il che interromperebbe il processo di cattura. Tali problemi saranno tipicamente registrati in dmesg.
SSID visualizzati come ""
A volte potremmo vedere "
Messaggio di errore "Fixed channel"
Se, ad esempio, impostiamo il canale al canale 6 con l'opzione -c, potremmo incontrare un messaggio di errore simile a quello riportato qui.
Listato 15 - Messaggio fixed channel
Quando riceviamo questo errore, sappiamo che qualche altro processo sta cambiando al canale 1 o che qualche processo sta scansionando i canali.
Dobbiamo eliminare la causa principale e riavviare Airodump-ng. Il problema è molto probabilmente il risultato di network manager e altri processi interferenti in esecuzione. Se questo è il caso, possiamo risolvere il problema terminando i network manager con airmon-ng check kill.
Questo messaggio di errore potrebbe anche significare che non possiamo usare questo canale (e Airodump-ng non è riuscito a impostare il canale). Ad esempio, se provassimo a impostare il canale al canale 40 con una scheda che supporta solo i canali da 1 a 11.
Nessun file di output
Abbiamo eseguito Airodump-ng e ora non riusciamo a trovare i file di output.
Innanzitutto, vorremo assicurarci di aver eseguito airodump-ng con l'opzione per creare file di output con -w o --write e il prefisso del nome file. Senza questa opzione, Airodump-ng non creerà file di output.
Per impostazione predefinita, i file di output vengono posizionati nella directory da cui viene eseguito Airodump-ng. Prima di avviare Airodump-ng, possiamo usare pwd per visualizzare la directory corrente. Prenderemo nota di questa directory in modo da potervi tornare in seguito.
Per inviare i file a una directory diversa, vorremo aggiungere il percorso completo al prefisso del nome file. Ad esempio, per inviare i file a /tmp useremo -w /tmp/
Esercizi
Configura il tuo AP di laboratorio senza crittografia e configura un client vittima wireless per connettersi alla rete wireless. Verifica i processi interferenti e terminali. Metti la tua scheda wireless in modalità monitor sul canale dell'AP e mentre la cattura è in esecuzione, genera del traffico in chiaro dal computer vittima.
- Cattura traffico non crittografato per il tuo AP specifico.
- In modalità interattiva, evidenzia l'AP e scegli un colore per esso e il relativo client.
- Identifica i diversi file creati da Airodump-ng.
- Identifica il traffico non crittografato usando Wireshark.
6.3. Aireplay-ng
Aireplay-ng è principalmente utile per generare traffico wireless. In seguito, lo useremo con Aircrack-ng per crackare chiavi WEP e passphrase WPA-PSK. Aireplay-ng supporta anche vari attacchi come la deautenticazione (che ci aiuterà a catturare un handshake WPA a 4 vie), l'autenticazione falsa, il replay interattivo di pacchetti e altro ancora.
Aireplay-ng supporta i seguenti attacchi. Sono elencati insieme al numero corrispondente dalla documentazione dello strumento.
| Attack # | Attack Name |
|---|---|
| 0 | Deauthentication |
| 1 | Fake Authentication |
| 2 | Interactive Packet Replay |
| 3 | ARP Request Replay Attack |
| 4 | KoreK ChopChop Attack |
| 5 | Fragmentation Attack |
| 6 | Café-Latte Attack |
| 7 | Client-Oriented Fragmentation Attack |
| 8 | WPA Migration Mode Attack |
| 9 | Injection Test |
La maggior parte di queste opzioni sono attacchi specifici per reti WEP. Ci concentreremo sulle opzioni di Aireplay-ng rilevanti per gli attacchi WPA, 0 per la deautenticazione e 9 per il test di iniezione.
6.3.1. Opzioni di replay di Aireplay-ng
Quando eseguiamo il replay (iniezione) di pacchetti, abbiamo diverse opzioni che possiamo applicare. Non ogni opzione è rilevante per ogni attacco. Per decidere quali opzioni usare, potremmo voler consultare la documentazione specifica dell'attacco, che fornisce esempi di opzioni rilevanti. La tabella seguente è un elenco completo di tutte le opzioni disponibili.
| Option | Descrizione |
|---|---|
| -x nbpps | Numero di pacchetti al secondo |
| -p fctrl | Imposta la frame control word (hex) |
| -a bssid | Indirizzo MAC dell'access point |
| -c dmac | Indirizzo MAC di destinazione |
| -h smac | Indirizzo MAC sorgente |
| -e essid | SSID dell'AP target |
| -j | attacco arpreplay: inietta pacchetti FromDS |
| -g value | Modifica la dimensione del ring buffer (predefinito: 8) |
| -k IP | IP di destinazione nei frammenti |
| -l IP | IP sorgente nei frammenti |
| -o npckts | Numero di pacchetti per burst (-1) |
| -q sec | Secondi tra i keep-alive (-1) |
| -y prga | Keystream per l'autenticazione a chiave condivisa |
| -B | Test del bit rate |
| -D | Disabilita il rilevamento dell'AP |
| -F | Sceglie il primo pacchetto corrispondente |
| -R | Disabilita l'uso di /dev/rtc |
6.3.2. Test di iniezione di Aireplay-ng
Prima di inviare frame di deautenticazione, dobbiamo determinare se la nostra scheda può iniettare con successo frame wireless nel nostro AP target. Il test di iniezione misura i tempi di risposta ping all'AP. Possiamo ottenere una buona indicazione della qualità del collegamento guardando la percentuale di risposte ricevute. Inoltre, se abbiamo due schede wireless collegate, il test può anche aiutarci a determinare quali attacchi di iniezione specifici avranno successo.
Il test di iniezione di base elenca gli AP nell'area che rispondono alle probe broadcast. Per ciascuno degli AP trovati, Aireplay-ng esegue un test di 30 frame per misurare la qualità della connessione. Questo ci dirà se la nostra scheda può inviare e ricevere con successo una risposta al target del test.
Test di iniezione di base
Prima di eseguire un test di iniezione di base, è importante impostare prima la scheda sul canale desiderato. Per questo test, il nostro target è sul canale 3. Possiamo impostare il canale con airmon-ng (o iw). Poi eseguiamo Aireplay-ng con l'opzione -9 e wlan0mon per la nostra interfaccia wireless
kali@kali:~$ sudo airmon-ng start wlan0 3
PHY Interface Driver Chipset
phy0 wlan0 ath9k_htc Atheros Communications, Inc. AR9271 802.11n
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)
kali@kali:~$ sudo aireplay-ng -9 wlan0mon
12:02:10 Trying broadcast probe requests...
12:02:10 Injection is working!
12:02:11 Found 2 APs
12:02:12 34:08:04:09:3D:38 - channel: 3 - 'wifu'
12:02:13 Ping (min/avg/max): 1.455ms/4.163ms/12.006ms Power: -37.63
12:02:13 30/30: 100%
12:02:13 C8:BC:C8:FE:D9:65 - channel: 2 - 'secnet'
12:02:13 Ping (min/avg/max): 1.637ms/4.516ms/18.474ms Power: -28.90
12:02:13 30/30: 100%
Listato 16 - Test di iniezione di Aireplay-ng
Prendiamoci un momento per analizzare parte dell'output del nostro test di iniezione.
Il nostro comando Aireplay-ng conferma che possiamo iniettare nell'AP wifu sul canale 3 con un tasso di successo del 100%. Per inciso, è comune che la nostra iniezione si riversi su altri canali, come dimostrato da Aireplay-ng che riporta output per l'AP secnet sul canale 2.
Test di iniezione per un ESSID specifico
Eseguiamo un test di iniezione contro un ESSID specifico con l'opzione -e e l'ESSID e l'opzione -a e il BSSID.
kali@kali:~$ sudo aireplay-ng -9 -e wifu -a 34:08:04:09:3D:38 wlan0mon
12:26:14 Waiting for beacon frame (BSSID: 34:08:04:09:3D:38) on channel 3
12:26:14 Trying broadcast probe requests...
12:26:14 Injection is working!
12:26:16 Found 1 AP
12:26:16 Trying directed probe requests...
12:26:16 34:08:04:09:3D:38 - channel: 3 - 'wifu'
12:26:16 Ping (min/avg/max): 1.968ms/3.916ms/11.581ms Power: -35.73
12:26:16 30/30: 100%
Listato 17 - Test di iniezione di Aireplay-ng focalizzato su un ESSID/BSSID
I risultati indicano che la scheda wireless può iniettare con successo e comunicare con l'AP target. Dobbiamo conoscere l'SSID per eseguire questo test.
Aireplay-ng verifica che il BSSID sia corretto. Nei casi in cui il segnale è troppo basso o troppo alto, il test fallirà. Per fidarsi ciecamente dei valori dalla riga di comando, possiamo aggiungere il parametro -D al comando per disabilitare il rilevamento dell'AP.
Test di iniezione card-to-card (Attack)
Il test di iniezione card-to-card è un controllo molto più robusto. Verificherà anche se la nostra scheda può implementare vari attacchi di Aireplay-ng. Trasmettere un frame usando Aireplay-ng o qualsiasi altro strumento non garantisce che venga effettivamente inviato. A volte i frame vengono modificati dal firmware o dal driver della scheda prima di essere inviati. Eseguire un test di iniezione card-to-card garantisce che i frame vengano effettivamente inviati correttamente.
Eseguiamo il comando con l'opzione -i seguita dalla nostra interfaccia di cattura aggiuntiva.
kali@kali:~$ sudo aireplay-ng -9 -i wlan1mon wlan0mon
12:50:57 Trying broadcast probe requests...
12:50:57 Injection is working!
12:50:59 Found 2 APs
12:50:59 Trying directed probe requests...
12:50:59 34:08:04:09:3D:38 - channel: 3 - 'wifu'
12:51:00 Ping (min/avg/max): 1.735ms/4.619ms/12.689ms Power: -47.33
12:51:00 27/30: 90%
12:51:01 C8:BC:C8:FE:D9:65 - channel: 2 - 'secnet'
12:51:01 Ping (min/avg/max): 2.943ms/17.900ms/49.663ms Power: -117.10
12:51:01 29/30: 96%
12:51:01 Trying card-to-card injection...
12:51:01 Attack -0: OK
12:51:02 Attack -1 (open): OK
12:51:02 Attack -1 (psk): OK
12:51:02 Attack -2/-3/-4/-6: OK
12:51:02 Attack -5/-7: OK
Listato 18 - Test di iniezione card-to-card di Aireplay-ng
Simile al test di iniezione con una singola scheda, questo test inizia valutando i risultati degli AP rilevati. Nella seconda parte del test, l'output mostra che la nostra scheda di attacco eseguirà con successo tutti i tipi di attacco.
Se riceviamo un messaggio "Fail" per l'attacco 5, la scheda potrebbe comunque funzionare se l'indirizzo MAC di iniezione corrisponde all'indirizzo MAC corrente della scheda. Con alcuni driver, fallirà se non sono uguali.
6.3.3. Risoluzione dei problemi di Aireplay-ng
Esaminiamo alcuni suggerimenti per la risoluzione dei problemi. I seguenti suggerimenti si applicano a tutte le modalità di Aireplay-ng.
Aireplay-ng non inietta frame
Vorremo assicurarci di usare l'interfaccia in modalità monitor corretta. Eseguire iw dev
Aireplay-ng si blocca senza output
Se inseriamo il comando e sembra bloccarsi senza output, questo di solito è perché la nostra scheda wireless è su un numero di canale diverso dall'AP.
Questo potrebbe anche essere causato da un'altra istanza di Aireplay-ng in esecuzione in background. Se le opzioni sono in conflitto, il secondo comando potrebbe bloccarsi.
interfaceXmon is on channel Y, but the AP uses channel Z
Esaminiamo un esempio di questo messaggio. Potremmo vedere qualcosa come "wlan0mon is on channel 1, but the AP uses channel 6". Questo ci dice che qualcosa sta causando il salto di canale della scheda wireless. La causa più probabile è che abbiamo avviato la modalità monitor sul canale sbagliato. Potrebbe anche essere perché non abbiamo terminato i processi interferenti con airmon-ng check kill.
Suggerimenti generali per la risoluzione dei problemi di Aireplay-ng
Ci sono alcune cose che potremmo provare quando risolviamo problemi in generale.
Per iniziare, possiamo cercare messaggi di deautenticazione o disassociazione durante l'iniezione. Questi potrebbero indicare che non siamo associati all'AP. Aireplay-ng tipicamente lo indica, ma possiamo anche osservarlo usando il comando tcpdump tcpdump -n -e -s0 -vvv -i
Possiamo anche assicurarci che il driver della scheda wireless sia correttamente patchato e installato.
È importante ricordare che la posizione fisica può fare la differenza. Vorremo assicurarci di essere fisicamente abbastanza vicini all'AP (ma non troppo vicini). Possiamo confermare di essere in grado di comunicare con l'AP specifico eseguendo il test di iniezione.
Potremmo anche voler verificare che la nostra scheda sia in modalità monitor. Inoltre, la scheda deve essere configurata sullo stesso canale dell'AP. Possiamo usare iw dev wlan0mon info per confermarlo.
Esercizio
Accendi il tuo AP di laboratorio. Assicurati che la tua scheda wireless sia in modalità monitor sullo stesso canale del tuo AP.
Usa Aireplay-ng per testare la tua scheda per le capacità di iniezione contro il tuo AP.
6.4. Aircrack-ng
L'ultimo strumento che esamineremo in questo modulo è Aircrack-ng. Può crackare reti WEP e WPA/WPA2 che usano chiavi precondivise o PMKID.
Aircrack-ng è considerato un attacco offline poiché lavora con catture di pacchetti e non richiede interazione con alcun dispositivo Wi-Fi. Inizieremo con il benchmarking, che ci aiuta a comprendere le capacità di prestazione del nostro sistema di cracking.
Warning
Aircrack-ng è intensivo per la CPU e utilizzerà completamente tutte le CPU. I laptop tipicamente non sono progettati per un carico CPU costante per lunghi periodi di tempo. Questo può aumentare significativamente la temperatura della CPU. Se il sistema di raffreddamento del laptop è inadeguato, la CPU verrà limitata, il che ridurrà le prestazioni. A volte, il sistema di raffreddamento non riesce nemmeno a gestire CPU limitate e la CPU potrebbe spegnersi improvvisamente per proteggere se stessa e gli altri componenti dai danni. Aggiungere un pad di raffreddamento attivo potrebbe aiutare. Possiamo anche monitorare le temperature. In Linux lo faremo con il comando lm-sensors.
6.4.1. Benchmark di Aircrack-ng
Aircrack-ng ha una modalità benchmark per testare le prestazioni della CPU. Eseguiamo aircack-ng -S. Dopo circa 15 secondi otterremo quanto segue.
Listato 19 - Benchmark su tutte le CPU
Questo breve test stima che la nostra CPU possa crackare circa 11117.918 passphrase al secondo. Poiché Aircrack utilizza completamente la CPU, la velocità può diminuire significativamente se stiamo eseguendo altre attività impegnative sul sistema contemporaneamente.
Esercizio
Usa Aircrack-ng per visualizzare le informazioni della tua CPU, seguito da un benchmark. Osserva come l'uso di numeri diversi di core influisce sulla velocità di cracking.
6.5. Airdecap-ng
Airdecap-ng è utile dopo aver recuperato con successo la chiave di una rete wireless. Possiamo usarlo per decrittare file di cattura WEP, WPA PSK o WPA2 PSK. Lo useremo per rimuovere le intestazioni wireless da una cattura wireless non crittografata.
6.5.1. Rimozione delle intestazioni wireless
I file di cattura wireless contengono molti frame che non ci interessano. Lo mostriamo nella Figura 1 qui sotto. Il file di cattura qui proviene da una rete non crittografata e possiamo vedere tutto il traffico di rete tra altri frame wireless.
Figura 1: File di cattura di rete aperta con intestazioni 802.11
Una funzionalità di Airdecap-ng è che possiamo usarlo per rimuovere le intestazioni wireless dai file di cattura non crittografati. Useremo l'opzione -b e imposteremo l'indirizzo MAC dell'access point da mantenere. Questo filtrerà tutti gli AP aggiuntivi dal nostro file di cattura.
kali@kali:~$ sudo airdecap-ng -b 34:08:04:09:3D:38 opennet-01.cap
Total number of stations seen 0
Total number of packets read 307
Total number of WEP data packets 0
Total number of WPA data packets 0
Number of plaintext data packets 0
Number of decrypted WEP packets 0
Number of corrupted WEP packets 0
Number of decrypted WPA packets 0
Number of bad TKIP (WPA) packets 0
Number of bad CCMP (WPA) packets 0
Listato 20 - Airdecap-ng rimuove le intestazioni wireless
Esaminando l'output, possiamo vedere che dei 307 pacchetti presenti nel file di cattura, solo 95 di essi erano effettivamente pacchetti dati collegati a quel BSSID. Airdecap-ng ha salvato i pacchetti dati collegati a 34:08:04:09:3D:38 in un nuovo file di cattura, con -dec, per decrypted, aggiunto al nome del file originale. Ora abbiamo un nuovo file denominato opennet-01-dec.cap.
La Figura 2 mostra il nostro file di cattura ripulito in Wireshark con solo i dati trasferiti attraverso la rete desiderata.
Figura 2: File di cattura di rete aperta senza intestazioni 802.11
Esercizio
Configura un AP non crittografato (rete aperta) e poi avvia una cattura di pacchetti usando Airodump-ng sullo stesso canale e salva il traffico. Collega un dispositivo e naviga sul web per un po'. Potresti voler provare http://example.com. Ferma la cattura.
Usa Airdecap-ng per rimuovere le intestazioni wireless.
6.6. Airgraph-ng
Airgraph-ng è uno script Python che può essere usato per creare grafici di reti wireless utilizzando i file CSV generati da Airodump-ng.
I file CSV di Airodump-ng contengono le relazioni tra client wireless e AP e l'elenco delle reti sondate. Possono essere passati ad Airgraph-ng per creare due tipi di grafici, un grafico delle relazioni Client-AP e un grafico delle probe dei client.
6.6.1. Grafico delle relazioni Client-AP
Il tipo di grafico Clients to AP Relationship (CAPR) visualizza le relazioni tra client e AP. Poiché il suo focus è più sui client che sugli AP, non disegnerà un AP che non ha client. Airgraph-ng assegna colori agli access point a seconda del tipo di crittografia fornita. verde per WPA, giallo per WEP, rosso per Open e nero per sconosciuto.
Eseguiamo Airgraph-ng con l'opzione -o per l'output su un nome file, l'opzione -i per l'input di un file .csv di Airodump-ng e -g per definire un grafico CAPR.
kali@kali:~$ mkdir support
kali@kali:~$ cd support
kali@kali:~$ wget http://standards-oui.ieee.org/oui.txt
kali@kali:~$ cd ..
kali@kali:~$ airgraph-ng -o Picture1_png -i dump-01.csv -g CAPR
La Figura 3 mostra un grafico CAPR generato dopo due ore di sniffing del traffico con Airodump-ng:
Figura 3: Un grafico CAPR
6.6.2. Grafico delle probe dei client
Il Client Probe Graph (CPG) visualizza le relazioni tra client wireless e reti sondate. Per creare questo grafico con il nostro file .csv di Airodump-ng, useremo l'opzione -g CPG.
La Figura 4 mostra il grafico risultante.
Figura 4: Un grafico CPG
Esercizio
Esegui Airodump-ng per alcuni minuti e salva solo il file CSV. Crea entrambi i tipi di grafici (CAPR e CPG) con Airgraph-ng.
6.7. Conclusione
In questo modulo abbiamo coperto alcune delle basi per gli strumenti Aircrack-ng più usati.
Siamo partiti da Airmon-ng per abilitare e disabilitare la modalità monitor sulle schede wireless. Abbiamo proseguito con Airodump-ng per visualizzare informazioni sui dispositivi Wi-Fi nell'aria, catturare frame wireless e produrre output in diversi file. Aireplay-ng viene usato per eseguire il replay di frame, attaccare dispositivi e testare le capacità di iniezione della scheda wireless. Abbiamo esaminato Aircrack-ng, che viene usato per crackare reti WEP e WPA1/2 con chiave precondivisa e per eseguire il benchmark del nostro sistema. Abbiamo anche usato Airdecap-ng per decrittare e filtrare catture di pacchetti Wi-Fi. Infine, abbiamo coperto Airgraph-ng per mappare le relazioni tra AP e client.



