Password Generatore di elenchi, permutazioni e password lunghe

2

Mi stavo chiedendo quale potesse essere un modo per generare un elenco in cui fossero le password:

CorrectHorseBatteryStaple
BanjoTurtleNinjaHobo
PizzaSurfMotherMetal
etc...

Ho già giocato un po 'con il crunch ma non sono riuscito a trovare un modo per selezionare gruppi di parole da permutare. Ho pensato di scrivere una sceneggiatura in una lista di parole inglesi (senza contare gli articoli e così via) e ho preso 3-5 parole a caso e poi le ho lanciate in increspature per le permutazioni, ma ho subito capito che la worldlist risultante avrebbe raggiunto in fretta una dimensione oltre utile.

Forse c'è un modo per generare solo una frazione delle permutazioni per ogni set di parole, la lista non sarebbe completa ma almeno potrebbe essere utilizzabile.

diciamo, selezionando 4 parole a caso dalle prime 2000 parole più usate (non considerando articoli e simili) e permutando quelle 4 parole (o 3 o 5).

Esecuzione di alcuni numeri:

combinations of 4 words out of a group of 2000: 664,668,499,500 ( 664 Bilions ).
permutations of 4 words: 4! = 24

24 * 664,668,499,500 = 15,952,043,988,00 ( 15,952 Bilions ).

E ciò significherebbe qualcosa come un po 'più di 30 PB di wordlist. (Ho assunto 7 byte per ogni parola). Troppo.

Anche prendere metà di quelle combinazioni significherebbe avere 15 PB di materiale da esaminare.

Questi sono 50 anni di cracking non-stop della password a un ritmo di 10000 parole / s. No, grazie.

C'è un'idea più intelligente? Sto cominciando a pensare che questo tipo di password siano quasi irriconoscibili.

    
posta WhiteEyeTree 18.05.2016 - 17:11
fonte

1 risposta

1

Hai ragione al 100% che l'archiviazione di tutte le possibili permutazioni non si riduca molto bene.

Un modo efficace per generare tutte le passphrase possibili da una lista di parole di origine "al volo" (senza dover memorizzare il risultato) è usando il princeprocessor :

$ cat wordlist.txt
Correct
Horse
Battery
Staple

$ pp64 --elem-cnt-min=4 <wordlist.txt | head
HorseHorseHorseHorse
HorseHorseHorseStaple
HorseHorseStapleHorse
HorseStapleHorseHorse
StapleHorseHorseHorse
HorseHorseStapleStaple
HorseStapleHorseStaple
StapleHorseHorseStaple
HorseStapleStapleHorse
StapleHorseStapleHorse

Per impostazione predefinita, la lunghezza massima della password che verrà generata è di 16 caratteri. Per il tuo caso d'uso, probabilmente vorrai eseguirlo (in modo che quanto sopra funzionerà):

--- pp.c    2018-01-06 14:55:52.259441280 -0900
+++ pp.c.new    2018-01-14 18:20:51.162651928 -0900
@@ -29,7 +29,7 @@
 #define IN_LEN_MAX    32
 #define OUT_LEN_MAX   32 /* Limited by (u32)(1 << pw_len - 1) */
 #define PW_MIN        1
-#define PW_MAX        16
+#define PW_MAX        32
 #define ELEM_CNT_MIN  1
 #define ELEM_CNT_MAX  8
 #define WL_DIST_LEN   0

... e ricompila:

$ make clean
rm -f pp32.bin pp64.bin pp32.exe pp64.exe pp32.app pp64.app

$ make
gcc   -W -Wall -std=c99 -O2 -s -m64 -DLINUX   -o pp64.bin pp.c mpz_int128.h

$ ls -la pp64.bin
-rwxr-xr-x 1 user user 22912 Jan 14 18:27 pp64.bin

Una caratteristica killer di princeprocessore è la sua capacità di riprendere da dove è stato interrotto utilizzando il flag -s , se per qualche motivo devi interrompere il processo. Memorizza un valore di ripristino nel file "pp.save" all'uscita, e tale valore può essere utilizzato per riprendere esattamente dove è stato interrotto, anche in miliardi di ipotesi. Ciò rende il suo valore su una grande lista di parole statica ancora migliore.

    
risposta data 15.01.2018 - 04:32
fonte

Leggi altre domande sui tag