Los ataques a contraseñas buscan obtener credenciales válidas probando muchas posibilidades. Siguen siendo muy efectivos porque las contraseñas suelen ser débiles, predecibles o reutilizadas.
Se dividen en dos grandes tipos según dónde se prueban: online (contra un servicio en funcionamiento) y offline (contra un hash ya obtenido, en la máquina del atacante).
Ataque online — Hydra
Se prueban credenciales directamente contra un servicio vivo (SSH, FTP, formularios web, RDP…).
# Fuerza bruta de SSH con usuario fijo y diccionario de contraseñas
hydra -l admin -P rockyou.txt ssh://10.10.10.10
-l es un usuario; -L una lista de usuarios; -P la lista de contraseñas. Es ruidoso: genera muchos intentos fallidos y puede bloquear cuentas.
Ataque offline — Hashcat
Ya se tiene el hash (la contraseña convertida con una función de una vía). Se craquea localmente, aprovechando la GPU, sin contacto con el objetivo.
# Modo diccionario (-a 0) sobre hashes en hashes.txt usando rockyou
hashcat -m 0 -a 0 hashes.txt rockyou.txt
-m indica el tipo de hash (0 = MD5); -a 0 es ataque por diccionario, -a 3 por fuerza bruta.
| Online (Hydra) | Offline (Hashcat) | |
|---|---|---|
| Contra qué | Un servicio en vivo | Un hash ya capturado |
| Velocidad | Lenta (limitada por la red) | Muy alta (GPU) |
| Ruido / detección | Alto | Nulo |
El diccionario más usado es rockyou.txt, una lista de millones de contraseñas reales filtradas.
Obtener una credencial válida da acceso, pero casi siempre como usuario con permisos limitados. Para operar cómodamente sobre el sistema comprometido se usan shells y payloads, el próximo tema del pilar.