Punteros para los conjuntos de reglas de john the ripper

3

He estado revisando la documentación del conjunto de reglas JtR y haciendo poco progreso. Entiendo cómo usarlo para hacer varias permutaciones a partir de una lista de palabras determinada, eso está bien. Sin embargo, estoy tratando de averiguar cómo (si es posible) usarlos en contra de las XKCD 936 frases de estilo

He visto clases de personajes:

?w  matches whitespace: space and horizontal tabulation characters
?a  matches letters [a-zA-Z]

¿Funcionará un ?a?w?a?w?a?w?a para hacer coincidir un grupo de cuatro palabras? Creo que eso haría coincidir 4 caracteres con espacios en blanco, no estoy seguro de cómo hacer coincidir palabras completas con eso. Sugerencias? Tengo una buena idea de que no hay sustituciones de caracteres ni nada.

Alternativamente, ¿debería simplemente tomar mi lista de palabras y generar agrupaciones de cuatro y hacerlas / revisarlas sin JtR?

Saludos

Pregunta relacionada

    
pregunta EricR 13.03.2013 - 02:43
fuente

1 respuesta

4

RENUNCIA DE RESPONSABILIDAD : no soy usuario de JtR ni programador de Perl. La siguiente respuesta es un producto de años de capacitación en Google-Fu solo, combinando algunas respuestas de grupos de noticias y Algunos documentos JtR.

Las reglas de John the Ripper (JtR) no admiten varias palabras de entrada.

La única excepción es con el modo de crack simple donde los operadores 1 , 2 y + controlan si se aplican otros comandos a la primera, la segunda o a ambas palabras respectivamente, cuando se compara con un par de palabras, como el nombre y el apellido.

Alternativamente, puede redirigir la salida de un script externo (manejando combinaciones de palabras) hacia un john --stdin o hacia un archivo (y usarlo como una lista de palabras con JtR ). Obviamente, al hacerlo se ralentizará el proceso, ya que el número de combinaciones posibles aumenta exponencialmente con el número de argumentos de entrada, por lo que probablemente solo vale la pena probar en listas de palabras realmente cortas.

Aquí hay algunos scripts de Perl que podría adoptar para satisfacer sus necesidades (¿o usarlos como están?):

Combinaciones de dos palabras:

#!/usr/bin/perl

while (<>) {
    chop;
    $w[$#w + 1] = $_;
}

foreach $a (@w) {
    foreach $b (@w) {
        print "$a$b\n";
        print "$a $b\n";
    }
}

Combinaciones de tres palabras:

#!/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";
        }
    }
}

Combinaciones de cuatro palabras:

#!/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";
            }
        }
    }
}
    
respondido por el TildalWave 13.03.2013 - 05:58
fuente

Lea otras preguntas en las etiquetas