Wireless:Cracking Istantaneo di Chiavi WPA/WPA2

28 aprile 2009 - Fonte: http://www.underdark.netsons.org Lascia il tuo commento »
E' la tua prima volta qui? Allora iscriviti GRATIS ai nostri feeds! 
NOTA BENE: Il Bloggatore ha rilevato dei problemi di collegamento con il blog indicato come fonte originale dell'articolo. Pertanto, al fine di consentire agli utenti di leggere questo articolo, se possibile, viene reso temporaneamente disponibile il post completo.

Questo che segue è il frutto di una ricerca effettuata da Angelo Righi, l’autore del blog Pillolhacking.net. Sulla base di quanto segue, stiamo svolgendo alcuni studi insieme ad altre persone.

Crackare una rete wireless protetta da WEP è relativamente semplice: è una cosa risaputa. Crackare una rete protetta da WPA e WPA2 è decisamente più complicato. Non è impossibile, ma sicuramente arduo e richiede tempo, molto tempo. Tentare di crackare una rete protetta con la key standard fornita insieme al modem Wi-Fi dal provider sembra una missione impossibile. In genere queste chiavi sono formate da numeri e lettere, e la lunghezza è consistente ovvero di 8/10 caratteri. Il brute force potrebbe essere lunghissimo. Ma potrebbe esserci (anzi c’è) una scorciatoia, una scorciatoia che riduce i tempi di cracking: anzi, non li riduce ma li annulla! Fantascienza? Vediamo…

Il metodo che presento in questo articolo non è universale e non sfrutta una vulnerabilità dei sistemi WPA/WPA2 (o WEP), bensi l’algoritmo di generazione delle key standard.

Terminologia

Per meglio comprendere il contenuto di questo articolo è necessario spiegare il significato di alcuni termini utilizzati in questo documento.

Access Point (AP): E’ il dispositivo che fornisce il servizio wireless, modem/router Wi-Fi.

Key (PSK): E’ la “password” (pre-shared key), la chiave segreta che protegge la comunicazione wireless. In genere è composta da lettere e numeri. E’ il segreto condiviso tra Access Point e PC.

ISP: Internet Service Provider, chi fornisce la connettività Internet. Fornisce il modem per collegarsi alla rete che nel caso preso in esame diffonde anche il segnale Wi-Fi (AP).

Mac Address: Media Access Control, è l’identificatore univoco di una scheda di rete. Ogni interfaccia di rete wireless o ethernet che sia (ma anche altri tipi, vedi bluetooh) ha un Mac Address. Il Mac Address è formato da sei byte rappresentati in formato esadecimale (12-34-56-78-9A-BC-DE); i primi tre byte identificano il costruttore, gli altri tre sono univoci per dispositivo.

Serial (S/N): E’ un codice che identifica in modo univoco un apparato, nel nostro caso il router/modem fornito dall’ISP.

SSID: Service Set Identifier, è il nome di una rete Wi-Fi.

Il Problema

Quando sottoscriviamo un contratto con un ISP ci viene fornito un modem. In genere il modem viene ha in dotazione un CD; sulla confezione del cd o sotto l’apparato stesso c’è un adesivo con dei parametri. Uno di questi parametri (key) è la chiave WPA/WPA2 che dobbiamo inserire nella configurazione del nostro computer per poter accedere al servizio Wi-Fi. E’ l’unica informazione che dovrebbe essere segreta. Gli altri tre parametri sono ininfluenti. Anzi, dovrebbero essere ininfluenti.

Il problema risiede nel fatto che le chiavi segrete di default sono generate con un algoritmo.
E’ stato osservato da alcuni ricercatori che esistono casi in cui i parametri dell’algoritmo sono presi dal Mac Address, dal Serial o dal SSID; peggio ancora, spesso il SSID e il Serial discendono direttamente dal Mac Address. Questo significa che ottenendo il SSID e il Mac Address, o anche soltanto uno di questi due valori, effettuando il reverse engineering dell’algoritmo è possibile ottenere le key di dafault di tutti i modem di un particolare modello!
Se si pensa che gli ISP distribuiscono migliaia di modem dello stesso modello e considerando inoltre che probabilmente tutti i costruttori di modem adottano meccanismi simili per la generazione delle key standard; aggiungiamo il fatto che l’utente medio difficilmente cambierà la key standard otteniamo il risultato che probabilmente gran parte dei modem Wi-Fi distribuiti dagli ISP in tutto il mondo sono vulnerabili a questo problema.

La Ricerca

La mia ricerca è iniziata leggendo un documento scritto da Muris Kurgas, un hacker montenegrino, il quale ha scoperto ed ha effettuato il reverse engineering dell’algoritmo di generazione della key standard del modem Pirelli Discus DRG225, molto diffuso nel suo Paese.
La sua analisi era iniziata cercando vulnerabilità nei router/modem Thomson SpeedTouch e trovando appunto uno studio su questo genere di problema.

Ispirandomi a queste ricerche ho deciso di effettuare il reverse engineering dell’algoritmo di generazione della key standard del mio modem/router Telsey distribuito da Fastweb. Nonostante avessi a disposizione solo i parametri del mio apparato, non avendo quindi la possibilità di incrociare i risutalti con altri dati, a differenza di Muris Kurgas che aveva i dati di diversi modem, sono riuscito a ricostruire la logica dell’algoritmo, gettando le basi per la realizzazione di un generatore universale di key dei modem attualmente distribuiti da Fastweb.

Da precisare che i modem Telsey di qualche anno fa apparentemente hanno una logica ancora più semplice. Infatti, utilizzando delle combinazioni di Fastweb/Telsey SSID, Mac e Serial di modem pubblicati su Internet, ho notato che la procedura di generazione del Serial è molto più semplice e diversa da quella descritta in questo articolo.

Dal SSID al Serial

Nella mia ricerca mi sono ispirato ai lavori citati prima sui modem Pireli e Thomson. In entrambi casi ho notato che:

1. Il SSID è derivato dal Mac Address
2. Il Serial è derivato dal SSID (e quindi in qualche modo dal Mac Address)
3. La key (PSK) è derivata dal Serial Number (S/N)

Questo significa che conoscendo il Mac Address (dato pubblico e facilmente ottenibile) si può risalire alla key segreta.

Così ho deciso di iniziare la mia caccia cercando di capire se c’era un legame tra SSID/Mac e Serial anche in questo caso.

I dati di cui ho a disposizione sono i dati del modem che mi ha fornito Fastweb:

SSID: FASTWEB-1-00036F8E42BC
Mac: 00-03-6F-8E-42-BC
S/N: 00776934
PSK: 7fcee0998a

Il mio obiettivo è trovare un algoritmo in grado di generare la PSK partendo dal SSID. Trovare questo algoritmo significa ottenere le key di tutti gli apparati Telsey di questo modello.

E’ subito evidente che il SSID è il Mac Address al quale è stato aggiunta all’inizio la stringa “FASTWEB-1-”.

Per prima cosa ho deciso di capire se il Serial fosse direttamente collegato al Mac effettuando una semplice conversione numerica, cosa che si verificava nei vecchi modelli Telsey.
Infatti fino a qualche tempo fa i Serial dei modem Telsey erano la versione decimale delle ultime sei cifre decimali del Mac:

Ultime sei cifre del mio Mac: 8E42BC
Versione decimale: 9323196

E qui la prima delusione: il risultato è diverso dal previsto, infatti il mio Serial è 00776934.
Lo sconforto dura poco perchè mi sorge un sospetto: le prime 3 cifre del risultato ottenuto (932) non sono molto diverse dalle ultime 3 cifre del mio Serial (934). Decido che non si tratta di una coincidenza, ma di un segno che la pista è buona e devo continuare a batterla.
Giocando con il Mac Address mi accorgo che se invece delle ultime 6 cifre, prendo in considerazione e converto le ultime 5 (E42BC) da esadecimale a decimale ottengo 934588.
Inizia a sorgermi il dubbio che il Serial sia formato da due valori di 3 cifre e con l’aggiunta degli 0 davanti. Se fosse così avrei già la seconda parte del Serial (934). Ma la prima parte (776) da dove esce? Se inverto applico il metodo appena illustrato a 934588 ottengo 588934:

$E42BC -> 934588 -> 934 588 -> 588 934 -> 00588934

Ricordo che il mio primo obiettivo è ottenere il Serial che nel mio caso è 00776934. Se la mia intuizione è giusta, ovvero se il Serial è formato da due sequenze di 3 cifre, sequenze che sarebbero l’inversione di un unico numero, per ottenere il Serial corretto manca ancora un’operazione. La seconda parte è giusta, la prima invece è diversa: ho ottenuto 588 ma mi aspettavo 776.
Qual’è la differenza tra i due numeri? 776-588=188. Non mi dice nulla. Ma convertendo questo numero in esadecimale ottengo $BC: ovvero l’ultimo byte del Mac Address, che ricordo è 00-03-6F-8E-42-BC.

La pista era giusta. Anche in questo caso il Serial deriva dal Mac Address.
Per ottenere il Serial si prendono le ultime 5 cifre esadecimali del Mac e si sommano le ultime 2 cifre esadecimali del Mac stesso. Il risultato viene spezzato in due parti composte da 3 cifre e le due parti vengono scambiate di posizione:

$E42BC = 934588
934588+188($BC) = 934776

934776 -> 934 776 -> 776 934 -> 00776934

La prima parte della missione è compiuta. Ho dimostrato che anche in questo caso il Serial deriva dal Mac Address. Se riuscirò anche nella seconda parte, ovvero la parte che conduce dal Serial alla key l’obiettivo sarà centrato.

Dal Serial alla Key

Ora so che c’è un legame tra SSID, Mac e Serial. Esiste un legame tra questi valori e la key (PSK)? Se si, quale? Nel caso dei Pirelli Discus analizzati da Muris Kurgas la key coincideva col Serial; nei Thomson SpeedTouch parte del SSID e la key derivano dall’elaborazione tramite hash sha1 del Serial.
Non sapendo bene da dove partire effettuo un po’ di conversioni numeriche, e semplici operazioni di sottrazione, per cercare una traccia operando in modo simile al procedimento utilizzato per giungere al Serial. Purtroppo non ottengo nulla che mi sembri utile. Sono in un vicolo cieco.

Decido di ripartire dalla key: 7fcee0998a. Cosa dice questo codice? Dieci cifre, esadecimali. Pare non abbiano un rapporto diretto riconoscibile col Mac e neppure col Serial. Potrebbero essere estratti da un md5 o da un sha1 come nel caso del Thomson. Ripensando anche alla logica fin qui usata dai programmatori, la key potrebbe essere composta da due semi-key di 5 cifre, ovvero 7fcee e 0998a. A loro volta questi semi-key potrebbero essere frammenti (l’inizio o la fine) del risultato di un’operazione hash. Decido di seguire questa pista.
Creo delle tabelle di hash md5 e sha1 basate sulla progressione di numeri a partire da 934588, ovvero la versione decimale delle ultime 5 cifre del Mac, numero utilizzato prima per trovare il Serial. Una volta create queste tabelle cerco i frammenti di semi-key: 7fcee e 0998a.

Trovo il primo valore, si tratta dell’md5 si 936205:
936205 -> 2c916640d3b87a6aed4e443d9387fcee

le ultime 5 cifre corrispondo alla semi-key. La distanza tra il valore trovato (936205) e l’origine 934588 è 1617. Non mi dice molto. Più tardi mi accorgerò che con maggior lucidità e freddezza avrei raggiunto (quasi) l’obiettivo senza l’ausilio poco elegante delle tabelle di hash: alla fine un volgare brute-force…

Poco dopo trovo l’altra metà della key:
939674 023292804e3088ed5e6d2995f0998ac0

All’inizio trovo sconfortante il risultato: non mi convince il fatto che non si tratti degli ultimi 5 caratteri ma degli ultimi 7, con ‘c0′ che viene eliminato. A mettermi di buon umore però è la distanza tra i due numeri:

939674 - 936205 = 3469

A prima vista il numero 3469 non dice nulla; ma se andiamo a guardare il Serial (00776934) ci accorgiamo che si tratta ancora una volta del giochetto dello scambio delle sequenze:

00776934 -> 6934 -> 69 34 -> 3469

Ho scoperto dunque che la key è formata da frammenti di md5; i due frammenti sono ottenuti estraendoli dalle ultime 5 e 7 cifre dell’md5, e che i due valori originali da cui derivano gli md5 sono “distanti” 3469 unità, ovvero un numero direttamente riconducibile al Serial.
A questo punto però manca ancora un elemento: da dove esce il numero 1617, che separa il numero derivato dal Mac (934588) dal primo (e come abbiamo visto di conseguenza il secondo) valore utilizzato per generare la key?

A Volte i Conti non Tornano…

La risposta è: non lo so! O meglio, lo so, anche se non con precisione. Andiamo per gradi.
Per scoprire gli hash che danno origine alla key ho fatto ricorso ad un brute force. Ho così trovato un numero misterioso (1617) che è poi la chiave di tutta la faccenda, il valore incognito che permette di arrivare dal Mac alla key. Da dove esce questo numero? Dalla aritmetica modulare, assai utilizzata in crittografia.

Se prendo il numero 934776 (vedi sopra) e applico il modulo 3469 (che abbiamo appena visto) ottengo come risultato 1615; come ricorderete il numero che mi aspettavo di trovare è 1617.

934776 mod 3469 = 1615 (Non 1617 ???)

Qui c’è la discrepanza che non sono riuscito a risolvere, se non stabilendo che i programmatori hanno deciso di aggiungere un valore costante di 2 al risultato dell’operazione di modulo, spiegazione che non mi convince molto.
Per risolvere la questione mi servirebbero altri dati completi (SSID, Mac, Serial e key) per poter incrociare i risultati. Già così però ritengo di essere giunto a buon punto.

Considerazioni Finali

Partendo dalla ricerca di un hacker montenegrino che ha scoperto come risalire alla key standard di un modem Wi-Fi diffuso nel suo Paese ricostruendo l’algoritmo di generazione della key stessa. Ho deciso di fare lo stesso sull’apparato che il mio ISP mi ha dato in dotazione. Seppur l’esito finale presenti una lieva anomalia, sono riuscito a dimostrare la dipendenza del Serial Number dal SSID (e dal Mac). Con una maggior quantità di dati da analizzare sarebbe probabilmente possibile superare anche l’anomalia e creare uno script per implementare l’algoritmo di generazione delle key. La stessa cosa può essere fatta su qualsiasi altro modello di modem attualmente in circolazione.

La contromisura a questo attacco è banale: non utilizzare mai le key e le password di dafault. Il problema però è: in quanti lo fanno? E quanti hanno la percezione del rischio che corrono se non modificano le key e le password standard?

——————————————————

Inviterei a chiunque sia interessato di condividere le proprie ricerche dando la vostra opinione e il vostro contributo!

Io possiedo HAG Fastweb Pirelli DRG A226M con i seguenti dati:

SSID: FASTWEB-1-001CA2BA2CE8
Mac: 00-19-3E-C0-B3-61
Fastweb code: 100136
S/N: 53501X1121613
WEP/WPA PSK: 696e6d7001

Prossimamente posterò un’ottima guida per sbloccare gli HAG Fastweb Pirelli DRG A226M tramite packet injection!
Un mio caro amico, saxdax (che saluto) è un vero esperto in questo campo! E’ riuscito ad effettuare un reverse engineering dell’algoritmo di criptazione che genera la chiave PSK a partire dall’ SSID, naturalmente per adesso non ha intenzione di divulgare l’algoritmo che ha reversato.
Un’ultima cosa: saxdax è il tizio che ha trovato la backdoor del Router Alice per sbloccarlo, praticamente la guida che ha postato tempo fa evilsocket.
Altri articoli interessanti:








SEGNALA / INVIA QUESTO POST:  Share
Hai trovato questo articolo interessante? Iscriviti GRATIS ai nostri feeds! 
  1. masterzorag scrive:

    Ottima ricerca, io invece sono alle prese con due AP di Alice, saxdax dice di aver scovato l’algoritmo, mha! Sono scettico, sono fermo nonostante abbia un bruteforce in perl, pyrit senza una geforce ‘power’ e cowpatty/aircrack. Mi fermano i 24 caratteri della default wpa, troppo tempo! Da quello che vedo peró le chiavi di default hanno solo lettere dalla a alla f, piú tutte le cifre, considerazione veritiera secondo voi? Nessuno pensa di reversare il fw per capire qualcosa?

  2. T21254 scrive:

    Masterzorag, non capisco se sei un perfetto idiota o se fai finta. si, hanno tutte le lettere dalla a alla f. wow. più altre dieci cifre, ti dice niente il numero 16? esadecimale deve esserti un concetto astruso.
    Saxdax ha scovato l’algoritmo che, dato l’SSID, genera la chiave. dimmi cosa c’entra un bruteforce in questo.
    Prima di cracckare reti, cerca di capire i concetti di BASE per favore. Altrimenti così sfilisci tutta la categoria di persone, come ad esempio Saxdax o gli stessi lettori di questo blog che dedicano tempo e passione per CAPIRE quello che sta alla base, non per giocare a fare i novelli NEO o fare i fighi con gli amici.
    respect
    T21.

  3. T21254 scrive:

    edit:
    per inciso, non ci sono solo le lettere dalla A alla F.

  4. masterzorag scrive:

    Caro t21, so già craccare reti ed il tuo post mi è superfluo. Sul suo blog saxdax dice: vi dimostro, a pagamento, che se mi dici bssid ti dico la default wpa; pagamento necessario per costi legati al tempo di calcolo. 1] Se conosci l’algoritmo, come da titolo di questo blog, il calcolo è immediato! 2] Pagare? Non bisognerebbe condividere? 3] Non conoscendo l’algoritmo si generano pass da 24 caratteri da a-f 0-9 e si danno in pasto a pyrit, che adesso è il più veloce precomputatore di pmk, tutto in pipe verso cowpatty/aircrack. Ció ha bisogno di tempo di calcolo, e di hardware, roba che guarda caso, costa! Se poi l’algoritmo è lo stesso dello speedtouch… Proveró, ma se scopro che è lo stesso, condividerò!!!

  5. T21254 scrive:

    è evidente che lui crakka a pagamento le reti degli altri. Puoi biasimarlo solo in parte: se effettivamente sei uno che se ne intende, una volta che il codice diventa pubblico, perde la sua efficacia. Così facendo saxdax intanto ci guadagna sopra, e in più la sua è una “minaccia” limitata. IMHO siano in pochi disposti a pagare per usare una wireless che da un momento all’altro può essere totalmente inutile,giusto?
    per il punto 3: Questa è la TUA tecnica. Non è detto che sia l’unica, non trovi?

  6. masterzorag scrive:

    Dimenticavo: 4] Se conosci l’algoritmo non ti serve l’handshake catturato! Saxdax dice mandatemelo cosí posso verificare bla bla bla… 5] Se conosci l’algoritmo, ti dico bssid, mi dici la default wpa e poi sono io a verificare se è corretta confrontandola con l’handshake catturato! 6] Senza handshake saxdax non puó fare proprio niente. 7] E poi saxdax non sa neanche cos’è pyrit? Non credo proprio, si sta aprofittando dei molti allocchi che vagano nella rete che sono disposti a dargli handshake e pure soldi! 8] t21,in neanche un giorno ho demolito la leggenda di saxdax, elif dico a saxdax i miei due bssid di Alice e lui mi dice le due default wpa SENZA avere i rispettivi handshake!
    Fino a questa condizione resta una leggenda!

  7. T21254 scrive:

    che l’hai demolita è tutto da vedersi. A quanto vedo stai aggiustando ogni giro le tue teorie.. o sbaglio? se conosco l’algoritmo, mi dici il bssid e io ottengo un range di chiavi che possono essere vere (da un secondo grado in poi, non c’è una unica soluzione, no?). allora servono gli HS catturati per verificare la correttezza delle informazioni e identificare con certezza la wkey trovata. siccome saxdax si fa pagare, il sistema DEVE essere robusto e affidabile, altrimenti la sua reputazione crolla e nessuno gli da più credito. Per me saxdax si sta dimostrando un “professionista”, o quantomeno uno serio. Magari approfitta un pò, ma non più di quanto farei anche io.
    Respect
    T21.

  8. masterzorag scrive:

    No no no, sono solo chiacchere in italiano, io odio le chiacchere ma soprattutto chi ne approfitta. Chiunque capirebbe che ‘al massimo’ l’algoritmo è stato ‘capito’ PARZIALMENTE, il punto 6 rimane. Si potrebbe dire pagatemi, datemi hs e vi dico la password, senza dirmi bssid o nient’altro; pienamente fattibile senza aver scoperto niente. Qualcuno ne approfitta gente, reputazione?, respect?, a sto punto si salvi chi puó.

  9. T21254 scrive:

    quindi tu dici che saxdax non solo è uno che le spara, ma è anche uno che spreca giorni, soldi, corrente e cpu gpu e cheneso per scroccare 10€ a ragazzini e a poveri ignoranti che si fidano ciecamente di lui? bah. contento te. nessuno ti obbliga a crederci, il sito di saxdax sai qual’è, mandagli i bssid (e assicurati che non siano stati cambiati o di ultima generazione) e poi fammi sapere.
    nonostantetutto
    respect
    T21
    ==

  10. Skizzetto scrive:

    ciao, masterzorag sei capace di trovare la chiave WEP?

  11. Skizzetto scrive:

    masterzorag vorrei imparare come trovare la chiave wep o wpa e quali programmi da utilizzare!!!
    Non chiedo molto vero? :)

  12. Skizzetto scrive:

    Hai un indirizzo E-mail?
    cosi ti scrivo 2 SSID e BSSID,
    1 wep e 1 wpa da trovare!
    Rispondi!!!

  13. alessandro scrive:

    ma quando entro nella configurazione del mio modem tele2 DRG A124G quale sarebbe la chiave wpa?non riesco a trovarla

  14. Frank di bronzo scrive:

    Guarda, non ce l’ho io, ma difficilmente troverai la chiave wpa in chiaro sul modem tele2. Dovresti cercarla tra le carte che ti hanno lasciato quando te lo sono venuti a configurare quelli di tele2

  15. alessandro scrive:

    ma non me l’hanno configurato loro ma mi hanno spedito il modem con il cd d’istallazione e il foglio con username e pass e basta.quindi?

  16. Miki scrive:

    Allora sicuramente puoi reimpostare la password WPA andando nella pagina amministrativa (via web)

  17. MaryOwen scrive:

    Ragazzi, vi lascio questo link: http://assistenza.libero.it/adsl/modem/download/Guida_Pirelli_DRG124_NA.pdf
    contiene una guida all’uso. Per risolvere in modo specifico il discorso della Wireless LAN, basterà leggere e seguire la sezione “Configurare l’Access point Wireless”.
    Ciao a tutti!

  18. Orgoglio3 scrive:

    Siamo in Italia e sarebbe giusto che la pirelli facesse in modo di poter cambiare la lingua dell’interfaccia per la configurazione. Io con l’Inglese ho qualche problema quindi potreste aiutarmi in questo?

  19. ciro scrive:

    ciao scusa se ti do tutti i dati mi riusciresti a scovare la key?

Lascia un Commento