🛠️📝 Wordlists y Reglas de Contraseñas

Muchos usuarios crean contraseñas simples en lugar de seguras.
👉 Para mitigar esto, los sistemas aplican políticas de contraseñas:


👥 Comportamiento humano

Aunque existen políticas, los usuarios siguen patrones predecibles:


🧩 Ejemplos comunes de contraseñas

Descripción Sintaxis
Primera letra mayúscula Password
Agregar números Password123
Agregar año Password2022
Agregar mes Password02
Último carácter ! Password2022!
Caracteres especiales P@ssw0rd2022!

🛠️ Creación de Wordlists y Rules

Podemos usar Hashcat para mutar palabras base con rules.


📂 Archivo de entrada (password.list)

password

📂 Archivo de reglas (custom.rule)

:
c
so0
c so0
sa@
c sa@
c sa@ so0
$!
$! c
$! so0
$! sa@
$! c so0
$! c sa@
$! so0 sa@
$! c so0 sa@

🔑 Significado de las reglas

📌 Puedes combinar reglas → Ejemplo: c so0 $!


📌 Aplicar reglas a la lista

hashcat --force password.list -r custom.rule --stdout | sort -u > mut_password.list

📂 Salida (mut_password.list)

password
Password
passw0rd
Passw0rd
p@ssword
P@ssword
P@ssw0rd
password!
Password!
passw0rd!
p@ssword!
Passw0rd!
P@ssword!
p@ssw0rd!
P@ssw0rd!

💡 De 1 palabra base → obtuvimos 15 variaciones realistas.


⚡ Rules predefinidas

Hashcat y JtR ya traen rules listas:

Ejemplo:

hashcat -a 0 -m 0 hash.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule

🕵️ Generar Wordlists con OSINT + CeWL

Podemos extraer palabras de páginas web:

cewl https://www.inlanefreight.com -d 4 -m 6 --lowercase -w inlane.wordlist
wc -l inlane.wordlist

👉 Esto genera una lista con palabras relacionadas a la empresa, aumentando el % de éxito.


🧪 Ejercicio: Caso de Mark White

📋 OSINT Info:

📌 Hash a crackear:

97268a8ae45ac7d15c3cea4ce6ea550b


1️⃣ Crear el HTML local

Crea un archivo mark_white.html con el contenido:

<!DOCTYPE html>  
<html>  
<head><title>Mark White Bio</title></head>  
<body>  
<h1>Mark White</h1>  
<ul>  
<li>Born: August 5, 1998</li>  
<li>Works at Nexura, Ltd.</li>  
<li>Lives in San Francisco, CA, USA</li>  
<li>Pet: cat named Bella</li>  
<li>Wife: Maria</li>  
<li>Son: Alex</li>  
<li>Fan of baseball</li>  
</ul>  
</body>  
</html>

Guárdalo en la carpeta de trabajo donde vas a generar tu wordlist.

2️⃣ Servir el HTML con Python

python3 -m http.server 6969

3️⃣ Generar el diccionario con CeWL apuntando al HTML local

cewl -d 1 -m 2 --with-numbers  -w wordlist_mark.txt http://127.0.0.1:6969/mark_white.html

4️⃣ Generar combinaciones de palabras

hashcat --stdout -a 1 wordlist_mark.txt wordlist_mark.txt > combinacion_palabras.txt
awk 'length($0) >= 12' combinacion_palabras.txt > combinacion_palabras_12.txt

{5B940962-520C-4A72-90C1-19C0308EAB0E}.png

5️⃣ Crear reglas de transformación

Archivo custom.rule con reglas como:

:  
c  
so0  
c so0  
sa@  
c sa@  
c sa@ so0  
$!  
$! c  
$! so0  
$! sa@  
$! c so0  
$! c sa@  
$! so0 sa@  
$! c so0 sa@

6️⃣ Aplicar reglas a las combinaciones

hashcat --stdout -r custom.rule combinacion_palabras_12.txt > mut_mark_final.txt

{10620D4C-3955-4846-942A-BF7A5CF4A64C}.png
7️⃣ Crackear el hash

hashcat -a 0 -m 0 hash.txt mut_mark_final.txt