John the Ripper es una herramienta de software de descifrado de contraseñas gratuita . [3] Originalmente desarrollado para el sistema operativo Unix , puede ejecutarse en quince plataformas diferentes (once de las cuales son versiones específicas de la arquitectura de Unix, DOS , Win32 , BeOS y OpenVMS ). Es uno de los programas de prueba y descifrado de contraseñas más utilizados [4], ya que combina varios descifradores de contraseñas en un solo paquete, detecta automáticamente los tipos de hash de contraseñas e incluye un descifrador personalizable. Se puede ejecutar con varios formatos de contraseñas cifradas , incluidos varios tipos de hash de contraseñas cifradas que se encuentran más comúnmente en varias versiones de Unix (basadas en DES , MD5 o Blowfish ), Kerberos AFS y Windows NT/2000/XP/2003 LM hash . Los módulos adicionales han ampliado su capacidad para incluir hashes de contraseñas basados en MD4 y contraseñas almacenadas en LDAP , MySQL y otros. [5]
A continuación se muestra un ejemplo de salida en un entorno Debian .
$ cat pass.txt usuario:AZl.zWwxIh15Q $ john -w:password.lst pass.txt Se cargó 1 hash de contraseña (DES tradicional [24/32 4K]) ejemplo (usuario) intentos: 1 tiempo: 0:00:00:00 100% c/s: 752 intentos: 12345 - pookie
La primera línea es un comando para expandir los datos almacenados en el archivo " pass.txt
". La siguiente línea es el contenido del archivo, es decir, el usuario ( AZl
) y el hash asociado con ese usuario ( zWwxIh15Q
). La tercera línea es el comando para ejecutar John the Ripper utilizando el -w
indicador " ". " password.lst
" es el nombre de un archivo de texto lleno de palabras que el programa usará contra el hash, pass.txt
aparece nuevamente como el archivo en el que queremos que trabaje John.
Luego vemos el resultado del trabajo de John. Se cargó un hash de contraseña (el que vimos con el comando " cat ") y el tipo de hash que John cree que es (DES tradicional). También vemos que el intento requería una conjetura a la vez de 0 con una tasa de conjetura del 100 %.
Uno de los modos que John puede utilizar es el ataque de diccionario . [6] Toma muestras de cadenas de texto (normalmente de un archivo, llamado lista de palabras, que contiene palabras encontradas en un diccionario o contraseñas reales descifradas anteriormente), las cifra en el mismo formato que la contraseña que se está examinando (incluido tanto el algoritmo de cifrado como la clave) y compara el resultado con la cadena cifrada. También puede realizar una variedad de alteraciones en las palabras del diccionario y probarlas. Muchas de estas alteraciones también se utilizan en el modo de ataque único de John, que modifica un texto simple asociado (como un nombre de usuario con una contraseña cifrada) y verifica las variaciones con los hashes.
John también ofrece un modo de fuerza bruta , denominado "modo incremental". [6] En este tipo de ataque, el programa recorre todos los textos sin formato posibles , aplicando un hash a cada uno de ellos y comparándolos con el hash de entrada . John utiliza tablas de frecuencia de caracteres para probar primero los textos sin formato que contienen caracteres usados con mayor frecuencia. Este método es útil para descifrar contraseñas que no aparecen en las listas de palabras del diccionario, pero tarda mucho tiempo en ejecutarse.
Además del modo de lista de palabras y el modo incremental, existe:
{{cite journal}}
: Requiere citar revista |journal=
( ayuda )