GhostAcademy logo GhostAcademy
🔐 Password Cracking
John the Ripper

Guía completa de uso, instalación, modos de ataque y tareas prácticas con JtR en Kali Linux.

image1.jpg

JtR

¿Qué es John the Ripper?

John the Ripper es una herramienta de crackeo de contraseñas escrita

en C y muy utilizada por los analistas de seguridad para comprobar la

robustez de una clave frente a ataques de fuerza bruta. Este programa es

capaz de romper los hashes MD5, SHA-1 y otros muchos ampliamente

utilizados en el mundo informático. Este programa es capaz de detectar

de forma automática el tipo de hash que estamos crackeando, con el

objetivo de facilitar al usuario su crackeo sin necesidad de preocuparse

por el tipo de hash que está intentando «romper».

Algunas características muy importantes de este programa es que está

optimizado para muchos modelos de procesadores, funciona en muchas

arquitecturas de PC y también en diferentes sistemas operativos, no

obstante, generalmente se utiliza en sistemas operativos basados en

Linux, de hecho, las principales distribuciones Linux orientadas al

pentesting y a la seguridad informática ya incorporan de forma

predeterminada este programa.

Este programa es muy personalizable, nos permite definir la longitud a

probar de una contraseña, para generar todas las combinaciones posibles

y lograr el objetivo de crackear el hash. También nos permite configurar

qué rango de letras, números o símbolos podemos probar para descifrar la

contraseña, además, también permite incluir reglas para decidir cómo

deben hacerse las diferentes variaciones.

John the Ripper permite pausar el crackeo de la contraseña y continuarlo

en otro momento, esto es algo ideal por si tenemos que apagar nuestro PC

o servidor, además, se puede automatizar para empezar a crackear una

determinada contraseña al arrancar nuestro ordenador, y todo ello de

forma automática sin necesidad de intervención del administrador de

sistemas.

Algunos de sus usos, es en el ámbito de administración, este se usa para

evitar que los usuarios establezcan contraseñas con bajos niveles de

seguridad, o fáciles. Para esto, con la versión gratuita tendremos de

sobra, pues nos indicará si las contraseñas son lo suficientemente

seguras, sin necesidad de que ningún administrador sepa cuál es la

propia contraseña.

¿Qué versiones existen?

Actualmente, nos podemos encontrar tres versiones de este software. En

primer lugar, tenemos la versión gratuita, que es la más utilizada,

luego tenemos John the Ripper Pro, y la versión John The Ripper Jumbo.

Cabe destacar, que se trata de software libre, distribuido bajo licencia

GPL, que si bien permite que algunas partes se usen con otras licencias,

otras están bajo el dominio público. En un principio fue creado para

funcionar en sistemas Unix, pero actualmente podemos usarlo en unos 15

sistemas operativos diferentes. Entre ellos, once tipos de Unix, MS-DOS,

Windows, BeOS y OpenVMS. Pero lo más habitual es encontrarlo en las

distribuciones de Linux.

Si hablamos de la versión Pro, obviamente tendremos algunas ventajas

frente a la gratuita. Por ejemplo, en esta versión de pago nos detectará

de forma automática cualquier mejora en la tecnología que soporte el

procesador de la máquina en la que se instaló. También tendremos un

diccionario con más de 4 millones de entradas, donde detectará las

mejoras de forma automática. De este modo nos ahorrará tiempo al

evitarnos tener que realizar actualizaciones.

John the Ripper Jumbo, se trata de un parche que permite trabajar con

una mayor cantidad de algoritmos. Como se trata de la versión que está

en desarrollo, muchas de sus funciones no están a su máximo rendimiento,

por lo cual puede llegar a presentar algún inconveniente.

Similitudes entre John the Ripper y Hashcat:

John the Ripper y Hashcat son dos herramientas ampliamente

utilizadas para la auditoría de contraseñas, especialmente en el ámbito

de la seguridad informática y las pruebas de penetración. Aunque

ambas herramientas tienen el mismo objetivo, que es descifrar hashes de

contraseñas, tienen diferencias clave en términos de funcionalidades,

velocidad, compatibilidad y uso. A continuación tienes un resumen

detallado de sus similitudes y diferencias:

Similitudes entre John the Ripper y Hashcat:

contraseñas** a través de técnicas de descifrado, como ataques

de diccionario, fuerza bruta y combinaciones híbridas.

mediante la identificación de contraseñas débiles o mal

gestionadas.

para almacenar contraseñas, como MD5, SHA-1, SHA-256, NTLM,

bcrypt, entre otros.

fuerza bruta.

del diccionario para generar variaciones (e.g., cambiando

letras por números o aplicando mayúsculas/minúsculas).

que Hashcat tiene una versión de código abierto llamada

oclHashcat (anteriormente), aunque la versión principal

actual de Hashcat también es gratuita y abierta en gran medida.

ajustar configuraciones para personalizar los ataques según las

necesidades del usuario.

Diferencias entre John the Ripper y Hashcat:

especialmente en la ejecución de ataques a gran escala. Esto se

debe principalmente a su capacidad para aprovechar de manera más

efectiva el hardware moderno, especialmente las GPUs

(tarjetas gráficas).

aceleración por GPU (con versiones específicas como **John the

Ripper Jumbo**), su rendimiento en esta área es menos optimizado

que Hashcat.

de marcas como NVIDIA y AMD, lo que le otorga una

ventaja significativa en términos de rendimiento en ataques de

fuerza bruta.

también tiene versiones optimizadas para GPUs, aunque no tan

eficientes como Hashcat.

sencilla para usuarios novatos, siendo más accesible para

aquellos que se inician en la seguridad informática.

configurar y usar inicialmente, ya que requiere un conocimiento

más profundo de las configuraciones de GPU y los algoritmos de

hash que se quieren romper.

variedad de sistemas operativos como Linux, macOS y

Windows.

más específicas para sistemas operativos, particularmente cuando

se utilizan GPUs.

Hashcat tiende a soportar más algoritmos y tiene mejor

optimización para los hash modernos y complejos (como los de

criptomonedas y ciertos tipos de autenticación).

puede estar un poco más limitado en algunos casos, a menos que

se use la versión Jumbo, que añade más soporte de

algoritmos.

ataques basados en máscaras y combinaciones que son

extremadamente poderosos y optimizados.

algunos de estos modos avanzados.

actualizaciones frecuentes y soporte en foros y GitHub.

actualizaciones pueden no ser tan frecuentes como en Hashcat.

Conclusión:

herramienta fácil de usar, con buen soporte para CPU y

adecuada para ataques más simples o entornos sin necesidad de un

hardware especializado.

mayor rendimiento y están dispuestos a utilizar GPUs para

romper hashes de forma más rápida y eficiente, especialmente en

entornos de pruebas a gran escala o con algoritmos de hash más

modernos y complejos.

Ambas herramientas son esenciales en el arsenal de un profesional de

seguridad y se pueden usar de forma complementaria dependiendo de las

necesidades del ataque o auditoría.

image2.jpg

Modos de funcionamiento

John The Ripper tiene un funcionamiento que se basa en generar códigos

hash de miles de palabras que estén incluidas en un archivo de texto

plano, el cual se conoce como diccionario. No obstante, para tener una

idea más clara de cómo funciona, hay que conocer los diferentes modos de

funcionamiento de esta herramienta de código abierto que viene instalada

por defecto en sistemas Kali Linux. Por tanto, los modos son:

En este caso se trata de un modo en el que la herramienta usa el nombre

del usuario con la finalidad de poder generar distintas combinaciones y

así conseguir un código hash que se pueda comparar con el que está

intentando crackear.

Por otro lado, esta este segundo modo en el que se usa una lista de

palabras ya predeterminadas, las cuales se pueden adquirir de distintas

maneras. Hay que tener en cuenta que hay ya diccionarios más conocidos,

mientras que otros usuarios se basan en crear listas de palabras a

partir de los datos que se van filtrado de diferentes bases.

Mediante este modo, la herramienta de código abierto intenta crackear la

contraseña con un ataque por fuerza bruta. En cuanto a las reglas que

usa, son previamente definidas por el software en sí.

Por último, pero no menos importante está esta alternativa en la que se

usa una herramienta externa a John. Este puede servir para ejecutar

ataques de fuerza bruta por ejemplo.

image3.jpg

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

image4.jpg

El archivo john.conf

Aquí se definen las opciones generales

image5.jpg

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

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

Intervalo de tiempo en el cual se grabará el estado en el archivo

john.rec, 600 segundos equivalen a 10 minutos,

Si está configurado con "Y", emite un "sonido" al encontrar una

contraseña

Opciones y reglas para el modo Single crack

image6.jpg

Opciones y reglas para el modo Wordlist

image7.jpg

Instalación y prueba de rendimiento

Actualmente este programa está disponible en todos los repositorios de

las principales distribuciones de sistemas operativos Linux, por tanto,

lo podremos instalar de forma fácil y rápida sin problemas. En caso de

que no esté disponible para tu distribución, siempre vas a poder

añadirlo posteriormente editando el archivo de los repositorios

sudo apt install john

Una vez instalada la herramienta en nuestro sistema operativo, ya

podremos utilizarla y empezar a crackear contraseñas, no obstante, sería

muy recomendable antes de empezar a crackear claves, realizar una prueba

rápida de velocidad de nuestro ordenador.

Probar el rendimiento en nuestro PC

Antes de empezar con el crackeo de las contraseñas podemos lanzar un

sencillo test de rendimiento donde se pondrá a prueba nuestro hardware.

De esta manera, podremos saber la velocidad con la que la herramienta

probará claves con diferentes tipos de cifrado utilizando el 100% de

nuestra CPU. Para ello simplemente abrimos un terminal Linux y

tecleamos:

john \--test

image8.jpg

Como podemos ver, se llevan a cabo una serie de tests donde se medirá el

rendimiento, esto nos puede dar una idea en general de la potencia de

procesamiento de nuestro ordenador, con el objetivo de probar todas las

combinaciones de letras, números y símbolos en el menor tiempo posible.

Para empezar a familiarizarnos con John vamos a crear un documento

manualmente con un usuario y una contraseña y le indicaremos a John que

lo crackee. Vamos a hacer esto para obtener los resultados lo más

rápidamente posible (vamos a utilizar una clave muy simple como

ejemplo), y para tener una primera toma de contacto con la herramienta y

familiarizarnos con ella.

Para ello creamos un nuevo archivo de texto llamado «password.txt», por

ejemplo, con el siguiente contenido:

user:AZl.zWwxIh15Q

La forma de crear en Linux el archivo password.txt es escribiendo en la

terminal el siguiente comando:

echo \'user:AZl.zWwxIh15Q\' \> password.txt

image9.jpg

Una vez creado el archivo password.txt, vamos a indicar a John que

empiece a trabajar para crackear la contraseña del archivo. Para ello

tecleamos:

john password.txt

Debemos esperar a que esta herramienta consiga crackear la contraseña

del anterior archivo. Este proceso puede tardar horas e incluso días

según la dificultad de la misma.

image10.jpg

Nuestra contraseña está crackeada. En este caso nos la muestra

directamente, pero si no fuese así debemos utilizar el comando \--show

de la siguiente manera:

john \--show password.txt

Nuestra contraseña era «example». Ya podemos intentar iniciar sesión en

el sistema con el usuario «user» y la contraseña «example», o por lo

menos, podríamos hacerlo si hubiéramos trabajado directamente con el

fichero /etc/shadow, aunque el tiempo de crackeo hubiera tardado

seguramente mucho más que varios minutos.

Crackear contraseñas usando un diccionario de claves

Al igual que en el anterior ejemplo, en este caso vamos a partir de la

clave de ejemplo que hemos guardado a mano en el documento llamado

«password.txt«:

user:AZl.zWwxIh15Q

A continuación, lo que tenemos que hacer es tener o crear un diccionario

de claves personalizado. Podemos descargar estos diccionarios de

Internet, pero para hacer las primeras pruebas del programa vamos a

crear nosotros un diccionario sencillo, al que llamaremos

«passwords.lst» y en el que introduciremos varios valores, cada uno

en una línea, pero siendo uno de ellos la palabra «example» (ya que

corresponde con nuestra contraseña).

image11.jpg

A continuación, simplemente debemos ejecutar John the Ripper con el

parámetro \--wordlist= seguido de la ruta de nuestro archivo.

john \--wordlist=passwords.lst password.txt

image12.jpg

john \--show password.txt

Al tener una clave sencilla y pocas entradas del diccionario, el proceso

será prácticamente instantáneo. Ya hemos crackeado, o descifrado, la

contraseña. Lo único que nos queda por hacer es utilizar el parámetro

\--show para que nos muestre el resultado.

Tareas

En este proyecto, aprenderás a usar John the Ripper, una poderosa

herramienta de craqueo de contraseñas, para romper contraseñas. Cracking

password hash es una habilidad esencial para los hackers éticos, ya que

ayuda a identificar contraseñas débiles y mejorar la seguridad general.

Al final de este proyecto, podrás realizar crackeos básicos de

contraseña y entender la importancia de las contraseñas fuertes.

Pre-requisitos

Configuración de laboratorio y herramientas

Diagrama

Aquí hay un simple diagrama de red para esta configuración de

laboratorio:

Atacante - Sistema de la Máquina Kali - (192.168.1.xxx)

Herramientas

pruebas forenses digitales y de penetración.

contraseña.

Instalación

John the Ripper está preinstalado en Kali Linux. Puedes verificar la

instalación o actualizarlo usando el siguiente comando:

bash
sudo apt-get update && sudo apt-get install john

Tarea 1: Basic Password Cracking

La mayoría de las aplicaciones web necesitan verificar la contraseña de

un usuario en algún momento. Almacenar estas contraseñas en texto plano

sería una mala práctica. Tampoco se podrían cifrar, ya que alguien que

tenga acceso a la llave de cifrado (administradores o atacantes) podrían

obtener todas las contraseñas almacenadas.

Aquí es donde entra el hash. ¿Qué pasaría si, en lugar de almacenar la

contraseña, simplemente almacena el hash? Esto significa que nunca se

tendría que almacenar la contraseña del usuario, y si se filtra la base

de datos, un atacante tendría que comparar todos los hashes contra un

diccionario para averiguar cuál era la contraseña.

Aunque los algoritmos de hash son muy difíciles de revertir. Eso no

significa los hashes sean infalibles. Si tienes el algoritmo empleado y

la cadena final, ejemplo:

Hash: SHA256

**Cadena:

20bc360e9603edb25a6692d319d1e97444c74464699d09e1461ce08b60aa6e20**

Lo que puedes hacer es tomar el diccionario y "hashear" todas las

palabras de esta forma podrías deducir que el password empleado en este

caso es: window

Este proceso es un ejemplo del tipo denominado ataque de diccionario y

John the Ripper, o John, es una herramienta que te permite realizar este

tipo de ataques, así como de fuerza bruta en una gran variedad de

diferentes tipos de hash.

Con esta web podemos sacar el hash256 de una palabra online o también

podemos usar la terminal de Kali para sacarlo. En este ejemplo usaremos

la palabra "window"

[[https://hash.online-convert.com/es/generador-sha256]{.underline}](https://hash.online-convert.com/es/generador-sha256)

bash
echo \"window\" \| sha256sum
bash
echo \"window\" \| shasum
image13.jpg

En esta imagen podemos apreciar la diferencia de complejidad entre un

Sha y un Sha256

Window

hex:

bash
44ff7b02c80d38b26dd6aa31d9470aed81b32e10331a3c994fb1a9945fd847ba

HEX:44FF7B02C80D38B26DD6AA31D9470AED81B32E10331A3C994FB1A9945FD847BA

h:e:x:44:ff:7b:02:c8:0d:38:b2:6d:d6:aa:31:d9:47:0a:ed:81:b3:2e:10:33:1a:3c:99:4f:b1:a9:94:5f:d8:47:ba

base64: RP97AsgNOLJt1qox2UcK7YGzLhAzGjyZT7GplF/YR7o=

Paso1: Crear un archivo de texto llamado password.txt que contiene

un hash de contraseña. Por ejemplo:

echo

\'44ff7b02c80d38b26dd6aa31d9470aed81b32e10331a3c994fb1a9945fd847ba\' \>

password.txt

Paso2: Abre una terminal en tu máquina Kali Linux. Ejecuta John el

Destripador para romper los hahs de contraseña en passwords.txt:

john password.txt

Al ejecutar el comando john password.txt nos indica que es un formato

sha256 y nos pide que usemos el formato como parte de la instrucción:

image14.jpg

**sudo john \--format=Raw-SHA256

\--wordlist=/usr/share/john/password.lst password.txt**

image15.jpg

Salida esperada: John el Destripador debe comenzar el proceso de

crackeadas y eventualmente mostrar las contraseñas crackeadas. Podemos

comprobar como tarda 0 segundos en descifrar el hash. John ha encontrado

la palabra que se esconde tras el hash porque la palabra estaba en su

password.lst, Pero, ¿qué ocurre si la palabra no está en la lista?

Entonces tendremos que usar un diccionario más extenso o crear un

propio.

Para crear diccionarios extensos personalizados podemos utilizar Crunch

Tarea 2: Usando un Wordlist personal

Paso1: Vamos a descargar un diccionario muy común llamado

rockyou.txt que contiene contraseñas potenciales.

Lo podemos descargar desde

https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt

Vamos a utilizar el ejemplo del principio y volveremos a meter nuestra

contraseña dentro de un archivo llamado password.txt:

bash
user:AZl.zWwxIh15Q

echo \'user:AZl.zWwxIh15Q\' \> password.txt

image16.jpg

Paso2: Utiliza John el Destripador con el diccionario rockyou.txt

para descifrar los hashs de contraseña:

sudo john \--wordlist=/usr/share/wordlists/rockyou.txt password.txt

Salida esperada: John the Ripper debe usar el diccionario personalizado

(en este caso rockyou.txt) para descifrar las contraseñas y mostrar los

resultados.

image17.jpg

Tarea 3: Descifrar la Contraseña de un archivo Comprimido

Vamos a descifrar una contraseña de un archivo zip. Para hacer eso,

primero tenemos que obtener el hash de la contraseña del archivo zip.

Como unshadow, John tiene otra utilidad llamada zip2john.

Paso1: Comprimiremos un archivo .zip protegido por contraseña:

image18.jpg
bash
zip2john nos ayuda en obtener el hash de los archivos zip. Si estás

descifrando un archivo .rar, puedes usar la utilidad rar2john como

veremos más adelante.

Esta es la sintaxis para obtener el hash de la contraseña de un archivo

zip:

zip2john file.zip \> zip.hashes

El comando de arriba obtendrá el hash de un archivo zip y lo almacenará

en el archivo zip.hashes. Luego puedes usar John para descifrar el hash.

john zip.hashes

Paso2: Entonces sacamos el hash del archivo .zip:

zip2john jtr.zip \> zip.hashes

Paso3: para luego descifrarlo:

john zip.hashes

El resultado es la contraseña con la que protegimos el archivo. Ya

podemos abrirlo.

image19.jpg

Paso4: Vamos a repetir la misma operación, pero esta vez con un

archivo .rar y otra contraseña:

Esta es la sintaxis para obtener el hash de la contraseña de un archivo

.rar:

rar2john file.rar \> rar.hashes

El comando de arriba obtendrá el hash de un archivo zip y lo almacenará

en el archivo zip.hashes. Luego puedes usar John para descifrar el hash.

john rar.hashes

Entonces, en mi caso el nombre del .rar es JTR, luego:

rar2john JTR.rar \> rar.hashes

image20.jpg

y luego:

john rar.hashes

image22.jpg

En unos minutos descifra la contraseña utilizando el diccionario:

¿Y si la contraseña no está en el diccionario? Entonces empezaría a

buscarla mediante el modo incremental. En ese caso, si la contraseña es

larga podríamos tardar bastante más tiempo:

image25.jpg

Tarea 4: Cracking Shadow File Hashes

Paso1: Conseguir un archivo de shadow de muestra que contiene hashs

de contraseña.

En mi caso voy a utilizar en una prueba el fichero /etc/shadow de mi

máquina virtual Kali, y en la otra prueba el fichero /etc/shadow de otra

máquina.

El proceso implica dos pasos básicos; el primero se llama unshadowing

mientras que el segundo es el crackeado en sí.

http://manpages.ubuntu.com/manpages/xenial/man8/unshadow.8.html

es un proceso en el que combinamos el archivo /etc/passwd junto con el

/etc/shadow para que John pueda entender lo que le estamos alimentando.

http://manpages.ubuntu.com/manpages/xenial/man8/unshadow.8.html

es una herramienta que maneja esta tarea y es parte del paquete John.

Para desensombrar el archivo de sombras necesitamos también tener la

línea equivalente de la passwd para el usuario de nuestro interés. Por

ejemplo:

/etc/passwd line

root:x:0:0:root:/root:/bin/bash

/etc/shadow line

root:\$6\$riekpK4m\$uBdaAyK0j9WfMzvcSKYVfyEHGtBfnfpiVbYbzbVmfbneEbo0wSijW1GQussvJSk8X1M56kzgGj8f7DFN1h4dy1:18226:0:99999:7:::

Paso2: Extraer los hashes de contraseña del archivo de sombra en un

nuevo archivo llamado unshadowed. Con el fin de desensombrar a los dos

archivos que necesitamos ejecutar:

bash
sudo unshadow /etc/passwd /etc/shadow \> unshadowed

Esto almacenará en el archivo unshadowed lo siguiente:

root:\$6\$riekpK4m\$uBdaAyK0j9WfMzvcSKYVfyEHGtBfnfpiVbYbzbVmfbneEbo0wSijW1GQussvJSk8X1M56kzgGj8f7DFN1h4dy1:0:0:root:/root:/bin/bash

image26.jpg

Paso3: Utiliza a John The Ripper para romper los hahs de la

contraseña en unshadowed.hashes.txt:

john \--wordlist=/home/kali/Desktop/rockyou.txt unshadowed.txt

Salida esperada: John The Ripper debe comenzar el proceso de agrietado y

eventualmente mostrar las contraseñas.

Adicionalmente podemos utilizar el siguiente comando para tratar de

extraer la contraseña directamente del archivo /etc/shadow

└─\$ sudo john /etc/shadow \--format=crypt

image29.jpg

Tarea 5: Cracking con modo incremental

Paso1: Utilíza a John The Ripper en modo incremental para intentar

una grieta de fuerza bruta en los hahs de contraseña:

bash
john \--incremental passwords.txt

Vamos a volver al archivo llamado «password.txt« del principio:

bash
user:AZl.zWwxIh15Q

Creamos el archivo password.txt:

bash
echo \'user:AZl.zWwxIh15Q\' \> password.txt

Paso2: Usamos el comando \--incremental:

bash
john \--incremental password.txt

Salida esperada: John The Ripper debe comenzar el proceso de fuerza

bruta y mostrar las contraseñas a medida que las encuentra.

image30.jpg

Tarea 6: Cracking contraseñas con reglas

¿Qué son las reglas en John the Ripper?

Las reglas son un conjunto de comandos o instrucciones que le dicen a

JtR cómo modificar las contraseñas o las palabras de un diccionario para

generar nuevas combinaciones. Estas reglas se definen en el archivo de

configuración de JtR (john.conf), bajo la sección \[List.Rules\].

Cada regla se compone de un conjunto de acciones, como agregar,

eliminar, reemplazar o modificar caracteres en las contraseñas

originales.

Sintaxis básica de las reglas

Cada regla está formada por una cadena de caracteres donde cada carácter

representa una acción o modificación específica que se debe aplicar a la

contraseña original.

Ejemplo de una regla:

image31.jpg

Acciones comunes en las reglas

A continuación, se presenta una lista de los comandos más utilizados en

las reglas de John the Ripper:

siguiente carácter.

caracteres).

Ejemplos prácticos de reglas

1. Capitalización de la primera letra:

Esta regla convierte la primera letra de cada palabra en mayúscula.

image32.jpg

2. Agregar números al final:

Añade un número al final de cada palabra.

image33.jpg

3. Reemplazar letras comunes por números (leet speak):

Sustituye letras por números siguiendo un patrón común de \"leet speak\"

image34.jpg

4. Añadir secuencias numéricas:

Esta regla genera palabras con secuencias numéricas agregadas al final.

image35.jpg

5. Invertir el caso de la palabra:

Invierte el caso de todas las letras.

image36.jpg

6. Invertir la palabra:

Invierte el orden de los caracteres en la palabra.

image37.jpg

Uso de reglas en John the Ripper

Para utilizar las reglas en JtR, estas se definen en el archivo de

configuración, por lo general dentro de la sección

\[List.Rules:Wordlist\]. Luego, puedes invocar las reglas durante el

ataque con el siguiente comando:

image38.jpg

john.conf.

Ejemplo:

Supongamos que tienes un archivo de diccionario llamado passwords.txt y

deseas probar diferentes variaciones usando las reglas de capitalización

y números al final:

image39.jpg

Esto aplicará las reglas predefinidas y generará variaciones como

Password, password1, Password123, etc.

Reglas avanzadas

Puedes crear reglas más complejas combinando varias acciones en una

misma línea. Por ejemplo:

image40.jpg

Conclusión

Las reglas en John the Ripper son una herramienta poderosa para

incrementar las posibilidades de éxito en un ataque de fuerza bruta, ya

que permiten generar múltiples variaciones de las contraseñas

originales. Aprender a usarlas eficientemente, y crear reglas

personalizadas basadas en los patrones comunes de contraseñas, puede

optimizar significativamente los intentos de cracking.

Paso1: Utiliza a John The Ripper con un enfoque basado en reglas

para romper los hahs de contraseña. Por ejemplo, utiliza las reglas por

defecto proporcionadas por John The Ripper:

bash
john \--rules passwords.txt

Salida esperada: John The Ripper debe aplicar las reglas e intentar

descifrar las contraseñas, mostrando cualquier resultado exitoso.

Tarea 7: Analizar contraseñas descifradas

El comando john \--show en John the Ripper se utiliza para mostrar

las contraseñas descifradas de un archivo de hashes. Este comando

proporciona una manera rápida de ver cuáles contraseñas ya han sido

descifradas sin tener que analizar manualmente los resultados de los

ataques.

Sintaxis básica:

image41.jpg

contraseñas que se están atacando.

Funcionamiento del comando john \--show:

Cuando ejecutas John the Ripper en un archivo de hashes, todas las

contraseñas descifradas se almacenan en el archivo john.pot (también

llamado potfile). Este archivo es una especie de \"base de datos\"

que John usa para registrar todas las contraseñas descifradas.

Al ejecutar john \--show, el programa compara los hashes del archivo de

entrada con las contraseñas almacenadas en john.pot, mostrando

directamente los resultados sin necesidad de volver a realizar un

ataque.

Ejemplo práctico:

Supongamos que tienes un archivo de hashes llamado hashes.txt y ya has

ejecutado John the Ripper previamente para descifrar algunas

contraseñas.

1. Ejecutar el ataque de John the Ripper:

image42.jpg

2. Mostrar las contraseñas descifradas: Una vez que se han

descifrado algunas contraseñas (o si ya habías ejecutado un ataque

previamente), puedes usar el siguiente comando para verlas:

image43.jpg

Salida del comando:

image44.jpg

En este ejemplo:

password123.

Al final, John indica cuántos hashes han sido descifrados y cuántos

quedan pendientes. En este caso, 3 contraseñas han sido descifradas y no

quedan más por descifrar.

Detalles adicionales del comando john \--show:

usuario:contraseña, lo que hace fácil identificar a qué usuario

corresponde cada contraseña descifrada.

hashes y los has atacado en diferentes momentos, John almacena todas

las contraseñas descifradas en el archivo john.pot, lo que significa

que al usar john \--show en cualquier momento, puedes ver las

contraseñas descifradas para todos los archivos anteriores.

Opciones adicionales de john \--show:

Mostrar todas las contraseñas, incluyendo las no descifradas: Si

quieres ver tanto las contraseñas descifradas como las no descifradas,

puedes agregar la opción \--show=left:

image45.jpg

 Esto mostrará las contraseñas que aún no han sido descifradas.

Visualizar contraseñas de otros archivos de hashes: Si quieres ver

todas las contraseñas descifradas en algún archivo específico, puedes

simplemente proporcionar el archivo correspondiente, tal como en el

ejemplo

image46.jpg

Restaurar un ataque: Si por alguna razón interrumpes un ataque y

deseas continuarlo más tarde, puedes usar el comando:

image47.jpg

Después, puedes ejecutar john \--show para verificar las contraseñas

descifradas hasta el momento.

Resumen:

El comando john \--show es útil para obtener una vista rápida de las

contraseñas descifradas y permite comprobar el progreso de los ataques

realizados previamente. Recuerda que John siempre guarda las contraseñas

en el archivo john.pot, por lo que no necesitas realizar el ataque

nuevamente para obtener una lista de las contraseñas ya descifradas.

Paso 1: Después de descifrar las contraseñas, analiza los resultados

para identificar patrones y debilidades comunes.

Paso2: Utilíza el comando john \--show para mostrar todas las

contraseñas descifradas:

bash
john \--show passwords.txt

Salida esperada: Una lista detallada de todas las contraseñas

descifradas y sus correspondientes hashes, destacando patrones de

contraseña comunes.

Recursos adicionales

Este proyecto le ayudará a entender cómo romper los hashes de contraseña

usando John the Ripper en Kali Linux, destacando la importancia de

políticas de contraseñas fuertes y algoritmos de hashing seguros.

[[John The Ripper Documentación Kali

https://www.kali.org/tools/john/

https://www.hackingarticles.in/beginners-guide-for-john-the-ripper-part-2/

https://github.com/openwall/john

https://www.sodapdf.com/password-protect-pdf

https://www.hackingarticles.in/beginner-guide-john-the-ripper-part-1/

https://www.hackingarticles.in/beginners-guide-for-john-the-ripper-part-2/

image48.jpg image49.jpg