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: by niccolo
