User Tools

Site Tools


doc:appunti:linux:sa:wifi_wep_crack

This is an old revision of the document!


Craccare la chiave WEP di una WiFi

Appunti di un tentativo (fallito) di craccare una connessione WiFi protetta da chiave WEP.

La teoria dice che la chiave WEP è craccabile facilmente, nel senso che non è necessario l'attacco a forza bruta, quindi anche password difficili vengono individuate in poco tempo. Ecco il resoconto di un caso reale.

Vacanze estive in Croazia, appartamento sul mare, netbook Asus EeePC 900, due canali WiFi comodamente agganciabili dal salotto, semplice protezione WEP. Poiché nelle vicinanze non esistono Internet point, decido di tentare il crack.

Di quel poco che ho studiato mi ricordo che l'attacco si basa sullo sniffare una quantità sufficiente di traffico criptato e su quello eseguire uno speciale algoritmo di crittoanalisi. Il software aircrack dovrebbe provvedere tutto il necessario.

Installato i pacchetti Debian aircrack-ng e kismet, quest'ultimo consente di vedere in tempo reale il traffico WiFi captato.

Moduli kernel

Pare - per fortuna - che i moduli kernel per EeePC forniti dal pacchetto madwifi-modules-2.6.26-2-686 (moduli speciali compilati per EeePC, disponibili su eeepc.debian.net) forniscano il supporto alla modalità monitor e al packet injection per il chip WiFI Atheros contenuto nell'Asus.

Interfaccia in modo monitor

Il chip Atheros viene visto dal kernel come interfaccia wifi0, su questa possono essere attivate una o più VAP (access point o stazioni virtuali). Al normale avvio dell'Asus troviamo attiva l'interfaccia ath0, configurata in modo managed (detto anche modo station).

Per attivare un'interfaccia in modo monitor (che consenta lo sniffing del traffico WiFi) diamo come root i seguenti comandi:

killall knetworkmanager
wlanconfig ath0 destroy
airmon-ng start wifi0

Come si vede la prima azione è di chiudere il networkmanager (io uso quello di KDE), che altrimenti si ostina a gestire il WiFi, fare scanning degli AP disponibili, ecc. Poi eliminiamo la normale interfaccia ath0 che dice possa dare fastidio durante lo scanning. Infine con il comando airmon-ng attiviamo una nuova interfaccia ath1 in modalità monitor.

Se invece vogliamo usare Kismet la procedura iniziale è leggermente diversa perché Kismet provvede autonomamente a creare un'interfaccia monitor, chiamandola kis0:

killall knetworkmanager
wlanconfig ath0 destroy
kismet

Nel file di configurazione /etc/kismet/kismet.conf abbiamo messo:

source=madwifi_ab,wifi0,wifi0

Cattura del traffico criptato

A questo punto si inizia l'analisi del traffico WiFi con il programma airodump-ng. Utilizzare l'interfaccia ath1 oppure kis0, a seconda del caso:

airodump-ng -w wifidump kis0

In un'altra console ogni tanto si verifica quanto traffico WiFi è stato catturato, in particolare interessa il numero di pacchetti WEP:

airdecap-ng -b 00:41:14:5F:43:12 wifidump-01.cap
Total number of packets read         22708
Total number of WEP data packets      1635
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

Con il parametro -b abbiamo filtrato solo il traffico proveniente dall'access point che ci interessa.

Il risultato di soli 1635 pacchetti in una intera notte è estremamente deludente: servono tra i 50000 e i 100000 pacchetti criptati prima di tentare la forzatura della chiave WEP. Il problema è che l'access point non aveva client collegati che facessero traffico.

Infatti il tentativo di forzatura fallisce:

aircrack-ng -a wep -n 128 -b 00:41:14:5F:43:12 wifidump-01.cap

È necessario ricorrere a un trucco: bisogna inviare dei falsi pacchetti ARP request, ai quali l'access point risponderà con altrettanti pacchetti ARP reply. Sfrutteremo questo sistema per generare traffico sufficiente per condurre l'attacco. Fermiamo il programma airodump-ng e lanciamo invece wesside-ng:

wesside-ng -v 00:41:14:5F:43:12 -i kis0

In questo modo siamo riusciti ad ottenere quasi 50000 pacchetti WEP in circa 20 ore di attacco. Purtroppo anche con 50000 pacchetti il tentativo di crack è fallito!

Come dovrebbe funzionare

Per vedere come avviene il crack, generiamo un falso dump di pacchetti WEP ed eseguiamo aircrack-ng su di esso:

makeivs-ng -b 00:41:14:5F:43:12 -w wififakedump.ivs -k 011ab5634e357cbaca9a4b3b2b5 -c 50000
aircrack-ng -a wep -n 128 -b 00:41:14:5F:43:12 wififakedump.ivs

Il comando makeivs-ng genera pacchetti WiFi contenenti gli IV (initialization vector) utili al crack. dagli esperimenti fatti il crack funziona se si hanno oltre 50000 pacchetti IV.

Se si hanno a disposizione diversi file .cap è possibile estrarre tutti i pacchetti contenenti gli IV e concatenare i file in uno solo:

ivstools --convert file.cap file.ivs
ivstools --merge file*.ivs singlefile.ivs
doc/appunti/linux/sa/wifi_wep_crack.1250636629.txt.gz · Last modified: 2009/08/19 01:03 by niccolo