John the Ripper – El versátil recuperador de contraseñas que define los estándares de auditoría desde 1996
Descripción del programa John the Ripper
John the Ripper (comúnmente abreviado como JtR) es un software de recuperación de contraseñas de código abierto, desarrollado por Solar Designer como parte del Proyecto Openwall en 1996. Concebido inicialmente como una herramienta para auditar la seguridad de contraseñas en sistemas Unix, su robustez y flexibilidad lo han convertido en un estándar de la industria, siendo uno de los componentes esenciales en distribuciones de pentesting como Kali Linux, Parrot OS y BlackArch.
Su principal fortaleza radica en ser un traductor universal de hashes. A diferencia de otras herramientas que se especializan en un único tipo de algoritmo, John puede reconocer, procesar y atacar automáticamente más de cien formatos de hash diferentes, incluyendo los sistemas de archivos de Windows (NTLM), las sombras de Linux (sha512crypt), bases de datos de aplicaciones (MD5, SHA1) y archivos cifrados como ZIP, RAR o PDF.
Esta capacidad de autodetección (auto) lo hace invaluable en auditorías donde se desconoce el tipo de cifrado.
El programa funciona bajo el principio de ataque offline. El auditor no necesita interactuar con el sistema en vivo; solo requiere una copia del archivo de hashes (por ejemplo, el archivo SAM de Windows o el shadow de Linux).
Una vez obtenidos los datos, John intenta encontrar la contraseña original aplicando diferentes modos de ataque (diccionario, reglas, fuerza bruta) sobre el equipo local, lo que permite utilizar la máxima potencia de cómputo sin riesgo de bloqueos por intentos fallidos de inicio de sesión.
¿Necesitas auditar la robustez de las contraseñas en tu organización o recuperar acceso a tus propios archivos cifrados utilizando una herramienta estándar en la industria?
Características clave de John the Ripper
1. Versatilidad de formatos y utilidades de extracción (2john)
John the Ripper destaca por su ecosistema de herramientas complementarias diseñadas para extraer hashes de prácticamente cualquier tipo de archivo protegido. Estas utilidades convierten los metadatos de un archivo cifrado en un «hash» que John puede entender.
El paquete incluye herramientas como zip2john para archivos ZIP, rar2john para RAR, pdf2john.pl para documentos PDF, ssh2john para claves SSH privadas, keepass2john para bases de datos KeePass, y bitlocker2john para unidades cifradas con BitLocker.
2. «Single Crack» Mode – Inteligencia contextual
Este es el primer modo que John ejecuta por defecto y es el más infravalorado pero efectivo. En lugar de usar un diccionario externo, John analiza la información del propio usuario (login, nombre completo del campo GECOS) para generar contraseñas candidatas.
Por ejemplo, si el usuario se llama «John Smith», John probará automáticamente variaciones como «John», «Smith», «John123», «Smith2024», «JohnSmith», etc. Es extremadamente rápido y eficaz contra contraseñas débiles basadas en datos personales.
3. Modo Diccionario (Wordlist) con Reglas de Mutación
El modo más utilizado, donde John compara los hashes objetivo contra una lista de palabras predefinida (rockyou.txt es la más famosa). Su verdadera potencia reside en el sistema de reglas. A través del archivo de configuración john.conf, se pueden aplicar transformaciones a las palabras del diccionario sobre la marcha.
Por ejemplo, con la regla adecuada, al leer la palabra «password», John probará automáticamente «Password», «PASSWORD», «passw0rd», «password123», «password!», y cientos de combinaciones más, multiplicando exponencialmente la efectividad del diccionario original sin ocupar espacio en disco.
4. Modo Incremental (Brute-Force)
Cuando los modos anteriores fallan, John recurre al modo incremental. Este es un ataque de fuerza bruta sistemático que prueba todas las combinaciones posibles de caracteres dentro de un rango de longitud definido.
Aunque es el modo más lento, es el único que garantiza teóricamente encontrar la contraseña si el espacio de búsqueda no es prohibitivo. John permite configurar estos modos en john.conf definiendo conjuntos de caracteres específicos (ej. Digits para solo números, Alpha para solo letras) para optimizar el tiempo de búsqueda.
5. Gestión de Sesiones y Reanudación (--restore)
Una funcionalidad crítica para auditorías largas es el sistema de sesiones. John guarda automáticamente su progreso en el directorio .john/ (especialmente en el archivo john.pot y los archivos de sesión).
Si el proceso se interrumpe (por un corte de luz o porque se detuvo manualmente), se puede retomar exactamente donde se quedó ejecutando john --restore. Esto evita perder horas de cómputo y permite pausar ataques de fuerza bruta que podrían durar días o semanas.
6. Soporte para «Jumbo Build» (Community Enhanced)
Existen dos versiones principales: la versión core (estándar) y la versión «Jumbo». La versión Jumbo es un fork comunitario que incluye cientos de formatos de hash adicionales y reglas que no están presentes en la versión oficial.
Incluye soporte para cifrados modernos como bcrypt, PBKDF2, hashes de aplicaciones como Telegram, y formatos de documentos modernos de Office. Esta es la versión que viene preinstalada en Kali Linux y la que se recomienda para uso profesional.
Explicación detallada de las funcionalidades
Flujo de trabajo estándar para auditar un sistema Linux:
El proceso clásico con John implica extraer los hashes de /etc/passwd y /etc/shadow. Dado que los sistemas modernos ya no almacenan contraseñas en passwd, se utiliza la herramienta unshadow. Primero, se combinan ambos archivos:
unshadow /etc/passwd /etc/shadow > unshadowed.txtLuego, se ejecuta John contra el archivo resultante:
john unshadowed.txtPor defecto, John intentará el modo Single, seguido del modo Wordlist con su diccionario interno. Una vez finalizado, se pueden ver los resultados con john --show unshadowed.txt.
Extracción y ataque a un archivo ZIP protegido:
Para recuperar la contraseña de un archivo ZIP (con permiso del propietario), se utiliza zip2john:
zip2john archivo_secreto.zip > hash_zip.txt
john --wordlist=/usr/share/wordlists/rockyou.txt hash_zip.txtJohn procesará el hash extraído y, si la contraseña está en la lista, la mostrará. La versatilidad de *2john abarca desde PDFs (pdf2john) hasta discos cifrados con BitLocker (bitlocker2john).
Gestión de diferentes formatos de hash:
Si John no detecta automáticamente el formato (o lo hace incorrectamente), se puede forzar manualmente usando --format. Por ejemplo, para hashes NTLM de Windows:
john --format=nt --wordlist=rockyou.txt hashes.txtPara ver la lista completa de formatos que soporta tu versión de John:
john --list=formatsEsto es especialmente útil en la versión Jumbo, donde la lista puede contener cientos de entradas.
Descarga e instalación de John the Ripper
- Página oficial: Openwall John the Ripper
- Versión actual: 1.9.0 (Jumbo, actualizaciones continuas por la comunidad)
- Repositorios oficiales: GitHub (openwall/john), GitLab
- Tamaño: Variable; las herramientas base ocupan unos pocos MB, pero las wordlists adicionales (como rockyou.txt) pueden ocupar cientos de MB.
- Sistemas operativos compatibles: Linux (todas las distribuciones, nativo), Windows (binarios disponibles), macOS, Android (vía terminal), sistemas BSD.
- Instalación en Kali/Debian/Ubuntu:
sudo apt update && sudo apt install john - Instalación desde fuente (Linux):
git clone https://github.com/openwall/john.git
cd john/src./configure && make- Licencia: GNU General Public License (GPL) – código abierto y gratuito.
- Soporte técnico: Documentación en la web oficial (
docs/), foros de Openwall, comunidades de pentesting (Reddit, Stack Overflow).
Nota sobre la instalación en Windows: Aunque es nativo de Linux, existen binarios compilados para Windows. Sin embargo, su rendimiento es superior en entornos Linux/Unix, y la integración con herramientas de extracción como
zip2johnsuele ser más fluida en sistemas tipo Unix. Se recomienda su uso dentro de máquinas virtuales (VirtualBox/VMware) con Kali Linux para aprovechar el ecosistema completo.
Cómo usar John the Ripper
Advertencia ética: John the Ripper es una herramienta de auditoría de seguridad. Solo debe utilizarse contra sistemas de los que se es propietario o se tiene autorización explícita por escrito para auditar. El uso no autorizado constituye un delito informático.
1. Preparación: Obtener los hashes
Antes de usar John, necesitas los hashes. Si estás practicando contigo mismo en Linux, puedes crear un hash de prueba fácilmente:
# Crear un hash MD5 de la palabra "password" (solo para laboratorio)
echo -n "password" | md5sum > hash_md5.txtEn un entorno real, usarías unshadow, zip2john o sqlmap para extraer los hashes de la base de datos vulnerada.
2. Ataque básico (Modo Automático)
El comando más simple y efectivo para empezar:
john hash_md5.txtJohn intentará autodetectar el formato (en este caso raw-md5) y ejecutará los modos Single, Wordlist e Incremental secuencialmente. Este comando es el punto de partida ideal cuando no se tiene información previa sobre la contraseña.
3. Ataque Dirigido con Wordlist (--wordlist)
Para maximizar la velocidad, se debe usar una wordlist específica. La más famosa es rockyou.txt, que viene comprimida en Kali (/usr/share/wordlists/rockyou.txt.gz). Primero, descomprímela:
sudo gunzip /usr/share/wordlists/rockyou.txt.gzLuego, ejecuta el ataque:
john --format=raw-md5 --wordlist=/usr/share/wordlists/rockyou.txt hash_md5.txtSi la contraseña es débil y está en la lista, aparecerá en pantalla.
4. Ver resultados (--show)
Para ver las contraseñas que John ha logrado descifrar hasta el momento, ejecuta:
john --show hash_md5.txtEsto mostrará una lista de los hashes y sus equivalentes en texto plano. Si el archivo contenía usuarios, mostrará usuario:contraseña.
5. Reanudar una sesión interrumpida (--restore)
Si el ataque está tomando mucho tiempo y necesitas apagar el ordenador, puedes detenerlo con Ctrl+C. Para reanudarlo exactamente donde lo dejaste:
john --restoreEsto retomará la última sesión activa. Si tienes varias sesiones, puedes especificar el nombre con --restore=nombre_sesion.
6. Ataque de Fuerza Bruta Específico (--incremental)
Para probar todas las combinaciones de números de 4 dígitos (útil para PINs), se puede usar el modo incremental:
john --incremental=Digits --format=raw-md5 hash_md5.txtEsto configurará a John para que pruebe «0», «1», «2»…»00″, «01»… hasta «9999». Para contraseñas alfanuméricas, se usa --incremental=Alnum.
Observaciones sobre el programa John the Ripper
Frente a otras herramientas de cracking como Hashcat o Cain & Abel, John the Ripper ocupa un lugar único como la navaja suiza del auditor. Mientras que Hashcat es el rey indiscutible de la velocidad gracias a la aceleración masiva por GPU, John es el rey de la versatilidad y la preparación del terreno. Es la herramienta ideal para la fase inicial de un ataque: identificar el tipo de hash, extraerlo con *2john, y realizar un primer ataque rápido con reglas inteligentes.
Para el profesional de seguridad, la eficiencia de John reside en su sistema de reglas y el modo Single. A menudo, los auditores dedican tiempo a afinar las reglas de mutación en john.conf para crear ataques de diccionario extremadamente efectivos sin necesidad de listas de miles de millones de palabras. Su capacidad para manejar hashes «mal formados» o parcialmente corruptos también es superior a la de otras herramientas.
El desarrollador, Solar Designer, creó John the Ripper en 1996 y lo ha mantenido como un proyecto de referencia en seguridad ofensiva durante casi tres décadas. Aunque el desarrollo del core es más lento, la comunidad Jumbo mantiene el software actualizado con soporte para los últimos algoritmos de hash y formatos de archivo.
En cuanto al rendimiento, John está optimizado para CPU, a diferencia de Hashcat que explota GPUs. Para hashes rápidos como MD5 o NTLM, John es decente, pero para hashes lentos como bcrypt (diseñados para ser costosos computacionalmente), John puede volverse extremadamente lento. En esos casos, la práctica común es usar john para extraer y pre-procesar los hashes, y luego pasarlos a Hashcat para el cracking pesado si se dispone de hardware gráfico potente.
Limitaciones importantes
- ❌ Velocidad limitada en comparación con Hashcat: Al estar optimizado para CPU, es significativamente más lento que las herramientas basadas en GPU para hashes como MD5, SHA1 y NTLM.
- ❌ Rendimiento deficiente en hashes modernos «lentos»: Algoritmos como
bcrypt(muy común) yPBKDF2están diseñados para ser lentos; John puede tardar días o semanas en probar una wordlist modesta contra estos hashes. - ❌ Interfaz de línea de comandos (CLI): Aunque existe un frontend gráfico llamado
Johnny, el verdadero poder de John reside en la terminal, lo que puede ser intimidante para principiantes. - ❌ Configuración avanzada compleja: Modificar las reglas de mutación o los modos incrementales requiere editar manualmente el archivo
john.conf, una tarea que puede ser desafiante sin experiencia previa.
Alternativa recomendada
Si el objetivo es velocidad bruta y se dispone de una tarjeta gráfica moderna (NVIDIA/AMD), Hashcat es la alternativa insuperable. Es el estándar de facto para el cracking de hashes a gran escala, soportando cientos de algoritmos y utilizando la GPU para alcanzar miles de millones de intentos por segundo.
Si se busca una herramienta con interfaz gráfica más amigable para tareas de recuperación de contraseñas locales, Johnny (el frontend oficial para John) o ophcrack (especializado en hashes LM de Windows) son opciones viables.
Sin embargo, para el profesional de la seguridad, la combinación estándar es usar John the Ripper para el reconocimiento, extracción y ataques de diccionario con reglas, y Hashcat para el ataque de fuerza bruta pura o ataques de máscara.
John the Ripper sigue siendo una herramienta fundamental en el arsenal de cualquier auditor de seguridad.
Su longevidad (desde 1996) es testimonio de su calidad y adaptabilidad. No es la más rápida, pero su inteligencia para aprovechar el contexto del usuario (--single) y su increíble capacidad para entender formatos de archivo lo convierten en el primer paso obligatorio en cualquier auditoría de contraseñas.
Puedes instalarlo directamente desde los repositorios de tu distribución Linux o descargar los binarios desde la página de Openwall.
Sección FAQ
¿John the Ripper es gratis o de pago?
John the Ripper es completamente gratuito y de código abierto, publicado bajo la licencia GNU General Public License (GPL). No tiene versiones de pago ni funcionalidades bloqueadas. La versión «Pro» mencionada en algunos contextos se refiere a servicios comerciales o forks especializados, no al software base.
¿Funciona en Linux, macOS, Windows 10 y Windows 11?
Sí, John the Ripper es multiplataforma. Funciona nativamente en Linux (todas las distribuciones), macOS (a través de compilación o Homebrew), y Windows (con binarios precompilados disponibles en la web oficial). Su rendimiento óptimo se obtiene en entornos Linux/Unix.
¿Qué diferencia a John the Ripper de Hashcat?
La principal diferencia es la filosofía de uso y la plataforma. John the Ripper es una herramienta todo-en-uno que incluye utilidades para extraer hashes de archivos y atacarlos principalmente con CPU, destacando por su sistema de reglas y detección automática de formatos.
Hashcat es un motor de cracking especializado y extremadamente rápido que utiliza la GPU (tarjeta gráfica), superando a John en velocidad por un amplio margen, especialmente para hashes rápidos como MD5 y NTLM.
¿Cómo puedo saber qué tipo de hash tengo?
John the Ripper puede autodetectar la mayoría de los formatos si ejecutas john hash.txt sin especificar formato. Si la autodetección falla o quieres verificar, puedes usar la herramienta externa hashid (disponible en Kali) o revisar la longitud y los caracteres del hash.
Por ejemplo, un hash MD5 tiene 32 caracteres hexadecimales, mientras que un hash SHA-256 tiene 64. También puedes listar los formatos soportados con john --list=formats.
¿Es ilegal usar John the Ripper?
El software en sí no es ilegal. John the Ripper es una herramienta legítima utilizada por administradores de sistemas para auditar la seguridad de sus propias contraseñas, por forenses para recuperar datos de discos cifrados por empleados, y por profesionales de seguridad con autorización.
Sin embargo, usarlo contra sistemas sin permiso explícito es un delito (Ley de Fraude y Abuso Informático en EE.UU., artículo 197 del Código Penal en España, y legislaciones similares en otros países). Siempre se debe obtener autorización por escrito antes de cualquier auditoría.
