john-the-ripper-behackerpro-password-security-ciberseguridad

¿Qué es John the Ripper?

John the Ripper


¿Qué es John the Ripper?

Es una utilidad Open Source utilizada para auditar y recuperar contraseñas, fue creada por Solar Designer y podría decirles que es una de las herramientas para romper contraseñas de más alto desempeño y flexibles que existen en la actualidad.


¿Qué versiones existen?

Usted puede encontrar básicamente tres versiones de John (se le menciona así como abreviatura a John the Ripper), la versión free, que es ampliamente utilizada, la versión John the Ripper Pro y la versión John the Ripper Jumbo.

La versión Pro tiene ventajas frente a la free, por ejemplo: detecta de forma automática cualquier mejora tecnológica que soporte el procesador en la máquina donde se instalo, también viene con un diccionario de más de 4 millones de entradas; la auto detección de mejoras, le ahorra a uno tiempo, ya que le evita a uno tener que poner a compilar librerías para el hardware especial.

Existe un parche denominado John the Ripper Jumbo que permite trabajar con otra cantidad diferente de algoritmos, sin embargo se dice que las funcionalidades aún no están lo suficientemente maduras, así que podría presentar algún tipo de inconveniente.

En mi experiencia, no he tenido ningún inconveniente con la versión John the Ripper Jumbo.


¿Cuáles son los archivos más importantes de John?

john.conf

Archivo de configuración en Linux

john.ini

Archivo de configuración en Windows

john.pot

En este archivo se almacenan los passwords que John a crackeado

john.rec

En caso de estar realizando un proceso,John almacena su estado en este archivo, lo actualiza cada 10 minutos y en caso de que suceda algo inesperado, John utiliza este archivo para continuar donde había quedado


El archivo john.conf

Aquí se definen las opciones generales

 

que-es-john-the-ripper-img1-behackerpro-ciberseguridad

  • Wordlist = PATH 

En esta opción puede configurar la ruta hacia su diccionario o Worlist

  • Idle = Y

Esta opción puede ser configurada con “Y” (si) o “N” (no), viene por defecto configurada como “Y”, lo cual permitirá que John trate de usar solo los ciclos en el que el procesador está inactivo

  • Save = 600

Intervalo de tiempo en el cual se grabará el estado en el archivo john.rec, 600 segundos equivalen a 10 minutos,

  • Beep = N

Si está configurado con “Y”, emite un “sonido” al encontrar una contraseña

Opciones y reglas para el modo Single crack

 

que-es-john-the-ripper-img2-behackerpro-ciberseguridad

 

Opciones y reglas para el modo Wordlist

que-es-john-the-ripper-img3-behackerpro-ciberseguridad

 

¿Qué modos de cracking soporta John?

 

  • modo Single crack: En este caso John utiliza variaciones de la cuenta con la que inicia sesión el usuario y el campo GECOS

En la imagen se muestra el campo GECOS, es el campo número 5 de la línea correspondiente al usuario en el archivo /etc/passwd de Linux

 

que-es-john-the-ripper-img4-behackerpro-ciberseguridad

 

Las reglas del modo Single crack se definen debajo de [List.Rules:Single]

 

que-es-john-the-ripper-img5-behackerpro-ciberseguridad

 

  • modo Wordlist: Aplica un ataque de diccionario teniendo en cuenta las reglas de configuración, con estas reglas, realiza varias combinaciones utilizando las palabras en el diccionario, obteniendo de ese modo, un número verdaderamente amplio de intentos y de opciones. Dentro de los diccionarios más populares se encuentran “rockyou” y “kaonashi”; si utiliza Kali Linux, podrá encontrar el diccionario rockyou en  la ruta “/usr/share/wordlists/rockyou.txt”; si quiere utilizar kaonashi, puede consultar sobre ella en la siguiente https://github.com/kaonashi-passwords/Kaonashi. También podría elaborar su propio diccionario a partir de las reglas que usted considere pertinentes.

 

Las reglas del modo Wordlist se definen debajo de [List.Rules:Wordlist]

que-es-john-the-ripper-img6-behackerpro-ciberseguridad

 

  • modo Incremental: Este modo plantea un ataque por fuerza bruta que utiliza las reglas definidas por defecto en John
  • modo External: En este modo cualquier persona podría escribir su propio código en C con el cual John generaría contraseñas candidatas para sus intentos de crackeo.

¿Cómo utilizar John?

 

Puede instalar John en Linux y Windows, en este caso me voy a enfocar en LInux; si va utilizar un distribución como Debian, podría realizar la instalación desde los repositorios o, descargando los paquetes desde https://www.openwall.com/john/, ahí puede elegir la versión deseada e instalarlo manualmente. En Kali Linux, John viene instalado por defecto

Debian 10, instalación desde los repositorios:

 

$sudo apt install john   o

 

#apt install john

#apt-get install john

Caso de estudio de john en Kali Linux

 

Se tienen tres archivos en los cuales se encuentra un hash en cada uno:

root@testdrive:~/Documents/hashFiles# ls

hashNumber1.txt  hashNumber2.txt  hashNumber3.txt

 

Contenido del archivo hashNumber1.txt

dab0d2a8952393845a5546ab722c1c45

 

Contenido del archivo hashNumber2.txt

1ec32ca39b427db9f1eb69a2c43f6aadb055d665340177848b00c24554251b09

 

Contenido del archivo hashNumber3.txt

B3ED3855995560EB18F086B42C64BA80

 

John tiene la característica de poder determinar el hash al cual se le va a realizar el procedimiento; esta capacidad requiere procesamiento, por lo tanto es una buena práctica encargarnos nosotros mismos de determinar qué algoritmo fue utilizado para calcular el hash en cuestión; para determinar el tipo de hash, podemos utilizar herramientas como: hashID o hashTag (ya vienen instaladas en kali Linux)

 

Usted podría tener un indicio del tipo de hash utilizando HashID, tenga en cuenta que esta herramienta sugiere el tipo de hash que podría ser, es una herramienta confiable, sin embargo, no es infalible

 

que-es-john-the-ripper-img7-behackerpro-ciberseguridad

 

Resultado para hashNumber1.txt

que-es-john-the-ripper-img8-behackerpro-ciberseguridad

Para el hash del archivo hashNumber1.txt, la opción MD5 es la correcta

 

Resultado para hashNumber2.txt

que-es-john-the-ripper-img9-behackerpro-ciberseguridad

Para el hash del archivo hashNumber2.txt, la opción SHA-256 es la correcta

 

Resultado para hashNumber3.txt

que-es-john-the-ripper-img10-behackerpro-ciberseguridad

Para el hash del archivo hashNumber3.txt, ninguna de las dos opciones es correcta, lo sé porque yo fui quien calculó el hash, en este caso el hash fue calculado utilizando la función NTLM; así que tenga presente que esta herramienta no es 100% precisa.

 

Complemente la información que le entregan este tipo de herramientas con los indicios basados en: cantidad de caracteres del hash, sistema operativo de donde se obtuvo el hash, etc.

Una vez se tiene una certidumbre del tipo de hash, observe los formatos soportados por john:

Para hashNumber1.txt, debe buscar el formato apropiado de MD5 con el siguiente comando:

que-es-john-the-ripper-img11-behackerpro-ciberseguridad

 

con el comando anterior obtiene este resultado:

que-es-john-the-ripper-img12-behackerpro-ciberseguridad

 

Ahora se utiliza john para determinar el password, en este caso se utilizó el siguiente comando:

que-es-john-the-ripper-img13-behackerpro-ciberseguridad

 

En el comando anterior no se le introdujo ninguno modo de “crack” así que primero intentará el modo “single crack”, luego utilizará el modo “Wordlist” y por último el modo “incremental”

 

A continuación se observa el resultado (behack)

que-es-john-the-ripper-img14-behackerpro-ciberseguridad

 

Para hashNumber2.txt, debe buscar el formato apropiado de SHA256 con el siguiente comando:

que-es-john-the-ripper-img15-behackerpro-ciberseguridad

con el comando anterior obtiene este resultado:

que-es-john-the-ripper-img16-behackerpro-ciberseguridad

 

Ahora se utiliza john para determinar el password, en este caso se utilizó un comando en el cual se utiliza el formato Raw-SHA256 y un ataque por máscara (“mask attack) en el cual se le indicó a la utilidad que creara palabras de mínimo 4 y máximo 5 caracteres de longitud:

 

que-es-john-the-ripper-img17-behackerpro-ciberseguridad

con el comando anterior se obtuvo el siguiente resultado (owasp):

que-es-john-the-ripper-img18-behackerpro-ciberseguridad

 

Para el hashNumber3.txt, debe buscar el formato apropiado de NTLM con el siguiente comando:

que-es-john-the-ripper-img19-behackerpro-ciberseguridad

con el comando anterior se obtiene el siguiente resultado:

que-es-john-the-ripper-img20-behackerpro-ciberseguridad

 

Ahora se utiliza john para determinar el password, en este caso se utilizó un comando en el cual se utiliza el formato NT y un ataque por diccionario (Wordlist) en el cual se le indicó a la utilidad la ubicación del diccionario (/usr/share/wordlist/rockyou.txt):

que-es-john-the-ripper-img21-behackerpro-ciberseguridad

 

con el comando anterior se obtuvo el siguiente resultado (calidad):

que-es-john-the-ripper-img22-behackerpro-ciberseguridad

 

Finalmente podemos concluir que se han determinado los 3 passwords para cada uno de los hashes requeridos, utilizando  el comando más básico de john, el método de máscaras y el método de diccionario.

 

Espero que haya sido de utilidad para ustedes, recuerda ser un buen hacker y compartir con la comunidad!

 

¿Te gustó?

 

¡Déjanos tus comentarios!

Si quieres formar parte de nuestra comunidad, puedes suscribirte

Otras Entradas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *