DISCLAIMER : non sono né un utente JtR né un programmatore Perl. Questa risposta che segue è un prodotto di anni di formazione in Google-Fu da solo, che combina alcune risposte dai newsgroup e qualche documentazione JtR.
Le regole di John the Ripper (JtR) non supportano più parole di input.
L'unica eccezione è con modalità single crack dove gli operatori 1
, 2
e +
control se altri comandi vengono applicati rispettivamente al primo, al secondo o ad entrambe le parole, quando si prova contro una coppia di parole, come ad esempio il nome e il cognome.
In alternativa, è possibile reindirizzare l'output di uno script esterno (gestendo le combinazioni di parole) in john --stdin
o in un file (e utilizzarlo come elenco di parole con JtR
). Fare così ovviamente rallenterà il processo in quanto il numero di possibili combinazioni aumenta in modo esponenziale con il numero di argomenti di input, quindi probabilmente vale la pena provare solo su elenchi di parole veramente brevi.
Ecco alcuni script Perl che è possibile adottare per soddisfare le proprie esigenze (o utilizzare così com'è?):
Combinazioni di due parole:
#!/usr/bin/perl
while (<>) {
chop;
$w[$#w + 1] = $_;
}
foreach $a (@w) {
foreach $b (@w) {
print "$a$b\n";
print "$a $b\n";
}
}
Combinazioni di tre parole:
#!/usr/bin/perl
while (<>) {
chop;
$w[$#w + 1] = $_;
}
foreach $a (@w) {
foreach $b (@w) {
$ab = "$a$b";
$a_b = "$a $b";
foreach $c (@w) {
print "$ab$c\n";
print "$a_b $c\n";
}
}
}
Combinazioni di quattro parole:
#!/usr/bin/perl
while (<>) {
chop;
$w[$#w + 1] = $_;
}
foreach $a (@w) {
foreach $b (@w) {
$ab = "$a$b";
$a_b = "$a $b";
foreach $c (@w) {
$abc = "$ab$c";
$a_b_c = "$a_b $c";
foreach $d (@w) {
print "$abc$d\n";
print "$a_b_c $d\n";
}
}
}
}