doc:appunti:linux:sa:wifi_wep_crack
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
doc:appunti:linux:sa:wifi_wep_crack [2009/08/19 00:26] – created niccolo | doc:appunti:linux:sa:wifi_wep_crack [2009/08/19 15:55] (current) – niccolo | ||
---|---|---|---|
Line 15: | Line 15: | ||
Pare - per fortuna - che i moduli kernel per EeePC forniti dal pacchetto **'' | Pare - per fortuna - che i moduli kernel per EeePC forniti dal pacchetto **'' | ||
- | ===== Attivare un' | + | ===== Interfaccia |
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' | 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' | ||
Line 27: | Line 27: | ||
</ | </ | ||
- | 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, | + | Come si vede la prima azione è di chiudere il networkmanager (in questo caso quello di KDE), che altrimenti si ostina a gestire il WiFi, fare scanning degli AP disponibili, |
Se invece vogliamo usare Kismet la procedura iniziale è leggermente diversa perché Kismet provvede autonomamente a creare un' | Se invece vogliamo usare Kismet la procedura iniziale è leggermente diversa perché Kismet provvede autonomamente a creare un' | ||
Line 42: | Line 42: | ||
source=madwifi_ab, | source=madwifi_ab, | ||
</ | </ | ||
+ | |||
+ | Al termine delle operazioni di scanning, se volgiamo creare nuovamente l' | ||
+ | |||
+ | < | ||
+ | wlanconfig ath0 create wlandev wifi0 | ||
+ | iwconfig ath0 mode managed | ||
+ | </ | ||
+ | |||
+ | ===== Cattura del traffico criptato ===== | ||
+ | |||
+ | A questo punto si inizia l' | ||
+ | |||
+ | < | ||
+ | airodump-ng -w wifidump kis0 | ||
+ | </ | ||
+ | |||
+ | In un' | ||
+ | |||
+ | < | ||
+ | airdecap-ng -b 00: | ||
+ | Total number of packets read 22708 | ||
+ | Total number of WEP data packets | ||
+ | Total number of WPA data packets | ||
+ | Number of plaintext data packets | ||
+ | Number of decrypted WEP packets | ||
+ | Number of corrupted WEP packets | ||
+ | Number of decrypted WPA packets | ||
+ | </ | ||
+ | |||
+ | Con il parametro **-b** abbiamo filtrato solo il traffico proveniente dall' | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Infatti il tentativo di forzatura fallisce: | ||
+ | |||
+ | < | ||
+ | aircrack-ng -a wep -n 128 -b 00: | ||
+ | </ | ||
+ | |||
+ | È necessario ricorrere a un trucco: bisogna inviare dei falsi pacchetti ARP request, ai quali l' | ||
+ | |||
+ | < | ||
+ | wesside-ng -v 00: | ||
+ | </ | ||
+ | |||
+ | 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 '' | ||
+ | |||
+ | < | ||
+ | makeivs-ng -b 00: | ||
+ | aircrack-ng -a wep -n 128 -b 00: | ||
+ | </ | ||
+ | |||
+ | Il comando '' | ||
+ | |||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | ===== Come è finita ===== | ||
+ | |||
+ | Dopo tre giorni di tentativi infruttuosi, | ||
+ | |||
+ | La cosa che mi ha lasciato di sasso è che la password (128 bit) erano 13 semplici cifre, che '' | ||
+ | |||
+ | Per verificare la correttezza del mio operato ho controllato che i pacchetti WEP fossero davvero criptati con tale chiave, suggerendo ad aircrack-ng gli ultimi 12 caratteri della stessa (tutti tranne il primo!): | ||
+ | |||
+ | < | ||
+ | aircrack-ng -b 00: | ||
+ | </ | ||
+ | |||
+ | In questo caso '' | ||
+ | |||
+ | In conclusione - contrariamente a quanto si legge - craccare una chiave WEP non è lavoro da compiere in modo estemporaneo, | ||
+ | |||
+ | ===== Mappa wardriving ===== | ||
+ | |||
+ | Alla ricerca di un access point libero abbiamo sfruttato anche **le capacità di Kismet unite ad un GPS**. | ||
+ | |||
+ | Dopo aver configurato **'' | ||
+ | |||
+ | < | ||
+ | gps=true | ||
+ | gpshost=localhost: | ||
+ | </ | ||
+ | |||
+ | Avviamo Kismet e partiamo per un giro di wardriving. Al rientro controlliamo il file di log creato da Kismet, ci dovrebbero essere dei file in **''/ | ||
+ | |||
+ | Con un po' di Python o Perl estraiamo dal .csv l' | ||
+ | |||
+ | Poi lanciamo il comando **'' | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/sh | ||
+ | log_file="/ | ||
+ | center=" | ||
+ | scale=" | ||
+ | MAC_LIST="" | ||
+ | for mac in $(cat wifi-open); do | ||
+ | if [ -z " | ||
+ | MAC_LIST=" | ||
+ | else | ||
+ | MAC_LIST=" | ||
+ | fi | ||
+ | done | ||
+ | gpsmap \ | ||
+ | $center $scale \ | ||
+ | --draw-track --draw-range --feather-range \ | ||
+ | --filter $MAC_LIST --invert-filter \ | ||
+ | -l ssid \ | ||
+ | $log_file | ||
+ | </ |
doc/appunti/linux/sa/wifi_wep_crack.1250634417.txt.gz · Last modified: 2009/08/19 00:26 by niccolo