Hashes, MACs & KDFs
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Patrones comunes en CTF
- “Signature” es en realidad
hash(secret || message)→ length extension. - Hashes de contraseñas unsalted → trivial cracking / lookup.
- Confundir hash con MAC (hash != autenticación).
Hash length extension attack
Técnica
A menudo puedes explotar esto si un servidor calcula una “signature” como:
sig = HASH(secret || message)
y usa un hash Merkle–Damgård (ejemplos clásicos: MD5, SHA-1, SHA-256).
Si conoces:
messagesig- función hash
- (o puedes brute-forcear)
len(secret)
Entonces puedes calcular una signature válida para:
message || padding || appended_data
sin conocer el secret.
Limitación importante: HMAC is not affected
Los ataques de length extension se aplican a construcciones como HASH(secret || message) para hashes Merkle–Damgård. No se aplican a HMAC (p. ej., HMAC-SHA256), que está diseñado específicamente para evitar esta clase de problema.
Herramientas
- hash_extender: GitHub - iagox86/hash_extender
- hashpump: https://github.com/bwall/HashPump
Buena explicación
https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks
Password hashing and cracking
Primeras preguntas
- ¿Está salted? (busca formatos
salt$hash) - ¿Es un fast hash (MD5/SHA1/SHA256) o un slow KDF (bcrypt/scrypt/argon2/PBKDF2)?
- ¿Tienes una format hint (hashcat mode / John format)?
Flujo de trabajo práctico
- Identifica el hash:
hashid <hash>hashcat --example-hashes | rg -n "<pattern>"
- Si es unsalted y común: prueba DBs online y herramientas de identificación de la sección crypto workflow.
- De lo contrario, crackea:
hashcat -m <mode> -a 0 hashes.txt wordlist.txtjohn --wordlist=wordlist.txt --format=<fmt> hashes.txt
Errores comunes que puedes explotar
- Misma contraseña reutilizada entre usuarios → crackea una, pivot.
- Hashes truncados / transformaciones personalizadas → normaliza y reintenta.
- Parámetros débiles de KDF (p. ej., pocas iteraciones PBKDF2) → aún crackeable.
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.


