John the Ripper en Kali Linux
John the Ripper en Kali Linux
Entiendo que estás buscando información sobre cómo usar John the Ripper (comúnmente conocido solo como "John") en Kali Linux. Es una de las herramientas de auditoría de seguridad más potentes y clásicas para la recuperación de contraseñas.
Aquí tienes una guía rápida en español para que entiendas cómo funciona y cuáles son los comandos básicos.
¿Qué es John the Ripper?
Es una herramienta de código abierto diseñada para probar la fortaleza de las contraseñas mediante ataques de fuerza bruta y diccionario. En Kali Linux, ya viene instalada por defecto.
1. El flujo de trabajo básico
John no suele "atacar" un sitio web directamente. Primero necesitas el hash (la versión cifrada) de la contraseña. El proceso es:
Obtener el archivo de hashes.
Pasar el archivo por un "pre-procesador" si es necesario (como archivos ZIP o PDF).
Ejecutar John para descifrarlo.
Comandos Esenciales
Descifrar un archivo de contraseñas de Linux
Si tienes acceso a los archivos /etc/passwd y /etc/shadow, primero debes combinarlos:
unshadow /etc/passwd /etc/shadow > mis_hashes.txt
john mis_hashes.txt
Usar un diccionario (Wordlist)
El ataque más común es usar una lista de palabras existentes (como el famoso archivo rockyou.txt que viene en Kali):
john --wordlist=/usr/share/wordlists/rockyou.txt mis_hashes.txt
Ver los resultados
Si John ya terminó o quieres ver qué ha recuperado hasta ahora:
john --show mis_hashes.txt
Formatos específicos (ZIP, PDF, RAR)
John incluye herramientas llamadas "jumbo" que extraen el hash de archivos protegidos para que puedas atacarlos:
| Tipo de archivo | Comando para extraer el hash |
| ZIP | zip2john archivo.zip > hash.txt |
| RAR | rar2john archivo.rar > hash.txt |
pdf2john archivo.pdf > hash.txt | |
| SSH | ssh2john id_rsa > hash.txt |
Una vez creado el hash.txt, simplemente corres john hash.txt.
Consejos de Pro
Pausar y resumir: Si el proceso tarda mucho, puedes presionar
Ctrl+C. Para retomar después, usajohn --restore.Estado: Mientras John corre, presiona cualquier tecla (o la barra espaciadora) para ver el progreso actual y el tiempo estimado.
Uso de GPU: Si tienes una tarjeta gráfica potente, existen versiones de John que aprovechan OpenCL para ir miles de veces más rápido.
Nota de seguridad: Recuerda usar estas herramientas siempre en entornos controlados, para recuperar tus propias claves o en auditorías de seguridad autorizadas (Ethical Hacking).
Para darte el comando exacto, necesitaría saber qué tipo de archivo o hash estás intentando procesar, pero como no lo sé aún, vamos a cubrir los escenarios más comunes en Kali Linux.
Aquí tienes los "recetarios" para los tres casos más buscados:
Escenario A: Olvidaste la clave de un archivo ZIP o RAR
Si tienes un archivo comprimido protegido, primero extraemos el "ADN" (el hash) de la contraseña y luego lo atacamos con el diccionario rockyou:
Para un ZIP:
zip2john mi_archivo.zip > hash_comprimido.txt
john --wordlist=/usr/share/wordlists/rockyou.txt hash_comprimido.txt
Para un RAR:
rar2john mi_archivo.rar > hash_comprimido.txt
john --wordlist=/usr/share/wordlists/rockyou.txt hash_comprimido.txt
Escenario B: Un archivo PDF protegido
Si tienes un PDF que pide contraseña para abrirse o editarse:
pdf2john documento.pdf > hash_pdf.txt
john --wordlist=/usr/share/wordlists/rockyou.txt hash_pdf.txt
Escenario C: Una llave SSH (id_rsa)
Muy común si estás practicando en plataformas como TryHackMe o HackTheBox y encuentras una clave privada:
ssh2john id_rsa > hash_ssh.txt
john --wordlist=/usr/share/wordlists/rockyou.txt hash_ssh.txt
¿Cómo saber si funcionó?
Una vez que el comando termine (o si quieres revisar el progreso), usa el parámetro --show. Es fundamental porque a veces John termina y parece que no hizo nada, pero el resultado ya está guardado:
john --show nombre_del_hash.txt
Un pequeño recordatorio útil:
Si el comando john te dice que no encuentra el archivo rockyou.txt, es posible que esté comprimido en tu sistema Kali. Puedes descomprimirlo rápidamente con:
sudo gunzip /usr/share/wordlists/rockyou.txt.gz
Cuando tienes solo el hash, el reto es saber qué tipo de algoritmo lo generó (MD5, SHA-1, SHA-256, etc.), ya que John necesita saber el formato para atacarlo eficientemente.
1. Identificar el Hash
Antes de usar John, puedes usar una herramienta en Kali llamada hash-identifier o hashid para saber a qué te enfrentas.
hashid "tu_cadena_de_hash_aquí"
Esto te dirá si es, por ejemplo, MD5 o SHA-256.
2. Cómo atacar el Hash con John
Si ya guardaste el hash en un archivo llamado hash_a_romper.txt, aquí tienes los comandos según el caso:
A. Dejar que John lo detecte automáticamente
John es bastante inteligente y suele identificar el formato por sí solo:
john --wordlist=/usr/share/wordlists/rockyou.txt hash_a_romper.txt
B. Forzar un formato específico (Más rápido y preciso)
Si sabes el tipo de hash, es mucho mejor especificárselo con --format. Aquí tienes los más comunes:
| Si el hash es... | Usa este comando |
| MD5 | john --format=raw-md5 --wordlist=... hash.txt |
| SHA-1 | john --format=raw-sha1 --wordlist=... hash.txt |
| SHA-256 | john --format=raw-sha256 --wordlist=... hash.txt |
| NTLM (Windows) | john --format=nt --wordlist=... hash.txt |
3. ¿Qué pasa si el diccionario no funciona? (Fuerza Bruta)
Si la contraseña es compleja y no está en rockyou.txt, puedes usar el modo incremental. John probará todas las combinaciones posibles:
john --incremental hash_a_romper.txt
Ten paciencia, este método puede tardar desde minutos hasta años dependiendo de la longitud de la clave.
El "Trinitron" de las herramientas
Si John te da problemas con un hash específico, muchos profesionales saltan a Hashcat, que es otra herramienta en Kali que usa la potencia de la tarjeta de video (GPU) y es extremadamente rápida para hashes puros.