John the Ripper es una herramienta de software gratuita para descifrar contraseñas. 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 ruptura de contraseñas más utilizados, ya que combina una serie de crackers de contraseñas en un solo paquete, detecta automáticamente los tipos de hash de contraseña e incluye un cracker personalizable. Se puede ejecutar en varios formatos de contraseña cifrada, incluidos varios tipos de hash de contraseña cifrada 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 hash de contraseñas basadas en MD4 y contraseñas almacenadas en LDAP, MySQL y otros.
John the Ripper viene preinstalado con Parrot OS y Kali Linux, sin embargo, si no lo tiene, puedes instalarlo desde el repositorio:
sudo apt install john
Para utilizar John, primero debemos de entender bien como funciona el sistema de hash y de contraseñas.
Antes de ejecutrar John, tendremos que extraer el hash del archivo que queremos descifrar. Para posteriormente saber que algoritmo de hash utiliza, y luego, por medio de un diccionario, utilizar fuerza bruta hasta descibrar el hash.
Las funciones más típicas de hash de contraseñas son MD5, SHA-1, SHA2-256, SHA2-512 entre otras.
Actualmente los algoritmos más comunes para proteger las contraseñas son KDF: Argon2 (KDF) scrypt (KDF) bcrypt PBKDF2 (KDF).
La principal diferencia entre un KDF y una función de hash de contraseñas, es que la longitud con los KDF es arbitraria, y en las típicas funciones hash tienen una salida de longitud fija.
No obstante, se siguen utilizando mucho las funciones de hash.
zip2john [archivo.zip] > hash
De esta manera extraeremos el hash del archivo .zip en el archivo ‘hash’ para posteriormente poder trabajar con él.
john --wordlist=/usr/share/wordlists/rockyou.txt hash
El archivo rockyou.txt es un diccionario con más de 14 millones de contraseñas. En caso de no tenerlo, podéis descargarlo y guardarlo en la ruta /usr/share/wordlists/
Muy bien, ahora para poder ver la contraseña descifrada:
john --show hash