Oggi vediamo qualcosa di estremamente pratico… ed estremamente teorico 🙂
WPS. Cos’è?
Il Wi-fi Protected Setup (WPS) è uno standard creato dalla WiFi Alliance che permette di autenticare un dispositivo Wi-Fi con un router senza dover inserire la lunga (si spera) chiave di autenticazione WPA o WPA2, basterà così essere a conoscenza del PIN del WPS per potersi autenticare col router.
Il PIN è composto da otto cifre numeriche (una password da otto cifre numeriche ha solo 100 milioni di combinazioni possibili) e, come se non bastasse, quelli della WiFi Alliance hanno facilitato ancora di più le cose ad un potenziale attaccante! Chiedendo l’autenticazione con un PIN sbagliato il router manderà una risposta contenente delle informazioni che indicano se la prima parte del PIN, i primi quattro numeri, è corretta o meno e, ancora, l’ultimo numero del PIN è un checksum dei restanti numeri. Sono sicuro che quelli della WiFi Alliance non abbiano intenzionalmente voluto esporci a questo rischio di sicurezza ma diamine, tutto questo sembra essere creato apposta per la nostra insicurezza!
Di male in peggio!
A rendere le cose ancora più insicure (di questo non ero a conoscenza fino alla mia documentazione pre-scrittura) ci pensano i costruttori dei router: disattivando il WPS dalle impostazioni del proprio router (se possibile), questo non viene davvero disattivato ma è ancora possibile autenticarsi tramite PIN. Molti router inoltre non permettono la modifica del PIN il che porta ad un rischio davvero enorme: potete cambiare la vostra chiave e la vostra SSID quanto volete, un hacker in possesso del vostro PIN e del vostro BSSIDpotrà facilmente trovare la vostra nuova chiave usando sempre lo stesso PIN. Pochi router (giusto per aggiungere un altro errore alla catastrofe) bloccano un device che abbia effettuato troppi tentativi scorretti, il che porrebbe un gran freno – anche se non troppo – all’attacco brute-force.
Reaver. Come funziona?
Reaver è un “semplice” brute-forcer, ovvero effettua un attacco brute-force del PIN del vostro router. Vista la struttura di questo sistema di autenticazione (le risposte in caso di PIN sbagliato e l’ultima cifra che è un checksum delle altre) l’attacco procede in una maniera davvero intelligente: si effettua un attacco brute-force sulle prime quattro cifre con le prossime tre casuali e l’ultima che è il checksum finché non si riceve una risposta che indichi la correttezza delle prime quattro cifre, dopodiché si effettua un brute-force sulle prossime tre cifre e si trova l’ultima cifra calcolando il checksum delle altre cifre.
Anzichè fare un brute-force diretto sulle otto cifre che impiegherebbe molto più tempo visto le 100 milioni di possibili combinazioni (non stiamo parlando di un brute-force rapido, nel mio test ho impegato circa 4/5 secondi per tentativo!) facciamo un brute-force sulle prime quattro cifre (massimo 10.000 tentativi) e poi un secondo brute-force sulle prossime tre cifre calcolandoci di volta in volta l’ultimo numero (massimo 1.000 tentativi) e riduciamo il brute-force a soli 11.000 tentativi. Reaver inoltre permette anche la ripresa dell’attacco dopo interruzione (Ctrl-C per interrompere, lanciando poi reaver contro lo stesso BSSID verrà chiesto se continuare da dove ci si era interrotti).
Basta, voglio provare!
Per effettuare il test ho usato il MIO router (non quello dei miei vicini, per quanto siano bastardi, perchè non voglio rischiare denunce penali solo per aver giochicchiato, vi ricordo che fare questi test su router non propri è un reato da codice penale, con pene abbastanza severe tra l’altro), la mia backtrack in cui tutti i tools necessari sono installati di default (in caso non li abbiate o non stiate usando la backtrack dovete installare la suite aircrack-ng e reaver) e una scheda WiFi che supporti la monitor-mode. Aggiornate i tools (se avete la backtrack vi cosiglio questo comodissimo script in python) e possiamo cominciare.
Prima di cominciare vi prego di adottare la filosofia hacker: leggete e cercate di capire quello che state per fare (è tutto molto semplice in verità), leggete i comandi prima di lanciarli, documentatevi e leggete gli output, cambiate quello che non vi piace… Insomma, smanettate 🙂
Prima cosa dobbiamo impostare la nostra scheda wireless nella monitor-mode (per trovare il nome della vostra scheda usate iwconfig). Noi lo faremo con airmon-ng:
# airmon-ng start
Nel comando di prima <dev> rappresenta la vostra scheda WiFi, es. wlan0. Ok, leggiamo l’output e annotiamoci eventuali processi che potrebbero dare problemi (se non ne abbiamo bisogno possiamo terminarli subito per sicurezza).
Ora dobbiamo trovare il BSSID della rete sulla quale vogliamo effettuare il test. Lanciamo airodump-ng:
# airodump-ng
Nel comando <monitor-dev> è la vostra scheda in monitor mode (io avevo mon0), il nome lo prendiamo dall’output del comando precedente. Comparirà una lista di reti, quando individuate la VOSTRA potete terminare il programma con Ctrl+C. Una piccola nota: cercate di avere una buona ricezione del segnale, io durante il mio test avevo -65 nella colonna PWR, diciamo che sotto al -80/-85 potrebbe dare problemi (errori, interruzioni, ecc.).
Ora abbiamo la nostra scheda impostata sulla monitor-mode e il BSSID della nostra rete, reaver non chiede altro. Se volete informazioni sulle varie opzioni e parametri di reaver lanciate reaver –help. Possiamo ora lanciare l’attacco sul NOSTRO router:
# reaver -i -b -vv
Ho aggiunto il parametro -vv (verbose) per poter controllare cosa reaver stia facendo, altrimenti non vedremmo “cosa c’è dietro” ma solo il risultato finale. Comincerà ora un lungo attacco brute-force, alla fine avrete un risultato tipo questo (pin, chiave e ssid, tutto in chiaro!):
Se volete saperne di più ad esempio cosa sono i messaggi M1, M2, eccetera, le WSC NACK che vedete dopo aver lanciato reaver, se volete sapere di più sul funzionamento del programma o volete addirittura leggerne il codice (è open source!!) vi rimando al sito del programma: [fancy_link link=”https://code.google.com/p/reaver-wps/”]https://code.google.com/p/reaver-wps/[/fancy_link]
e al davvero interessante pdf: [fancy_link link=”http://sviehb.files.wordpress.com/2011/12/viehboeck_wps.pdf”]http://sviehb.files.wordpress.com/2011/12/viehboeck_wps.pdf[/fancy_link]
Bell’articolo collega 😉
Davvero ottimo articolo!
Dopo aver letto il paragrafo su come funziona reaver non sapevo se ridere o se piangere xD
entra zero secondi su skype!
Ciao
Ho letto anche l’altro articolo che è stato molto interessante, questo però è ancora meglio.
Solo due parole: continua così!!!
Ciao a tutto lo staff
Grazie mille, sono felice di essere d’aiuto ogni tanto 🙂
Pingback: ARP Spoofing e MITM (Rubare password e credenziali) | InformaticaLab Blog
Ciao ho provaro reaver ma una volta configurato e lanciato riprova ad attaccare la rete sempre con lo stesso pin (12345670). Da cosa dipende?
Guarda, così su due piedi non so cosa possa essere successo, dovresti postarmi un minimo di log, cosa leggi sul terminale? Continua a fare il tentativo con lo stesso pin per un errore oppure crede stia andando avanti invece prova sempre lo stesso? Distribuzione? Versione di Reaver? Grazie!
bravo,con Reaver mi ha trovato la pass ma se il router non presenta wps cosa mi consigli di provare?meglio se senza dizionario.
Grazie mille
Ciao, posso chiederti quindi (da profana della tecnologia) se è possibile disabilitare la funzione wps? io non avevo nemmeno un pin, ho solo premuto il pulsante per collegare il modem al pc
Ciao Chiara! Il WPS si può disabilitare tranquillamente all’ interno della pagina di configurazione del tuo router. Non posso essere più preciso in quanto variano da router a router, ecco un esempio: https://steveshank.com/images/a/373_01.png
A presto!
Purtroppo anche con il WPS disabilitato molti router continuano ad accettare richieste di autenticazione via PIN e sono quindi vulnerabili…. Ahi ahi ahi questi produttori!
Pingback: Siete veri Geek? Ecco 7 cose che dovete sapere | InformaticaLab Blog
Ciao, ho letto la tua guida ed ho controllato il mio router netgear sul quale avevo disabilitato il pin. Purtroppo quando con lo smartphone visualizzo le reti disponibili, mi segnala che su quella del mio router è ancora disponibile il wps. Come è possibile se l’ho disabilitato dai comandi interni? Come si può fare per disabilitarlo definitivamente? Grazie. Saluti.
Mi aiuti a trovare il pin wps della mia rete, non riesco a trovare il pin!
Sidds TIM-08398598 canale 6 Mac address B4: A5:EF:0C:D8:7B
Ora molti router bloccano il wps dopo pochi tentativi. L’errore tipico: “Ap rate limiting wait 60 sec.” . Con il comando wash, vedo infatti wps locked “yes”.
Ho provato con vari attacchi utilizzando anche mdk3, però non sono efficaci, contro molti router .
L’alternativa sarebbe utilizzare dei programmi che provano wps probabile offline scritti in python, o pixie dust wps.
Qualcuno può dirmi come aggirare wps locked?
Ci sei riuscito?
Anche io ho lo stesso problema ripete sempre lo stesso pin!
E poi ripete questo
Warning : receive timeout occurred
Sending EAPOL START request