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

Ok, grazie per averlo ripristinato .
Questo utente si sta impegnando molto per riuscire a trovare come viene generata la chiave. Vediamo se ci riuscirà.
 
Ultima modifica:
Salve, volevo segnalare che sono riuscito a creare grazie a questo tools due dizionari funzionanti (uno per i modelli del 2018 e l'altro per quelli del 2019).

Ognuno di loro contiene 100.000.000 di WPA e pesa 0.98GB compresso (1,58 GB una voltra estratto)

Li ho testati solamente su vari modelli di Zyxel VMG8825-B50B, con successo.

Link 1 (router con seriale che inizia con 18) https://mega.nz/file/uk8AwQBS#6T6tyQdHuCuJKPvakvAcTbaHZiew7AOXdqgDTW5Y1rg
Link 2 (router con seriale che inizia con 19) https://mega.nz/file/r0kgQaxR#2lhNADiqxb3qJ-94RTyBZtAr4cwF3R3YCLCLL784pjE


Procedura:
- Una volta che avete catturato il .cap contenente l'handshake valido, lo convertite in .haccpx (tramite il comando "cap2hccapx NOME_FILE.cap NOME_FILE.hccapx", oppure esistono tools online, basta scrivere "cap to hccapx"

- Scaricate i binaries di Hashcat da https://hashcat.net/hashcat/

- Mettete i dizionari ed il file haccpx nella cartella di Hashcat che avete appena estratto

- Aprite il terminale dalla cartella di Hashcat ed eseguite:
./hashcat64.bin -m 2500 NOME_FILE.hccapx wpa_keys_182000000000_182099999999_16_V_c.txt (oppure)
./hashcat64.bin -m 2500 NOME_FILE.hccapx wpa_keys_192000000000_192099999999_16_V_c.txt

Con una AMD Radeon RX 480 ho impiegato in media 5 minuti per identificare la password, ad un ritmo di 190.000 password al secondo.

Ovviamente vale la premessa generale che vuole il metodo non funzionante se la password del router è stata modificat
Ottima spiegazione, segnalo che il link relativo all'anno 2019 è offline. Vorrei testarlo. Grazie
 
segnalo che il link relativo all'anno 2019 è offline. Vorrei testarlo. Grazie
puoi generartelo da solo in pochi minuti, un altro po' ci metti di più a scaricarlo che a generarlo
Messaggio unito automaticamente:

Buonasera, nessuno che potrebbe aiutarmi? Ho un file .cap ma non riesco a risalire...
il metodo 2500 non esiste più, ora al suo posto c'è il 22000. Per aiutarti dovresti dire cosa stai facendo e capire dove sbagli. Dal file cap hai estratto la stringa per hashcat?
Ci sono handshake buoni nel file cap?
 
Ultima modifica:
Ciao @selenium e grazie per la risposta. Ho il file .cap con handshake buono. Ho convertito il file .cap in .hccapx.
Sono fermo a questo sto provando ad avviare il zykgen dal sito di git.hub ma non so nemmeno da dove iniziare..
quale stringa devo estrarre per hashcat?
 
Ho convertito il file .cap in .hccapx.
Sono fermo a questo sto provando
qui trovi un thread sul forum di hashcat che spiega che il formato 2500 è deprecato ed ora bisogna usare il metodo 22000 con qualche piccola modifica.
Credo tu stia usando le ultime versioni, quindi ti conviene aggiornarti, perchè il commento che hai linkato è vecchio e non più usabile se non usando le vecchie versioni.
Il tool su github è un po' ostico perchè usa GO, però una volta preparato l'ambiente di compilazione go, la compilazione dovrebbe andare senza problemi e la generazione dei dizionari che vuoi provare è abbastanza rapida con non troppo vecchie cpu
 
Ultima modifica:
Penso di aver installato il tool

go install github.com/luc10/zykgen/cmd/zykgen@latest

go: finding module for package github.com/docopt/docopt.go
go: found github.com/docopt/docopt.go in github.com/docopt/docopt.go v0.0.0-20180111231733-ee0de3bc6815

adesso sono in questa situazione, devo creare il dizionario giusto?

(kali㉿kali)-[~/go/bin]
└─$ ./zykgen
Usage:
zykgen (-m|-n|-c) [-l <length>] <serial>
zykgen -h | --help

quali comandi devo inserire?
 
i comandi di esempio si trovano nel thread
Questo è uno dei tanti dizionari che si possono creare:

zykgen -c -l 10 182000000000 182999999999

tutto dipende da quale router vuoi verificare.
 
Penso di aver installato il tool

go install github.com/luc10/zykgen/cmd/zykgen@latest

go: finding module for package github.com/docopt/docopt.go
go: found github.com/docopt/docopt.go in github.com/docopt/docopt.go v0.0.0-20180111231733-ee0de3bc6815

adesso sono in questa situazione, devo creare il dizionario giusto?

(kali㉿kali)-[~/go/bin]
└─$ ./zykgen
Usage:
zykgen (-m|-n|-c) [-l <length>] <serial>
zykgen -h | --help

quali comandi devo inserire?
C'è una patch da applicare al file main.go, che si trova in questo post non lo ricordavo perchè è passato troppo tempo da quando ho fatto i test
 
Ultima modifica:
ho modificato il file main.go
nelle probe response il serial non è trasmesso in chiaro. Sto provando a generare il dizionario.
Per la singola richiesta seriale mi restituisce un codice. Quando provo a mettere le due stringhe dei seriali non mi da nulla. Dove sbaglio?

┌──(kali㉿kali)-[~/go/bin]
└─$ ./zykgen -c -l 16 S192V00000000
YU77XUPR4FYQY4GT

┌──(kali㉿kali)-[~/go/bin]
└─$ ./zykgen -c -l 16 S192V00000000 S192V9999999
Usage:
zykgen (-m|-n|-c) [-l <length>] <serial>
zykgen -h | --help

Edit1 Ho effettuato la modifica del main go in locale con la funzione nano, ma da quanto ho capito leggendo devo effettuarlo con la funzion go build per la creazione del file .bin. La funzione go build purtroppo mi rilascia degli errori. Sono fermo in questa situazione
 
che errori? questa sera ci provo anch'io ma non credo ci siano stati aggiornamenti dall'ultima volta che ho compilato
 
ho provato con golang 1.19 ed effettivamente provando a ricompilare la seconda volta va in errore, ho risolto cancellando su linux $HOME/.cache/go-build
 
Ultima modifica:
Ciao a tutti, dopo qualche tempo sono tornato su questo thread e ho visto che è "resuscitato" ultimamente.
Dunque mi sono permesso di fare una modifica al main.go già modificato, usando un buffered writer per velocizzare l'output.



Vedi: https://pastebin.com/gJUpMncH

EDIT: Siccome ho reinstallato tutto seguendo la guida in questo thread volevo aiutare chi come me non è riuscito al primo tentativo:

GUIDA
-installare go: https://go.dev/doc/install (ricordarsi di aggiungere alla path la directory di go)
-clonare la repository originale di zykgen,
Codice:
git clone https://github.com/luc10/zykgen
-editare il file main.go in
Codice:
zykgen/cmd/zykgen/main.go
-creare un nuovo modulo per zykgen
Codice:
go mod init zykgen
go mod tidy
(altrimenti non avremo il file go.mod necessario per compilare)
-compilare
Codice:
go build
Volendo si può anche aggiungere il file compilato alla path di linux per renderlo così accessibile da ogni cartella.
Sass:
sudo cp zykgen /usr/local/bin


FATTO ORA POTETE CREARE LE VOSTRE LISTE USANDO I RANGE DI SERIALI
 
  • Mi piace
Reazioni: JunkCoder
Buonasera a tutti, sono molto interessato a questa "scoperta". Ho un router di quelli citati ed effetivamente la serial key è costruita in quel modo ma volevo comprendere meglio delle cose: l'algoritmo in golan genera tutte le chiavi possibili e da queste ricava le password corrispondenti e le mette in un file? Poi dato che Io so programma in cpp volevo replicare il programma appunto in cpp. Ho provato un po a leggere l'articolo dove viene analizzato il software del modem partendo dal codice assembly però non sono riuscito a comprendere come vengono generate le chiavi partendo dalla serial key che penso generi molto semplicemente facendo ogni combinazione possibile di numeri. Qualcuno ha gia provato a replicare il codice in cpp? Magari in quel modo lo capirei meglio. Se qualcuno ha qualche consiglio o ha capito come funziona l'algoritmo anche soltanto in maniera teorica potrebbe aiutarmi?
 
Ragazzi qualcuno che aiuta? Vorrei testare il mio modem Wind3 Hub 02ED74 ma non capisco come settare i parametri per creare la lista con il tool zykgen. Grazie in anticipo
 
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!
Io ho un routerdella Wind3 HUB XXXXXX da tentare di violare, sapresti indicarmi come fare?

P.S
Ovviamente tutto questo sara fatto sul mio router.