John the Ripper: auditoría y recuperación de contraseñas desde la terminal


 


En ciberseguridad, una contraseña nunca debe considerarse segura únicamente porque parece larga o complicada. La verdadera resistencia de una credencial depende de cómo fue creada, del algoritmo utilizado para almacenarla y de la capacidad que tendría un atacante para descubrirla mediante diccionarios, reglas o ataques de fuerza bruta.

John the Ripper, conocido habitualmente como John, es una herramienta de auditoría de contraseñas diseñada para analizar hashes y comprobar si las credenciales de un sistema pueden recuperarse con facilidad.

Es una de las herramientas más conocidas en el ámbito del ethical hacking, la administración de sistemas y las auditorías de seguridad.

John the Ripper debe utilizarse exclusivamente sobre sistemas, archivos y credenciales propios o para los que se cuente con autorización expresa.

¿Qué es John the Ripper?

John the Ripper es una herramienta de código abierto que permite realizar pruebas de resistencia sobre contraseñas almacenadas mediante funciones hash.

En condiciones normales, un sistema no guarda las contraseñas directamente. En su lugar, almacena una representación matemática denominada hash. Cuando el usuario inicia sesión, el sistema calcula el hash de la contraseña introducida y lo compara con el valor almacenado.

El problema aparece cuando la contraseña es débil, predecible o reutilizada. Aunque el hash no pueda revertirse directamente, John puede probar distintas palabras y combinaciones hasta encontrar una que produzca el mismo resultado.

La herramienta es compatible con numerosos formatos, entre ellos:

  • Hashes de sistemas Linux.
  • NTLM de Windows.
  • MD5.
  • SHA.
  • bcrypt.
  • Contraseñas de archivos comprimidos.
  • Algunos formatos de documentos.
  • Credenciales extraídas de aplicaciones y bases de datos.

Su compatibilidad exacta depende de la versión instalada y de si se utiliza la edición estándar o la variante conocida como John the Ripper Jumbo.

¿Para qué se utiliza?

John the Ripper puede formar parte de distintas tareas profesionales de seguridad.

Auditoría de políticas de contraseñas

Una organización puede comprobar si sus usuarios utilizan claves demasiado sencillas, palabras del diccionario, nombres propios, fechas o patrones previsibles.

Pruebas de penetración autorizadas

Durante un pentest, John permite evaluar la seguridad de hashes obtenidos legítimamente dentro del alcance acordado.

Recuperación de contraseñas

También puede utilizarse para intentar recuperar la contraseña de un archivo o cuenta propia cuando se ha perdido el acceso.

Formación en ciberseguridad

Es una excelente herramienta para comprender conceptos como hashes, salts, ataques de diccionario, fuerza bruta, reglas de transformación y almacenamiento seguro de credenciales.

Instalación en Kali Linux

John the Ripper suele estar disponible en los repositorios de Kali Linux. Para instalarlo, se puede ejecutar:

sudo apt update
sudo apt install john

Para comprobar que la instalación funciona:

john --help

También puede consultarse la versión instalada:

john --list=build-info

Dependiendo del paquete disponible, algunas funciones o formatos podrían variar.

¿Qué es un hash?

Un hash es el resultado de aplicar una función matemática a determinada información. Por ejemplo, una contraseña como:

Seguridad2026

puede transformarse en una cadena completamente diferente.

Una función hash debería ser unidireccional. Esto significa que no existe un procedimiento directo para obtener la contraseña original a partir del hash.

John no descifra matemáticamente el hash. Lo que hace es probar contraseñas candidatas, calcular sus hashes y comparar los resultados.

El proceso puede representarse de la siguiente manera:

Contraseña candidata
        ↓
Función hash
        ↓
Hash calculado
        ↓
Comparación con el hash objetivo

Cuando ambos hashes coinciden, la contraseña candidata probablemente sea la contraseña original.

Primer laboratorio controlado

Para aprender a utilizar John de forma segura, puede crearse un hash propio dentro de un laboratorio.

Una opción es utilizar OpenSSL para generar un hash compatible:

openssl passwd -6

El sistema solicitará una contraseña y devolverá un hash. Ese valor puede guardarse en un archivo:

nano hashes.txt

Después, puede iniciarse una auditoría básica:

john hashes.txt

John analizará el formato e intentará encontrar una contraseña candidata utilizando su modo predeterminado.

Para visualizar los resultados encontrados:

john --show hashes.txt

Este ejercicio debe realizarse únicamente con hashes creados por el propio usuario.

Ataque de diccionario

Un ataque de diccionario utiliza un archivo que contiene posibles contraseñas. John prueba cada una de ellas contra el hash objetivo.

La sintaxis general es:

john --wordlist=diccionario.txt hashes.txt

Por ejemplo:

john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt

En Kali Linux, la lista rockyou.txt puede encontrarse comprimida. En ese caso, puede descomprimirse con:

sudo gzip -d /usr/share/wordlists/rockyou.txt.gz

Las listas de contraseñas deben utilizarse exclusivamente en auditorías autorizadas. Su existencia demuestra por qué una contraseña basada en palabras comunes, nombres, equipos de fútbol o fechas importantes puede descubrirse rápidamente.

Reglas de transformación

Las personas suelen modificar palabras sencillas para intentar hacerlas más seguras. Algunos ejemplos habituales son:

password
Password
Password1
P@ssword
Password2026

John dispone de reglas que modifican automáticamente las palabras de un diccionario. Puede agregar números, cambiar mayúsculas, sustituir letras o combinar patrones.

Un ejemplo de ejecución con reglas es:

john --wordlist=diccionario.txt --rules hashes.txt

Este tipo de prueba permite demostrar que reemplazar una letra por un número no siempre convierte una contraseña débil en una contraseña segura.

Modo incremental

El modo incremental genera combinaciones de caracteres sin depender exclusivamente de una lista de palabras.

Puede ejecutarse con:

john --incremental hashes.txt

Este método puede requerir una gran cantidad de tiempo y recursos, especialmente cuando la contraseña es larga y utiliza diferentes tipos de caracteres.

La cantidad de combinaciones posibles crece rápidamente. Por esta razón, una contraseña extensa y verdaderamente aleatoria es mucho más resistente que una contraseña corta, incluso cuando esta última contiene símbolos.

Especificar el formato del hash

John suele detectar automáticamente el formato del hash. Sin embargo, en algunas ocasiones puede ser necesario indicarlo manualmente.

Para consultar los formatos compatibles:

john --list=formats

Una ejecución especificando el formato puede tener la siguiente estructura:

john --format=raw-md5 hashes.txt

Elegir un formato incorrecto puede provocar errores o impedir que John procese el archivo adecuadamente.

Auditoría de contraseñas en Linux

En sistemas Linux, parte de la información relacionada con usuarios se encuentra en /etc/passwd, mientras que los hashes protegidos se almacenan normalmente en /etc/shadow.

John incluye la herramienta unshadow, que permite combinar ambos archivos:

sudo unshadow /etc/passwd /etc/shadow > hashes_linux.txt

Después, la auditoría puede iniciarse con:

john hashes_linux.txt

Este procedimiento requiere privilegios administrativos y solamente debe realizarse sobre un sistema propio o expresamente autorizado.

Nunca se deben copiar archivos de autenticación de sistemas ajenos.

Pausar y continuar una sesión

Una auditoría puede tardar bastante tiempo. John permite interrumpir el proceso y continuar posteriormente.

Para detener una sesión de forma controlada se puede presionar:

Ctrl + C

Para restaurar la sesión:

john --restore

También es posible asignar un nombre específico:

john --session=auditoria hashes.txt

Y restaurarla más tarde:

john --restore=auditoria

Esta función resulta útil en laboratorios extensos o auditorías profesionales.

Consultar el estado de una auditoría

Mientras John se encuentra en ejecución, es posible solicitar información sobre el progreso presionando una tecla.

También puede consultarse el estado de una sesión guardada:

john --status

Para una sesión con nombre:

john --status=auditoria

La información puede incluir velocidad, cantidad de pruebas realizadas y candidatos procesados.

John the Ripper y Hashcat

John the Ripper y Hashcat suelen compararse porque ambas herramientas permiten realizar auditorías de contraseñas.

John destaca por su integración con sistemas Unix, sus reglas, su facilidad para procesar distintos archivos y su utilidad en laboratorios desde la terminal.

Hashcat, por su parte, está especialmente orientado al aprovechamiento de tarjetas gráficas compatibles para realizar cálculos a gran velocidad.

No existe una herramienta universalmente superior. La elección depende del formato, el hardware disponible, el objetivo de la auditoría y las características del entorno.

Cómo protegerse frente a estos ataques

John the Ripper no crea la debilidad. La herramienta simplemente demuestra que una contraseña ya era vulnerable.

Para reducir el riesgo se recomienda:

  • Utilizar contraseñas largas y únicas.
  • Evitar palabras completas del diccionario.
  • No utilizar nombres, fechas ni información personal.
  • Emplear un gestor de contraseñas.
  • Activar autenticación en dos pasos.
  • Aplicar límites de intentos de inicio de sesión.
  • Utilizar algoritmos modernos de almacenamiento.
  • Incorporar salts únicos.
  • Configurar adecuadamente bcrypt, scrypt, PBKDF2 o Argon2.
  • Revisar periódicamente las políticas de credenciales.
  • Evitar reutilizar contraseñas entre diferentes servicios.

Una buena contraseña no necesita ser fácil de recordar cuando se utiliza un gestor confiable. Puede ser una cadena extensa y aleatoria generada automáticamente.

Importancia del algoritmo de almacenamiento

La resistencia de una contraseña no depende únicamente de la clave elegida. También depende del algoritmo utilizado para almacenarla.

Los hashes rápidos, como MD5 o SHA-1 sin medidas adicionales, no son adecuados para proteger contraseñas. Fueron diseñados para calcularse rápidamente, lo que también permite comprobar millones de candidatos en poco tiempo.

Los sistemas modernos deberían utilizar algoritmos lentos y configurables, como:

Argon2
bcrypt
scrypt
PBKDF2

Estos algoritmos incrementan el coste computacional de cada prueba y dificultan los ataques masivos.

Consideraciones legales y éticas

Poseer o utilizar John the Ripper no es necesariamente ilegal. Su legitimidad depende del objetivo, la autorización y el contexto.

Es apropiado utilizarlo para:

  • Auditar un sistema propio.
  • Recuperar una contraseña personal.
  • Trabajar en un laboratorio.
  • Participar en una plataforma educativa autorizada.
  • Realizar un pentest con permiso escrito.
  • Evaluar credenciales dentro de un alcance contractual.

No debe utilizarse para:

  • Acceder a cuentas ajenas.
  • Atacar servicios sin autorización.
  • Procesar hashes robados.
  • Obtener contraseñas de terceros.
  • Evadir controles de acceso.
  • Realizar intrusiones o causar daños.

En una auditoría profesional, la autorización debe definir claramente los sistemas permitidos, las credenciales que pueden analizarse, el tiempo de la prueba, el tratamiento de los resultados y la eliminación segura de las evidencias.

Conclusión

John the Ripper es una herramienta fundamental para comprender cómo se evalúa la resistencia de las contraseñas.

Su verdadero valor no consiste únicamente en recuperar una clave, sino en demostrar los riesgos de utilizar credenciales débiles y algoritmos de almacenamiento inadecuados.

Utilizado dentro de un entorno controlado, permite aprender sobre hashes, diccionarios, reglas, combinaciones, salts y políticas de autenticación. También ayuda a administradores y profesionales de seguridad a identificar problemas antes de que sean aprovechados por un atacante.

La principal lección es sencilla: una contraseña corta, predecible o reutilizada puede caer con rapidez. Una contraseña extensa, única, aleatoria, protegida mediante un algoritmo moderno y acompañada de autenticación multifactor ofrece una defensa considerablemente superior.


Etiquetas sugeridas: John the Ripper, ethical hacking, Kali Linux, auditoría de contraseñas, ciberseguridad, hashes, pentesting, seguridad informática, Linux, recuperación de contraseñas

#JohnTheRipper #EthicalHacking #KaliLinux #Ciberseguridad #Pentesting #SeguridadInformática #Linux #PasswordSecurity

Comentarios

Entradas populares de este blog

Burp Suite: cómo analizar aplicaciones web con ejemplos de consola

Contraseñas únicas y autenticación en dos pasos: dos hábitos que pueden salvar tus cuentas