Pirelli Fastweb – Free Access!
Ricordiamo che l’accesso abusivo ad un sistema informatico o telematico è un reato perseguibile a termine di legge (art. 615-ter c.p.). Inoltre ricordiamo che la detenzione e la diffusione abusiva di codici di accesso a sistemi informatici o telematici è un reato penale perseguibile secondo la legge 615-quater c.p.
Pertanto l’utilizzo di quanto esposto è da riferirsi a un test di sicurezza sulla propria rete o su una rete la quale il proprietario abbia espressamente dato il libero consenso al fine di giudicarne la sicurezza e porre rimedio ad eventuali vulnerabilità.
Gli Autori di questo Blog non potranno essere ritenuti responsabili di eventuali violazioni derivanti da un uso proprio o improprio delle tecniche esposte in questo articolo aventi uno scopo prettamente informativo e didattico.
Ciò che leggerete in questo post è il frutto di alcune ricerche effettuate da persone appassionate di wifi e tecniche di sicurezza. Anche se il titolo potrebbe far pensare altrimenti è bene capire che il senso etico della guida non è violare reti altrui.. bensì proteggersi, prendere adeguate misure di sicurezza e capire quanto e come il cliente viene tutelato dal proprio ISP. Nonostante questo post sia esclusivamente relativo a Fastweb, il problema non riguarda solamente questo provider ma la più generale nozione di sicurezza dei provider Italiani.
La maggior parte degli utenti che scelgono una encriptazione WPA-PSK si sentono abbastanza sicuri in quanto questo protocollo risulta essere molto robusto, e ciò è effettivamente vero! Ma da quello che apprenderete vi renderete subito conto che il problema sta da un altra parte. Molto spesso tra le sedia e la tastiera! Molte società preferiscono spendere milioni di € in campagne pubblicitarie e non si curano di realizzare dei progetti robusti in termini di sicurezza per garantire la privacy del Cliente.
- La prima parte di questo articolo sarà una breve introduzione alle notazioni utilizzate e le specifiche tecniche a cui si farà riferimento.
- Nella seconda parte vedremo nel dettaglio le scelte progetuali adottate per la costruzione della chiave WPA-PSK predefinita impressa nell’etichetta sotto ogni router. Parleremo inoltre dell’architettura degli HAG Fastweb e del modello Pirelli in particolare.
- Nella terza parte vedremo invece la tecnica di Reverse Enginnering applicata ad un firmware Pirelli Fastweb che ci ha portato alla scoperta dell’algoritmo di generazione della chiave WPA di default.
- Infine nell’ultima parte accenneremo alle possibili soluzioni per ovviare questi tipi di problemi e garantire perciò una maggiore sicurezza per le comunicazioni di tipo wireless.
Notazioni
MAC Address: codice di 48 bit (6 byte) assegnato in modo univoco ad ogni scheda di rete ethernet prodotta al mondo. Rappresenta in sostanza un nome per un particolare dispositivo di rete. Gli indirizzi MAC vengono solitamente rappresentati in formato esadecimale, separando ciascun ottetto con un trattino o con i due punti. Un esempio di indirizzo MAC è “00-08-74-4C-7F-1D”. Confrontando i primi tre ottetti con le assegnazioni OUI dell’IEEE, si può osservare come esso appartenga alla Dell Corporation, mentre gli ultimi tre ottetti rappresentano il numero seriale assegnato al componente dal produttore.
Ogni scheda ha un indirizzo unico perché i primi 24 bit sono identificativi della casa produttrice e i successivi della scheda. In questo modo ogni casa produttrice ha a disposizione 2 alla 24 indirizzi, quindi può produrre più di 16 milioni di schede; se un produttore ne produce meno, gli indirizzi (a 48 bit) non assegnati vengono persi, non potendo essere utilizzati da altri costruttori. Una lista dei vendors si può trovare a questo indirizzo: Vendors
SSID: il Service Set Identifier è il nome con cui una rete Wi-Fi si identifica ai suoi utenti. Spesso gli access point sono configurati in modo da annunciare continuamente i loro SSID, cossicché i dispositivi Wi-Fi possano creare un elenco delle reti disponibili nella zona in cui si trovano.
WEP: Wired Equivalent Privacy: è un protocollo di sicurezza per reti wireless ormai insicuro e ritenuto legacy.
WPA-PSK: Wi-Fi Protected Access (WPA e WPA 2) è un programma di certificazione e un protocollo per la sicurezza di reti wireless, basato sull’uso di password, amministrato dall’alleanza del Wi-Fi come forma di protezione per le reti di computer wireless.
HAG: Home Access Gateway. Apparato di rete in dotazione dei clienti Fastweb, l’equivalente router/modem fornito ai clienti di altri ISP nazionali. In ingresso riceve un segnale digitale proveniente dalla rete Fastweb, in uscita fornisce un segnale telefonico analogico tradizionale e un segnale dati a velocità variabile, dipendente dal tipo di cablaggio dell’utenza: fibra ottica o xDSL.
Brute Force: Il metodo “forza bruta” è un algoritmo di risoluzione di un problema che consiste nel verificare tutte le soluzioni teoricamente possibili fino a che si trova quella effettivamente corretta.
Il suo principale fattore positivo è che consente teoricamente sempre di trovare la soluzione corretta, ma per contro è sempre la soluzione più lenta o dispendiosa; viene utilizzato come ultima risorsa sia in crittanalisi che in altre parti della matematica solamente in quei casi dove sia l’unico procedimento conosciuto.
Attacco a dizionario: Nella crittanalisi e nella sicurezza informatica, un attacco a dizionario è una tecnica per “rompere” un codice cifrato o un meccanismo di autenticazione provando a decifrare il codice o a determinare la passphrase cercando tra un gran numero di possibilità. In pratica si tenta di accedere a dati protetti da password (sia remoti, come ad esempio accounts su siti web o server di posta; sia locali, come documenti o archivi protetti da password) tramite una serie continuativa e sistematica di tentativi di inserimento della password, solitamente effettuati in modo automatizzato, basandosi su uno o più dizionari. In contrasto con un metodo forza bruta (o attacco brute force), dove tutte le possibili password sono ricercate in maniera esaustiva, un attacco a dizionario prova solamente le possibili password più probabili. Si può usare una lista di parole probabili (detta dizionario).
MIPS: acronimo di Microprocessor without Interlocked Pipeline Stages, è un processore di architettura RISC sviluppato da MIPS Computer Systems Inc. Il MIPS è utilizzato nel campo dei computer SGI, e hanno trovato grossa diffusione nell’ambito dei sistemi embedded, dei devices di Windows CE e nei router di Cisco . Le console Nintendo 64, Sony PlayStation, Sony PlayStation 2 e Sony PlayStation Portable utilizzano processori MIPS, nonchè gli HAG forniti da Fastweb ISP, che si basano su un’architettura a 32 bit.
IDA: IDA Pro Disassembler and Debugger è un interattivo, programmabile, estensibile, multi-processore, disassemblatore disponibile per sistemi Windows, Linux e Mac OS X. IDA PRO è diventato un software standard per l’analisi del codice ostile alla ricerca di vulnerabilità. Per maggiori informazioni visitare il seguente link: executive overview
Questa guida non ha la pretesa di essere esaustiva sotto ogni aspetto, ma ha lo scopo di aiutare nella logica il lettore, affinchè giunga da solo alle proprie conclusioni. Si invita quindi ad approfondire in maniera autonoma eventuali argomenti di interesse.
Gli HAG Fastweb oggi
La rete Fastweb attualmente distribuisce due modelli di Hag-Fastweb WiFi di due ben note case costrustrici: Telsey e Pirelli.
Per entrambi, Fastweb utilizza un algoritmo proprietario per assegnare in modo univoco una chiave WPA-PSK predefinita dato il rispettivo MAC ADDRESS della scheda wifi interna. Ciò significa che dato un qualsiasi Hag questo è identificato da tre parametri principali: Serial, SSID, WPA-PSK default, MAC Address.
Inoltre l’SSID di rete ha il sequente forato: “Fastweb-A-xxxxxxxxxxxx” dove A può assumere il valore 1 o 2, le x rispecchiano di solito il Mac Address della scheda wireless interna. Dalle prime 3 coppie del MAC è quindi possibile capire di che Hag si tratta. Per i Pirelli Fastweb gli indirizzi sono comunemente del tipo: FASTWEB-1-001CA2xxxxxx o FASTWEB-1-001DBXxxxxxx mentre per i Telsey Fastweb: FASTWEB-1-00036Fxxxxxx oppure FASTWEB-1-002196xxxxxx. Può capitare però che l’SSID non corrisponda al MAC, almeno per le ultime tre coppie. Questo si può facilmente verificare facendo un confronto diretto oppure attraverso uno sniffer di rete come ad esempio kismet.
La chiave WPA-PSK generata di default per ogni Hag è una chiave composta da 10 cifre esadecimali (10 cifre in modo che la stessa chiave supporti contemporanemente lo standard WPA e WEP). Facendo diverse ricerche e riscontri su questo tipo di dati siamo riusciti a capire il significato di quelle lettere apparentemente casuali ed insensate. Per capire meglio il concetto ci affidiamo a qualche esempio pratico reale.
Questi sono i dati (fac-simili) di possibili reti Fastweb Pirelli:
SSID: FASTWEB-1-001CA2AAAAAA
Mac: 00-1C-A2-AA-AA-AA
WEP/WPA PSK: 0964080272
SSID: FASTWEB-1-001CA2BBBBBB
Mac: 00-1C-A2-BB-BB-BB
WEP/WPA PSK: 6b6c657368
SSID: FASTWEB-1-001CA2CCCCCC
Mac: 00-1C-A2-CC-CC-CC
WEP/WPA PSK: 690268086f
Adesso analizziamo le tre chiavi WPA un po’ più da vicino.
0964080272, 6b6c657368, 690268086f
Notiamo subito che le chiavi sono composte da valori esadecimali, aventi quindi un charset di questo tipo {0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}
Qui notiamo subito il primo errore progettuale: Scegliere una chiave WPA di 10 caratteri in uno spazio chiavi abbastanza ristretto, tale da favorire un bruteforce attack. Date le crescenti potenze di calcolo, le chiavi WPA dovrebbero tendere più alla lunghezza massima di 64 caratteri che alla minima di 8. 10 caratteri (casuali) sembrano ancora tutt’oggi un numero tale da scoraggiare la forza bruta, ma come vedremo in realtà lo spazio di ricerca in questo caso è molto più stretto.
Maggiori dettagli
Come accennato sopra la password Fastweb WPA è violabile in tempi più che ragionevoli con un meccanismo di bruteforce. Però, l’assunzione alla base di questa procedura è che la generazione della PSK sia casuale. E se invece casuale non fosse ciò che casuale appare? E, soprattutto, se l’algoritmo del tutto deterministico e ripetibile alla base di questa generazione, dipendesse da dati che è alla portata di chiunque ottenere? Se così fosse l’intero scopo della protezione WPA sarebbe sconfitto in partenza: chiunque potrebbe estrarre i dati e calcolare le PSK che gli interessano.
La nostra ricerca intende dimostrare che nel caso dei router Fastweb Pirelli la preshared key è funzione dell’SSID (ovvero, del nome stesso della rete). La vulnerabilità è particolarmente grave, in quanto l’SSID è il dato pubblico per definizione: volendo o meno, qualsiasi software di gestione wifi lo mostra apertamente.
Primo passo necessario allo sviluppo della ricerca è stata l’estrazione del firmware da un router e la successiva importazione in un ambiente adatto allo studio del codice assembler così ottenuto.
A tale scopo abbiamo analizzato il firmware utilizzando un ottimo software: IDA PRO.
Tale ambiente consente la navigazione del codice ASM MIPS, risolve automaticamente i riferimenti tramite le tabelle dei simboli e in generale semplifica enormemente il lavoro di reversing consentendo di concentrarsi sulla lettura e comprensione del codice.
Una spiacevole (piacevole) sopresa è stata la presenza, nel disassemblato di tutte le funzioni con nomi fortemente autoesplicativi (ulteriore grave errore, a nostro avviso, da parte dei programmatori) questo ci ha permesso di semplificare straordinariamente l’analisi del firmmware.
Il cuore dell’algoritmo si svolge nella soubroutine: cript_it. Tale funzione, dal nome palesemente esplicativo, viene invocata indirettamente durante la generazione dei parametri WiFi del dispositivo. Ad essa viene passato come parametro proprio il nome della rete, o meglio parte di esso, che sostanzialmente rappresenta il MAC Address della scheda wifi contenuta nell’HAG, trattato secondo un algoritmo proprietario non difficile da comprendere.
Analisi dell’Algoritmo
In sintesi questi sono i passi svolti dall’algoritmo per ricavare la WPA predefinita partendo dall’SSID di rete.
- Estrae una sequenza di 6 byte dall’SSID.
- Inizializza i vettori MD5 (MD5Init).
- Inserisce i 6 byte dell’SSID nella sequenza di cui calcola l’hash MD5 (MD5Update).
- Ricalcola l’hash MD5 (dell’hash precedente) utilizzando una sequenza di 20 byte predefinita (MD5Update).
- Finalizza l’hash MD5 (MD5Finish).
- Dall’hash finale crea una squenza binaria ottenuta considerando i primi 4 byte più significativi dell’hash.
- Questa sequenza viene a sua volta suddivisa in 5 gruppi da 5 bit ciascuno. I bit in eccesso vengono scartati. Ed ogni gruppo di 5 bit viene riconvertito in esadecimale (*) riottenendo una sequenza di 5 byte.
- Somma 0x57 ad ogni byte il cui valore sia >= 0xA (**).
- La concatenazione di queste rappresentazioni (con lettere minuscole) è la WPA PSK di default.
I punti 2,3 e 4 dell’Algoritmo sono svolti dalla funzione cript_it. Essa riceve in input una sequenza di 6 byte ottenuta dalla parte terminale dell’SSID raggruppando i byte in 6 gruppi da 2 cifre cadauno (00,12,34,56,78,90), e considerando ciascun gruppo un byte espresso in base 16.
Cosa ne fa è presto detto: ne calcola l’MD5 (per la precisione, inserisce questi 6 byte in una sequenza di cui sarà calcolato l’MD5). La procedura MD5 è nota, documentata, e trovarne implementazioni è alla portata di tutti, in ogni linguaggio: BASIC, C/C++, Pascal, C#, COBOL, … basta una semplice ricerca.
Un esperto di tecniche crittografiche avrebbe sicuramente riconosciuto l’algoritmo anche se la routine invocata si fosse chiamata in modo più oscuro (e avrebbe comunque potuto replicare il codice ASM in un linguaggio a scelta, senza capire di star reimplementando un algoritmo noto in letteratura), ma dichiarare platealmente l’uso dell’MD5 è stata un‘ulteriore semplificazione al nostro lavoro.
Usare solo l’SSID così trattato sarà però sembrato sin troppo banale. Si è allora deciso di aggiungere un salt, ovvero una sequenza speciale prefissata di 0x14 (20) byte, da inserire nella sequenza alterando in modo originale la creazione dell’hash MD5! Derivare il salt è stato abbastanza semplice per chi aveva conoscenze pregresse di assembler MIPS, in quanto il codice si avvaleva di una feature tipica di quell’architettura: il delay slot (riteniamo che non sia stata una deliberata scelta offuscativa dei programmatori, ma l’opera del compilatore intenzionato ad usare ogni ciclo in computazione attiva, e minimizzare i NOP).
Tale caratteristica del MIPS32 implica che quando si esegue un salto (o una chiamata di subroutine), la CPU non la esegue subito, ma ha appunto un ciclo “libero” per svolgere un’altra istruzione.
Di seguito è riportato un’estratto della funzione in questione (cript_it).
.text:00480FF8 la $t9, atomac .text:00480FFC jalr $t9 ; atomac .text:00481000 move $a0, $s0 .text:00481004 lw $gp, 0xA8+var_98($sp) .text:00481008 move $s0, $v0 .text:0048100C addiu $a0, $sp, 0xA8+var_90 .text:00481010 beqz $s1, loc_48109C .text:00481014 la $t9, MD5Init .text:00481018 jalr $t9 ; MD5Init .text:0048101C nop .text:00481020 lw $gp, 0xA8+var_98($sp) .text:00481024 move $a1, $s0 .text:00481028 addiu $a0, $sp, 0xA8+var_90 .text:0048102C la $t9, MD5Update .text:00481030 jalr $t9 ; MD5Update .text:00481034 li $a2, 6 .text:00481038 lw $gp, 0xA8+var_98($sp) .text:0048103C addiu $a0, $sp, 0xA8+var_90 .text:00481040 li $a2, 0x14 .text:00481044 la $a1, 0x10020000 .text:00481048 la $t9, MD5Update .text:0048104C jalr $t9 ; MD5Update .text:00481050 addiu $a1, (unk_100220D0 - 0x10020000) .text:00481054 lw $gp, 0xA8+var_98($sp) .text:00481058 addiu $a0, $sp, 0xA8+var_20 .text:0048105C la $t9, MD5Final .text:00481060 jalr $t9 ; MD5Final
Conoscendo il delay slot, è evidente che l’indirizzo della sequenza segreta è unk_100220D0. A tale indirizzo troviamo:
0x22,0x33,0x11,0x34,0x02,0x81,0xFA,0x22,0x11,0x41,0x68,0x11,0x12,0x01,0x05,0x22,0x71,0x42,0x10,0x66Esempio pratico
Poniamo il caso in cui si abbia la propria rete Fastweb avente un SSID di questo tipo FASTWEB-1-00193EA1B2C3.
I 6 byte da considerare sono 00,19,3E,A1,B2,C3. Si calcola l’hash MD5 di questi 6 byte secondo l’algoritmo sopracitato ottenendo: a37d4267f1d177f44d352978d95558a9. Di questo hash si considerano i primi 4 byte nella rappresentazione binaria, ovvero 10100011 01111101 01000010 01100111. Di questa sequenza binaria si formano 5 gruppi di 5 bit ciascuno, ottenendo: 10100 01101 11110 10100 00100, che rappresentati in esadecimale diventano 0x14 0x0D 0x1E 0x14 0x04.
La WPA key si ottiene da questa sequenza di byte confrontanto ciascun byte con 0x0A, se risulta essere maggiore viene aggiunto il valore hex 0x57 (per il motivo precedentemente spiegato) ottenendo così la seguente chiave: 6b64756b04.
Ovviamente, questi sono dati d’esempio (non reali) utilizzati per dimostrare la validità dell’algoritmo.
Le nostre Conclusioni
Non si può evitare, in conclusione, di segnalare che le operazioni dei progettisti sono carenti sotto diversi aspetti:
1) Legare la chiave WPA a dati pubblicamente conoscibili. Chiunque può usare uno sniffer (kismet o airodump) per ricavare ESSID e MAC Address delle reti Fastweb Pirelli (tra l’altro, l’ESSID viene rivelato già dal software di gestione delle reti wireless, senza necessità di un approccio attivo di wardriving). Legare la chiave a informazioni interne del router/modem non deducibili da alcuna combinazione di MAC ed ESSID sarebbe stata una scelta più accurata. Usare algoritmi casuali sarebbe la scelta ideale . Ovviamente, l’uso di casualità deve essere tale da rendere innocuo ogni tentativo di bruteforcing. Ad esempio, rendere del tutto random il quinto byte della chiave non ha senso (un bruteforce su 256 valori si completa in tempi inferiori al secondo su molti sistemi). Selezionare in maniera totalmente random i 20 byte della sequenza, questo sì avrebbe impedito l’approccio alla base di quest’articolo.
Una soluzione più semplice, ma altrettanto efficace, sarebbe stata quella di legare la chiave WPA non al MAC della scheda 802.11 dell’HAG, ma a quello dell’interfaccia Ethernet (ogni scheda Ethernet ha un MAC univoco). Non essendoci alcun legame tra la scheda WiFi e quella Ethernet all’interno dello stesso Hag, la scelta avrebbe impedito una reperibilità on the fly dei dati necessari all’algoritmo, annullando la vulnerabilità concreta connessa alla scoperta dell’algoritmo.
2) Fare il deployment in produzione di router con un firmware con i simboli presenti. La totale mancanza di nomi delle funzioni e variabili avrebbe reso fortemente complicato se non quasi impossibile il lavoro di analisi del firmware. L’unico approccio utilizzabile in tal caso, sarebbe stata la simulazione del codice MIPS su un sistema di emulazione, al fine di dedurre il “punto” in cui effettivamente veniva scritta in memoria la chiave di rete, e un successivo traceback nel codice. Si sarebbe potuto anche far uso di tecniche di offuscamento del codice e di meccanismi anti-debugging, tipici di software commerciali.
3) Aver generato password di soli 10 simboli, tra l’altro cifre esadecimali. Ad una analisi fortemente sommaria è possibile restringere lo spazio di ricerca a 256 alla quinta valori (256 valori possibili in un byte per 5 byte, che danno luogo a 10 cifre se stampati in esadecimale). Analisi più accurate rivelano che i valori dei byte rappresentano lettere dell’alfabeto in minuscolo (a-z) e numeri da 00 a 09 della tabella ASCII. Le possibili combinazioni sono quindi: 26 lettere dell’alfabeto più 10 numeri per un totale di 36 simboli che ognuna di queste coppie può assumere. Ciò significa che in totale abbiamo 36^5 combinazioni possibili, cioè 60466176 combinazioni ~ 60 Milioni. Avendo a disposizione l’handshake di rete, diventa fattibile (avendo un dizionario, banalmente creabile) l’attacco a forza bruta. Questo numero sembra molto alto, ma con la potenza di calcolo che oggi si ha a disposizione è possibile per chiunque testare tutto lo spazio chiavi in meno di un giorno. Considerando la media di 1300 keys/s ci vorranno ~ 13 h nel peggiore dei casi. Se poi distribuiamo il carico di lavoro su più computer (possibilmente più potenti) riusciremo ad avere la chiave nel giro di qualche ora, o addirittura di qualche decina di minuti se si utilizza la potenza di calcolo delle GPU di potenti schede video.
4) Sarebbe buona regola da parte dell’Assistenza Fastweb invitare i nuovi Clienti a modificare il prima possibile le configurazioni inziali accessibili dalla MyFastPage. La chiave di rete predefinita è utile solo inizialmente per testare il corretto funzionamento della linea ADSL e dei vari PC connessi all’HAG, dopodichè deve essere sostituita con una più robusta. L’opzione che mantiene l’accesso automatico dai PC connessi a quella rete va assolutamente evitato.
Dalla MyFastPage è possibile reperire moltissime informazioni sensibili del Cliente, ovvero: Cognome e Nome dell’intestatario, Codici bancari, Codice fiscale (e quindi data di nascita e luogo), Indirizzo e Numero civico dell’abitazione, Numero di telefono fisso ed eventualmente mobile, le fatture associate al conto Fastweb con i relativi dettagli alle chiamate e costi, e i MAC address dei PC connessi alla rete.
Fortunatamente, Fastweb mette a disposizione un modo abbastanza semplice per evitare questi spiacevoli inconvenienti. Modificare la password di default. Infatti dalla MyFastPage->Gestione Abbonamento->Configura WiFi con una semplice procedura è possibile modificare la chiave predefinita. Ma in quanti lo fanno? Lavorando nell’ambito delle reti, per esperienza personale vi possiamo dire che Fastweb copre una buona fetta di mercato per quanto riguarda la fornitura dei servizi internet nelle aziende; il 70% di queste lascia le impostazioni WiFi di default, mentre il 95% lascia l’accesso automatico alla MyFastPage con le password di default.
Noterete che la situazione non è per niente banale o da sottovalutare.
Ci teniamo a sottolineare che più volte abbiamo sollecitato personalmente il suddetto Provider a prendere provvedimenti a riguardo, ma le nostre segnalazioni sono state del tutto snobbate, e la risposta più intelligente è stata: “Gentile cliente, la ringraziamo per il suo contributo ma i nostri clienti possono modificare la chiave wifi dalla MyFastPage.”
Siamo i primi a consigliare (ove possibile) la modifica della chiave di default a prescindere dal gestore, non solo perché lo riteniamo opportuno, ma anche perché la nostra etica ce lo impone.
Siamo convinti che la sicurezza informatica dipende principalmente dal fattore umano. Abbiamo tentato di far sentire la nostra voce a Fastweb, ma non abbiamo ottenuto risposta nè interesse al problema. Per questo motivo abbiamo deciso di pubblicare questo articolo, per informare le persone di una falla di sicurezza che altrimenti resterebbe ad esclusivo beneficio di una ristretta cerchia di savants, a tutto danno del grande pubblico. Auspichiamo che la pubblicazione di questo articolo incentivi le persone a salguardare i propri dati personali evitando così di essere accusati di reati commessi da crackers informatici che sfruttano la nostra rete in modo illegale.
Auspichiamo inoltre che i Provider Italiani possano prendere i giusti provvedimenti a riguardo, progettando sistemi di sicurezza molto più sicuri di quelli attuali.
**** White Hats ****
Io fossi in voi non l’avrei pubblicata sta cosa..
cmq ottimo lavoro. Devo dire che il procedimento che avete usato per scoprire l’algoritmo è abbastanza ovvio, mi chiedo che livello di QI ci sia fra i progettisti Fastweb.
Vorrei chiedere un’informazione: come avete fatto a procurarvi il firmware originale? Io so abbastanza usare IDA Pro (anche se solo con x86, con MIPS dovrei partire da zero) e un giorno mi era venuto l’uzzolo di provare quello che alla fine voi avete realizzato, ma mi sono bloccato in questo problema banale.
Se lo conoscete, mi date anche un link per il firmware originale dell’alice W-Gate? grazie.
Il Tool per il calcolo è disponibile qui:
http://www.oversecurity.net/2010/03/26/wpa-recovery-la-chiave-wpa-della-tua-rete-fastweb/
ancora co sto cacchio di FW?? l’argomento è oramai esaurito!!!!
Serve roba inedita, servono info in merito all’algoritmo Alice!!!!!!!
infatti ottimo lavoro, almeno la gente cambierà la pass si spera…comunque il nostro amico stop ha ragione “Serve roba inedita, servono info in merito all’algoritmo Alice”…fateci sapè sempre qui eh…
in questi giorni mi sono fatto una full immersion di mips, e sono giunto a queste conclusioni:
il SSID della rete Alice è generato in base al numero seriale della smart card (infatti ho letto che il wifi non si abilità se non c’è la smart card inserita).
la password viene creata in base all’username, con un procedimento che chiama in causa il DES.
DES è craccabile se non sbaglio. Però rimane il problema della relazione fra username e serial number della magic card. non essendo possessore di un router alice, mi sa che mi blocco qua.
valgono le stesse considerazioni di questo articolo sulla sicurezza: potevano prendersi la briga di strippare i simboli, così è veramente troppo facile ;)
adesso studierò più nel dettaglio l’algoritmo, perché c’è ancora una via: l’algoritmo usato da fastweb commette la leggerezza di ridurre drasticamente il numero di chiavi possibile (32^5, tutte le chiavi possibili creano un dizionario da 300 mega, il mio computer potrebbe craccare una password fastweb in 5 ore e mezza). Vediamo se anche qua succede qualcosa di simile.
mi correggo. sembra che con “username” i programmatori della telecom intendano SSID… wow!
scusate…un modo per calcolare l’md5 in modo facile e automatico??
Di assembler non so nulla(dovrei studiarlo e lo farò) per questo a me i conti non tornano…
anche effettuando i calcoli online dell’ssid posto qui in esempio “00193EA1B2C3” ottengo 367b6610b0f324cd06547aaee07e9c28…sicuramente non è il lavoro svolto dalle 3 funzioni md5init,update e final…
grazie a chi mi potrà aiutare…
Tutto molto interessante,peccato che le chiavi ricavate non corrispondano(testati 3 pirelli e 2 telsey)
Errata corrige:1pirelli e’ andato
Chiunque sia interessato al codice di uno script che sfrutta questo algoritmo, lo può trovare sul mio sito all’indirizzo http://www.evilsocket.net/1126/script-per-il-calcolo-della-chiave-wpa-nei-router-fastweb-pirelli.html .
Complimenti ai ricercatori! ^^
PS: E ora si lavora su Alice ;)
Ora anche lo script per Alice è presente su http://www.evilsocket.net/1173/script-per-il-calcolo-della-chiave-wpa-dei-router-alice-gate-voip-2-plus-wi-fi.html
Cosa non si fa per il pagerank…
Del pr non me ne può fregare di meno fidati, mi interessa solamente che le cagate di casa Fastweb e casa Telecom vengano allo scoperto non solo a livello teorico (grazie alla crew di questo sito) ma anche a livello pratico.
E’ ora che queste società capiscano che la politica security by obscurity non può più funzionare, e soprattutto è ora che la smettano di truffare i loro clienti vendendogli (in comodato d’uso tra l’altro) apparati che spacciano come sicuri ma che, come abbiamo visto, sicuri non lo sono.
Gradirei inoltre, caro il mio “foobar”, che se tu avessi qualcosa da dire al sottoscritto, non ti nascondessi dietro un nickname fasullo, come io non ho nulla da nascondere e pubblico liberamente le mie idee ed i miei commenti, non vedo perchè non lo possa fare anche tu … tranquillo, credo che qui nessuno ti mangerebbe ;)
Provato con 4 FW e non ne funziona una di chiave, ergo: metodo SOLA!!! Come dicono a Roma.
Just want to say your this blog is very good kinda awesome. thanks
Non mi sono molto chiari il punto 3 e il punto 4:
ho 6 coppie di cifre e gli converto in 6byte. poi faccio l MD5Update di un array contenente questi 6byte, giusto? ne ottengo un hash(16byte). cosa ne faccio dell’hash? faccio la somma byte a byte di un vettore 20byte con ogni byte inizializzato a 0x14? e poi faccio l’md5update dei 20 byte?
Ciao! anche a me i punti 3 e 4 non sono molto chiari, sto cercando di implementare l’algoritmo spiegato in java. Ma non ho ben capito se devo fare l’md5 dei 6, poi al risultato accodo i 20 e rifaccio l’md5? o devo fare l’md5 prima de 6, poi dei 20, unisco i risultati e lo rifaccio di tutto?
potreste spiegarlo un pochino più dettagliato.
Grazie e complimenti per il lavoro fatto ;)
probabilmente è un po tardi per fare richieste ma anche io ho problemi nel calcolo dell’MD5 non ho capito bene la tecnica utilizzando tool che girano sul web l’md5 viene diverso come mai?
come posso crakkare fastweb-1-6hVAtDPkSVci
Nicola 6 un coglione o che? Hai letto l’articolo dall’inizio?
io casa mia ce una retesi kiamava teletu_36101y0028429. dopo hanno cambiato la ssid diventato cosi teletu wify e stata cambiata pure la password si pu craccre questa rete teletu wify grazie.? se e si mi dai la programma.
hahaha
salve a tutti , grazie per questa spiegazione.
la mia domanda e’ : e’ possibile che possano essere create due chiavi WPA dallo stesso MAC? smanettando con vari tool online , mi sono imbattuto in questo problema. su un sito la chiave e’ una , su un altro la chiave cambia!
ma l’algoritmo non dovrebbe sputare fuori solo un risultato?
grazie
No puedo aceder
Grazie dell’interessante articolo.
Mi hanno appena sostituito vecchio HAG Fastweb senza WiFi (Telsey) con nuovo (Pirelli) dotato anche di WiFi.
Appena riesco ad accedere alla configurazione via MyFastPage (che per ora non funziona ma ci stanno lavorando, almeno così dicono) la prima cosa che farò sarà CAMBIARE LA PWD WPA … e sarà bella lunga!
Grazie ancora,
Paolo
Magnificent beat ! I wish to apprentice while you amend your web site, how could i subscribe for a blog site?
The account helped me a acceptable deal. I had been tiny bit acquainted of this your broadcast
offered bright clear concept
Write more, thats all I have to say. Literally, it seems as though
you relied on the video to make your point. You obviously know what youre talking about, why throw away your intelligence on just
posting videos to your site when you could be giving us something enlightening to
read?
This is a good chance to avail this amazing Scan Resource.
Other people, nevertheless, count on their car will have
to additional significantly.
Please try for bsnl routers also thanxx
If you want to obtain a great deal from this
piece of writing then you have to apply such strategies to your won web site.
Salve, ho letto l’articolo e devo dire che è decisamente ben fatto! Complimenti.
Lo stesso non posso dire di Fastweb, hehe.
Volevo chiedere, come è possibile calcolare l’hash md5 dei 6 byte del MAC address tramite bash? Ho provato a dargli in pasto i 6 byte sia come normale stringa
echo “AABBCCDDEEFF” | md5sum
sia come byte in esadecimale
echo “\xAA\xBB\xCC\xDD\xEE\xFF” | md5sum
Ma entrambi non sono corretti.