Tool Keygen WPA default Zyxel (Home&Life-Infostrada-Tiscali)

J4ck0xFF

Utente Electrum
20 Agosto 2008
261
10
110
146
Ultima modifica:
Ciao a tutti, vi volevo segnalare il seguente codice su github:

I router Zyxel ( modelli VMG8823, VMG8825 ) che hanno come SSID :

"Home&Life SuperWiFi-xxxx" (lunghezza password 16 caratteri)
"Infostrada-xxxxxx" (lunghezza password 10 caratteri)
"TISCALI_xxxx" (lunghezza password 10 caratteri)

generano la password di default della WPA usando il proprio codice seriale (il codice seriale, è un codice identificativo del router, non è la password wpa! ) . Il problema è che tale codice è facile da indovinare perchè seguono un pattern abbastanza semplice:

"Home&Life SuperWiFi-xxxx"/"Home&Life 2.4GHz" Range seriali:
S182V00000000-S182V99999999
S192V00000000-S192V99999999

"Infostrada-xxxxxx" Range seriali:
S172V00000000-S172V99999999
S182V00000000-S182V99999999

"TISCALI_****" Range seriali:
S172V00000000-S172V99999999
S182V00000000-S182V99999999


Il primo carattere è sempre un 'S'.
  • I due caratteri successivi dovrebbero essere l'anno di produzione del router, nell'esempio di sopra abbiamo 2017 ,2018 e 2019.
  • La quarta e quinta lettera ('2V') è costante .
  • Il resto della stringa varia da router a router
Partendo dal codice golang che è già stato implementato, dovete modificarlo in modo da fare un bruteforce nel range dei codici seriali che vi ho messo sopra , calcolare la corrispondente password WPA usando le funzioni che sono già state implementate (in base al tipo di rete dovete scegliere se creare chiavi da 10 o 16 caratteri, guarda sopra per dettagli) e salvarle tutte le password generate su un file di testo. Se tale file di testo venisse usato insieme ad Hashcat ed un handshake catturato, è possibile risalire alla password giusta in meno di mezz'ora.


Possibili risoluzioni da suggerire a Zyxel:
  • Utilizzare un seriale di tipo alfanumerico casuale anzichè puramente numerico con un pattern semplice.
  • Offuscare il codice.
N.B: Per ogni range, vengono generate circa 1Gb di chiavi, non vi preoccupate se il programma macina per un po', se volete aprire il file di testo vi consiglio di farlo con il programma "glogg".
Le reti infostrada sono quelle dei router nuovi, per i router vecchi, che creano la rete con SSID InfostradaWiFi-****** , la password WPA di default è "2"+"MAC router".

EDIT:
Il modello VMG8823-B50B ,come fatto osservare nel seguente commento, trasmette il proprio seriale nelle probe response.
 
Ciao J4ck0xFF
ho provato a scaricare il codice relativo a questo post per cercare di capire con quale algoritmo viene calcolata la pass partendo dal seriale ma non avendo basi di programmazione non ne sono uscito vincitore. Facendo riferimento alla tua volontà di non pubblicare la pappa pronta, ti chiedo almeno la cortesia di spiegare a me e a quelli come me i singoli passaggi dal serial alla wpa, tutto questo per trovare un altro metodo alla mia portata per generare delle wordlist da usare all'occasione. Ti ringrazio in anticipo e buon lavoro.
 
Ciao,
premetto che non ho molta esperienza.
leggendo il tuo posto mi sono soffermato su Hashcat, che tipo di programma è? <che cosa ti permette di fare?
Per l'esperienza che ho per il momento, dal tuo post mi verrebbe in mente di utilizzare crunch impostando come valore minimo e massimo 13, ma dandogli come pattern S182V@@@@@@@@
e poi userei airodump-ng per avere un file .cap sul quale potrei lavorare, successivamente aircrack-ng per poter utilizzare il file di testo generato con crunch.
Magari nel mentre che uso airodump-ng si potrebbe eseguire anche una attacco di deautenticazione con aireplay-ng in modo da disconnettere un dispositivo dalla rete, nella speranza che si riconnetta per catturare un handshake.

sicuramente sto sbagliando qualcosa, ma mi piacerebbe sapere dove e migliorare :)
 
Ultima modifica:
Hashcat è uno dei più flessibili software di decriptazione hash. Ne accetta più di 200 tipi compreso quello che può interessare per il controllo della WPA del vostro router wifi :D. Veloce quanto basta e sopratutto GRATISSSSSSSS. Inoltre può sfruttare non solo la CPU del tuo PC ma anche la velocissima GPU.
Unico neo non accetta direttamente il file .cap ottenuto da airodump-ng, ma devi prima convertirlo in un formato a lui piacente. (trovi una utility che fa questo, qui https://hashcat.net/cap2hccapx/.
Riguardo la password list che tu e io vogliamo creare, la parte iniziale non è sicuramente S182V e anche se fosse le combinazioni casuali successive ti porterebbero via una buona parte della tua vita su questa terra prima di arrivare ad un risultato.
Per ogni buon conto un ragazzo partendo dalla analisi del firmware di questi modem è risalito a come la wpa di default sia generata dal numero seriale del modem stesso passando da un algoritmo di calcolo. (Analisi simili erano state fatte in passato per altri tipi di modem con ottimi risultati).
Rimango anche io in attesa di un aiuto non avendo conoscenze sufficenti per analizzare il problema.
Grazie e se hai bisogno di altri chiarimenti riguardo le reti wifi, scrivi.
 
Ultima modifica:
Hashcat è uno dei più flessibili software di decriptazione hash. Ne accetta più di 200 tipi compreso quello che può interessare per il controllo della WPA del vostro router wifi :D. Veloce quanto basta e sopratutto GRATISSSSSSSS. Inoltre può sfruttare non solo la CPU del tuo PC ma anche la velocissima GPU.
Unico neo non accetta direttamente il file .cap ottenuto da airodump-ng, ma devi prima convertirlo in un formato a lui piacente. (trovi una utility che fa questo, qui https://hashcat.net/cap2hccapx/.
Riguardo la password list che tu e io vogliamo creare, la parte iniziale non è sicuramente S182V e anche se fosse le combinazioni casuali successive ti porterebbero via una buona parte della tua vita su questa terra prima di arrivare ad un risultato.
Per ogni buon conto un ragazzo partendo dalla analisi del firmware di questi modem è risalito a come la wpa di default sia generata dal numero seriale del modem stesso passando da un algoritmo di calcolo. (Analisi simili erano state fatte in passato per altri tipi di modem con ottimi risultati).
Rimango anche io in attesa di un aiuto non avendo conoscenze sufficenti per analizzare il problema.
Grazie e se hai bisogno di altri chiarimenti riguardo le reti wifi, scrivi.

1)Quindi hash potrei usarlo per il file che genera airodump-ng (ovviamente riconvertito nel formato compatibile)?

2)e perché la parte iniziale delle password non è S182V?
so che il 18 è in base all'anno e che quindi può cambiare

3)e invece per la teoria sull'handshake? che mi dici?
 
N.B.2: Le reti infostrada sono quelle dei router nuovi, per i router vecchi, che creano la rete con SSID InfostradaWiFi-****** , la password WPA di default è "2"+"MAC router".

  • Il primo carattere è sempre un 'S'.
  • I due caratteri successivi dovrebbero essere l'anno di produzione del router, nell'esempio di sopra abbiamo 2017 ,2018 e 2019.
  • La quarta e quinta lettera ('2V') è costante .
  • Il resto della stringa varia da router a router

Ciao,
premesso che probabilmente sono io ad aver capito male.

A casa ho un router standard Infostrada da qualche hanno con SSID "InfostradaWiFi-******". Per curiosità ho controllato la wpa di default, però non inizia per "S", i due caratteri successivi non indicano l'anno in quanto uno è una lettera e il quarto e quinto carattere non sono "2V".

Cosa mi sfugge?

(Non ho capito che significa "2"+"MAC router")
 
Ultima modifica:
Basterebbe leggere attentamente quello che c'è scritto nel primo post.

1) la lettera S, i due numeri successivi e i 2V non sono riferiti alla password del modem ma al suo numero seriale.

2) 2+MAC, fa riferimento ad una vulnerabilità dei modem infostrada di almeno 5 o sei anni fa (ma qualcuno si trova ancora) per cui leggendo il MAC da lui trasmesso (con airodump-ng per esempio) e aggiungendo davanti il numero 2, avevi la pass wifi già bella e pronta.
Trovi un vecchio post anche su questo forum https://www.inforge.net/forum/threads/craccare-password-infostradawifi-in-2-minuti.436501/

Altra vulnerabilità dei vecchi infostrada poco conosciuta e scoperta con molte mie difficoltà, per un certo periodo di tempo uscivano tutti con lo stesso PIN wps.
Ciao e alla prossima
 
  • Mi piace
Reazioni: J4ck0xFF
Ultima modifica:
Ciao J4ck0xFF
ho provato a scaricare il codice relativo a questo post per cercare di capire con quale algoritmo viene calcolata la pass partendo dal seriale ma non avendo basi di programmazione non ne sono uscito vincitore. Facendo riferimento alla tua volontà di non pubblicare la pappa pronta, ti chiedo almeno la cortesia di spiegare a me e a quelli come me i singoli passaggi dal serial alla wpa, tutto questo per trovare un altro metodo alla mia portata per generare delle wordlist da usare all'occasione. Ti ringrazio in anticipo e buon lavoro.
ciao, scusa il ritardo nella risposta ma ultimamente sono stra impegnato.Allora, l'unica cosa che devi modificare è questa riga nel main.go:


fmt.Println(zykgen.Wpa(args.Serial, args.Length, cocktail))
questa riga và a chiamare la funzione Wpa, passandogli come argomenti il seriale, la lunghezza della password da generare ed il "cocktail" che è solo un numero che indica il tipo di algoritmo da usare (per noi è sempre 2), tale funzione ritorna la chiave wpa che viene poi stampata a video. Metti questa funzione all'interno di un ciclo for, in modo da passare ogni volta un seriale diverso alla funzione wpa, prendi il risultato che ti restituisce, e lo vai a salvare in un file di testo anziché stampare a video. I passaggi che fa sono abbastanza complicati, per farti capire non sono passaggi che puoi fare su un foglio di carta, il consiglio che ti dó è quello di capire come usare la funzione che è già stata scritta. Se vedo che c'è altra gente interessata al codice, lo posso pubblicare.
Messaggio unito automaticamente:

1)Quindi hash potrei usarlo per il file che genera airodump-ng (ovviamente riconvertito nel formato compatibile)?

2)e perché la parte iniziale delle password non è S182V?
so che il 18 è in base all'anno e che quindi può cambiare

3)e invece per la teoria sull'handshake? che mi dici?
occhio che il seriale è un numero identificativo del router, stampato sull'etichetta dove è anche presente la password ma sono diverse, ma è ricavabile da quest'ultimo con l'algoritmo che è stato implementato nel codice che ho linkato
 
Grazie mille J4ck0xFF, purtroppo come ti avevo già detto, di programmazione sono a zero o poco più. Per ogni buon conto un mio collega gentilissimo e disponibilissimo, dopo un esame del problema mi ha modificato il codice e sono riuscito già a generare tutte le wordlist dedicate (già testate su diversi handshake con risultato positivo).
Ancora grazie e alla prossima.
 
Ultima modifica:
@J4ck0xFF se tu riuscissi a pubblicare il codice mi faresti un gran favore, purtroppo Golang non rientra ancora nelle mie competenze:alesisi:
modifica il main.go con questo e dovrebbe bastare
(Da usare solo a scopo informativo su una rete di cui avete il permesso di entrare mi raccomando), poi googola, compila il codice e chiami dal prompt per esempio nel modo seguente:
Codice:
zykgen.exe -c -l 10 182000000000 182000000010
#và ad usare l'algoritmo "cosmopolitan", creando password da 10 caratteri (e quindi per i router Infostrada/Tiscali, per gli Home&Life devi mettere 16), generando chiavi il cui seriale và da S182V00000000 ad S182V00000010.
Messaggio unito automaticamente:

Grazie mille J4ck0xFF, purtroppo come ti avevo già detto, di programmazione sono a zero o poco più. Per ogni buon conto un mio collega gentilissimo e disponibilissimo, dopo un esame del problema mi ha modificato il codice e sono riuscito già a generare tutte le wordlist dedicate (già testate su diversi handshake con risultato positivo).
Ancora grazie e alla prossima.
Sono abbastanza sicuro che la probabilità di successo si aggiri sul 100%, sono contento tu sia riuscito lo stesso a modificare il codice, e visto che potrebbe servire in futuro a qualcun altro ho aggiunto il main modificato a questo post.
 
Ultima modifica:
Ciao a tutti, vi volevo segnalare il seguente codice su github:

I router Zyxel ( modelli VMG8823, VMG8825 ) che hanno come SSID :

"Home&Life SuperWiFi-xxxx" (lunghezza password 16 caratteri)
"Infostrada-xxxxxx" (lunghezza password 10 caratteri)
"TISCALI_xxxx" (lunghezza password 10 caratteri)

generano la password di default della WPA usando il proprio codice seriale (il codice seriale, è un codice identificativo del router, non è la password wpa! ) . Il problema è che tale codice è facile da indovinare perchè seguono un pattern abbastanza semplice:

"Home&Life SuperWiFi-xxxx"/"Home&Life 2.4GHz" Range seriali:
S182V00000000-S182V99999999
S192V00000000-S192V99999999

"Infostrada-xxxxxx" Range seriali:
S172V00000000-S172V99999999
S182V00000000-S182V99999999

"TISCALI_****" Range seriali:
S172V00000000-S172V99999999
S182V00000000-S182V99999999


N.B: Per ogni range, vengono generate circa 1Gb di chiavi, non vi preoccupate se il programma macina per un po', se volete aprire il file di testo vi consiglio di farlo con il programma "glogg".

N.B.2: Le reti infostrada sono quelle dei router nuovi, per i router vecchi, che creano la rete con SSID InfostradaWiFi-****** , la password WPA di default è "2"+"MAC router".

  • Il primo carattere è sempre un 'S'.
  • I due caratteri successivi dovrebbero essere l'anno di produzione del router, nell'esempio di sopra abbiamo 2017 ,2018 e 2019.
  • La quarta e quinta lettera ('2V') è costante .
  • Il resto della stringa varia da router a router
Partendo dal codice golang che è già stato implementato, dovete modificarlo in modo da fare un bruteforce nel range dei codici seriali che vi ho messo sopra , calcolare la corrispondente password WPA usando le funzioni che sono già state implementate (in base al tipo di rete dovete scegliere se creare chiavi da 10 o 16 caratteri, guarda sopra per dettagli) e salvarle tutte le password generate su un file di testo. Se tale file di testo venisse usato insieme ad Hashcat ed un handshake catturato, è possibile risalire alla password giusta in meno di mezz'ora.

Non vi posto direttamente il codice per evitare problemi che sinceramente ne ho già troppi:alesisi:, ma se sapete programmare è una cosa veloce da fare e vi posso confermare che funzia, indi .. se avete tali router, cambiate la password di default!.

EDIT: il main modificato lo trovate qua
(Da usare solo a scopo informativo su una rete di cui avete il permesso di entrare mi raccomando)
Beh...non avresti dovuto spiegarlo nei minimi particolari, può essere vista da gente malintenzionata, guida utile e dettagliata ma ricordo che simulare il tutto realmente senza autorizzazione del soggetto interessato è contro la legge
 
Beh...non avresti dovuto spiegarlo nei minimi particolari, può essere vista da gente malintenzionata, guida utile e dettagliata ma ricordo che simulare il tutto realmente senza autorizzazione del soggetto interessato è contro la legge
No non penso.., o meglio ha lo stesso peso di un arp poisoning, pixie dust, sql injection, buffer overflow ecc.., inoltre questa informazione è già alla portata dei malintenzionati (verificato su gpuhash.com) e se la mia porta di casa è poco sicura, vorrei saperlo. In ogni modo possiamo aprire un thread separato se vuoi, così non andiamo offtopic
 
No non penso.., o meglio ha lo stesso peso di un arp poisoning, pixie dust, sql injection, buffer overflow ecc.., inoltre questa informazione è già alla portata dei malintenzionati (verificato su gpuhash.com) e se la mia porta di casa è poco sicura, vorrei saperlo. In ogni modo possiamo aprire un thread separato se vuoi, così non andiamo offtopic
Tranquillo, non rischi nulla (a meno che tu non sia il peggior criminale informtico ma non mi sembra il cas...FBI OPEN UP!!!), comunque ottima spiegazione per il metodo usato
 
  • Mi piace
Reazioni: J4ck0xFF
modifica il main.go con questo e dovrebbe bastare
(Da usare solo a scopo informativo su una rete di cui avete il permesso di entrare mi raccomando), poi googola, compila il codice e chiami dal prompt per esempio nel modo seguente:
Codice:
zykgen.exe -c -l 10 182000000000 182000000010
#và ad usare l'algoritmo "cosmopolitan", creando password da 10 caratteri (e quindi per i router Infostrada/Tiscali, per gli Home&Life devi mettere 16), generando chiavi il cui seriale và da S182V00000000 ad S182V00000010.
Messaggio unito automaticamente:


Sono abbastanza sicuro che la probabilità di successo si aggiri sul 100%, sono contento tu sia riuscito lo stesso a modificare il codice, e visto che potrebbe servire in futuro a qualcun altro ho aggiunto il main modificato a questo post.


Anzitutto grazie per questo post, sarà per noi una eccellente base di studio per questi modem.
Volevo chiederti solo una cosa, ho installato golang, credo di aver impostato il tutto min modo corretto, se provo a fare il test con il file hello.go tutto apposto, ma se tento di generare il file zykgen.exe ottengo sempre lo stesso errore.
Sono ore, ore e ore che ci provo ma non riesco proprio a compilare questo file.
Dove sbaglio? cosa non ho fatto? non conosco minimamante questo linguaggio di programmazione e non so piu veramente cosa provare.
Qualsiasi aiuto sarà per me prezioso, grazie anticipatamente.
Allego il file.
 

Allegati

  • 2019-09-18_014048.png
    2019-09-18_014048.png
    42.1 KB · Visualizzazioni: 609
Allora spiego cosa ho fatto, ho installato golang su windows7 x64 dal file ufficiale msi.
ho scaricarto tutto il pacchetto di Zyxel VMG8823-B50B WPA Keygen dal link ufficiale, creato la cartella workspace dentro la cartella Go ,
sostituito nel main.go tutto il codice con quello postato qui, è il risultato è quello del primo allegato, poi avevo provato a togliere cd dal main come anche da te suggerito è il risultato è nel seondo allegato.

Adesso non so che fare, forse per via della stanchezza non ho capito il precedente suggerimento, quello di inserire solo il file go.
Grazie anticipatamente per l'aiuto.
 
@Axin Tranquillo, comunque intendevo "go build /cartella/cartella/file.go" (questo in Linux, su Windows dovrebbe essere "go build C:\\cartella\cartella\file.go"), oppure trascina semplicemente il nuovo main.go nel cmd
 
Ultima modifica:
a ok, si richiamare il percorso compreso di file con estenzione, si fatto stesso risultato.
Ho anche provato a usare kali linux, ma haimè non riesco nemmeo a installare golang.

Non riesco a capire perchè non si compila, secondo la mia intuizione, mancano quei pachetti che richiede, cosa che forse su linux non accade, perchè se li va a scaricare direttamente da github.com proprio come da istruzione nella prima parte del main.

(Ovviamente la mia è solo una ipotesi) non ho mai visto questo linguaggio di programmazione.

Codice:
import (
    "fmt"
    "os"
    "strconv"cd

    docopt "github.com/docopt/docopt.go"
    "github.com/luc10/zykgen"
)

EDIT:
Sono riuscito a installarlo su Kali , ma ho lo stesso identico errore, allego il file.
 

Allegati

  • 2019-09-18_023453.png
    2019-09-18_023453.png
    431.5 KB · Visualizzazioni: 312
Ultima modifica:
Non riesco a capire perchè non si compila, secondo la mia intuizione, mancano quei pachetti che richiede, cosa che forse su linux non accade, perchè se li va a scaricare direttamente da github.com proprio come da istruzione nella prima parte del main.
si, quel "cd" era di troppo, comunque è un problema di path sicuramente che hai settato e non riesce a trovare la cartelle che gli servono https://unix.stackexchange.com/questions/494890/cannot-find-package-with-running-go-build
https://stackoverflow.com/questions/27249420/how-do-i-install-requirements-in-go-cannot-find-package

hai scaricato il file con il comando

Codice:
go get github.com/luc10/zykgen/cmd/zykgen

come scritto sul github? altrimenti leggiti un po' di documentazione su come settare il $GOPATH e $GOROOT