Solo para ampliar la respuesta anterior.
¿Mi razonamiento es correcto, una lista de palabras solo es útil si hay palabras en la contraseña y pierde el tiempo si no las hay?
No es necesario que la contraseña en cuestión contenga palabras. Depende de la propia lista de palabras. Una buena lista de palabras puede ahorrarle mucho tiempo. Algunas listas de palabras populares no solo contienen palabras que uno podría encontrar en un diccionario, sino también algunas palabras destrozadas (llegaré a esto en breve). Los programas como John y Crunch pueden ayudarlo a crear una lista de palabras personalizada para su objetivo. Pero sí, es muy poco probable encontrar una contraseña generada aleatoriamente en una lista de palabras y al menos alguna parte de la contraseña debe contener palabras para mejorar sus posibilidades de un ataque basado en una lista de palabras.
Sé que en John the Ripper hay reglas de manipulación de palabras, ¿qué es esto?
Ahora, este es un tema interesante. Word Mangling (en el caso de johntheripper) es en términos simples que muta todas las palabras en una lista de palabras de acuerdo con las reglas definidas en /etc/john/john.conf (en una máquina Linux). Te lo explicaré mejor con el ejemplo.
Los usuarios con mayor frecuencia tienden a mutar sus contraseñas de varias maneras. Esto podría incluir agregar algunos números al final de la contraseña, cambiar minúsculas por mayúsculas, cambiar ciertas letras a números, etc. Supongamos que usted sabe que a una persona en particular (o víctima en nuestro caso) le gusta agregar dos números. al final de sus contraseñas (que en la mayoría de los casos es una palabra para recordarlo mejor). Puedes agregar una regla en el archivo de configuración de johntheripper.
$[0-9]$[0-9]
Y después de eso, creas una lista de palabras mutada con el siguiente comando.
john --rules --wordlist=/path/to/wordlist --stdout > new_word_list
Esto creará una nueva lista de palabras (usando las reglas en el archivo de configuración) que es una versión mutilada de la antigua lista de palabras, lo que mejorará sus posibilidades de un ataque de lista de palabras exitoso. De manera similar, puede agregar elementos (caracteres, números, caracteres especiales), cambiar los caracteres a mayúsculas / minúsculas, cambiar índices específicos a un carácter de su elección, etc. simplemente agregando las reglas relevantes al archivo de configuración. No estoy seguro de cómo explicar esto mejor, pero espero que haya entendido bien.
Por cierto, ¿los términos "diccionario" y "lista de palabras" se usan indistintamente en este contexto?
Sí, en este contexto, "diccionario" y "lista de palabras" son términos intercambiables. Esto se debe a que cuando surgió el ataque por primera vez, los piratas informáticos usaban literalmente las palabras del diccionario como una lista de palabras (la gente en ese entonces no usaba contraseñas seguras). A medida que las personas se dieron cuenta del "ataque del diccionario", comenzaron a mutilar sus contraseñas (por ejemplo, horses1234, alabama12, etc.). Así que los hackers desarrollaron sus métodos y salieron con una versión destrozada del diccionario. Y (a lo largo de los años) después de todas esas complicaciones, agregando jerga, etc., la lista de palabras resultante no se parecía en nada a un diccionario y, por lo tanto, los piratas informáticos comenzaron a referirse a él como una lista de palabras.