🎩🔪JOHN THE RIPPER 🔪🎩
🎩 ¿Qué es John the Ripper? 🎩
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.
📚Documentación Oficial de John the Ripper
⚙️⚙️ Instalación ⚙️⚙️
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
O puedes descargarlo tambien desde la siguiente página:
📚 https://www.openwall.com/john/
🤖 Funcionamiento🤖
Para utilizar John, primero debemos de entender bien como funciona el sistema de hash y de contraseñas.
Antes de ejecutar 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 descifrar 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.
Sintaxis básica:
john [opciones] [archivo_hashes]
Opciones principales de John the Ripper:
🔹 Modos de ataque:
--single:
Ataque de usuario único (utiliza nombres de usuario y contraseñas simples).
--wordlist=archivo
o --stdin
: Especifica un archivo de palabras para fuerza bruta basada en diccionarios.
--incremental
o --i
: Realiza un ataque de fuerza bruta puro.
--external=modo
: Utiliza un script externo definido por el usuario.
🔹 Formato de los hashes:
--format=formato
: Define el formato del hash que deseas crackear (por ejemplo, md5
, sha256
, nt
, bcrypt
, etc.).
Ejemplo: --format=nt
🔹 Opciones de configuración:
--show
: Muestra las contraseñas ya crackeadas de un archivo de hash.
--test
: Realiza pruebas de rendimiento en los algoritmos disponibles.
--restore
: Restaura un trabajo anterior guardado con --session
.
--session=nombre
: Guarda la sesión con un nombre específico para continuar más tarde.
--status
: Muestra el estado del proceso de crackeo.
🔹Opciones de personalización:
--rules
: Aplica reglas de mutación de palabras al archivo de diccionario (utilizado con --wordlist
).
--fork=N
: Divide el trabajo en N procesos para aprovechar múltiples núcleos.
--mask=patrón
: Especifica una máscara para generar contraseñas (útil para contraseñas con estructura conocida).
Ejemplo: --mask=?u?l?l?d
(una mayúscula, dos minúsculas, un dígito).
🔹Salida y estado:
--pot=archivo
: Especifica un archivo .pot
para guardar las contraseñas crackeadas.
--nolog
: Desactiva el registro de actividad en el archivo john.log
.
Extraer hash de un .zip:
Lectura recomendada
Link de Compra en Amazon:
🛒 https://amzn.to/3Zw5syg
Contenido del libro:
Este libro contiene una variedad de temas relacionados con las conexiones de redes, tratados desde una perspectiva fácilmente comprensible para personas que quieren iniciarse en esta materia.
Link de Compra en Amazon:
🛒 https://amzn.to/4fiqMNH
Contenido del libro:
Libro introductorio para aprender, desde cero, la mecánica del pentesting y del hacking ético sin meterte en líos; y para aprender paso a paso a utilizar Kali en pentesting.
Objetos relacionados
Link de Compra en Amazon:
🛒https://amzn.to/3P0ei2s
zip2john [archivo.zip] > hash
De esta manera extraeremos el hash del archivo .zip en el archivo ‘hash’ para posteriormente poder trabajar con él.
Crackear hashes con un diccionario
john --wordlist=/usr/share/wordlists/rockyou.txt hash
john --wordlist=/usr/share/wordlists/rockyou.txt hashjohn --wordlist=/usr/share/wordlists/rockyou.txt hashjohn --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:
🤖 Las opciones más utilizadas 🤖
Crackear con fuerza bruta incremental
john --incremental hashes.txt
Mostrar contraseñas crackeadas
john --show hashes.txt
Crackear con fuerza bruta incremental
john --format=nt hashes.txt
Crackear con fuerza bruta incremental
john --restore=sesion_nombre