Brute Force
Arsenal completo de comandos en la cheatsheetLa fuerza bruta consiste en probar muchas combinaciones (de contraseñas, PIN, tokens, rutas) hasta dar con la válida. Es ruidosa y, bien hecha, dirigida: rara vez se prueba "todo el espacio"; casi siempre se parte de una lista de candidatos razonable y de una observación que diga cuándo se acierta.
Sus formas.
- Diccionario. Probar una lista de contraseñas comunes (
rockyou.txt). Lo más habitual y rentable. - Pulverización (password spraying). Una sola contraseña probable contra muchos usuarios, para no bloquear cuentas. Útil tras una enumeración de usuarios.
- Fuerza bruta pura. Generar combinaciones por longitud y juego de caracteres. Sólo viable para secretos cortos o
PIN. - Reglas y mutaciones. Aplicar transformaciones a una wordlist (
hashcat --rules,cewlpara generar listas a partir del propio sitio).
El oráculo: saber cuándo se acierta. Lo decisivo no es lanzar peticiones, sino distinguir el éxito del fallo. En web se filtra por código de estado, longitud o redirección (wfuzz --hh/--hc, ffuf -fc/-fs); contra servicios, la herramienta lo gestiona (hydra, netexec). Sin un oráculo claro, la fuerza bruta es ciega.
hydra -L users.txt -P rockyou.txt <ip> ssh
hydra -l <user> -P rockyou.txt <ip> http-post-form '/login:user=^USER^&pass=^PASS^:F=incorrect'
netexec ssh <ip> -u users.txt -p rockyou.txt
medusa -h <ip> -U users.txt -P rockyou.txt -M ssh
wfuzz -u 'http://<host>/login' -d 'user=<user>&pass=FUZZ' -w rockyou.txt --hh=<len>
ffuf -w rockyou.txt -u http://<host>/login -X POST -d 'user=<user>&pass=FUZZ' -fc 401Online vs offline. Online (contra un servicio en vivo) es lenta y choca con bloqueos y rate limiting. Offline (contra un hash ya capturado, con hashcat/john) es mucho más rápida y no deja rastro en el objetivo: por eso robar el hash y crackearlo suele ser preferible.
Consideraciones de laboratorio vs mundo real. En un CTF no hay bloqueo de cuentas ni alertas; en real, una política de bloqueo, MFA, CAPTCHA o rate limiting pueden parar el ataque en seco o delatar al atacante. Conviene comprobar esas defensas antes de lanzar.
Cómo detectarlo. La fuerza bruta online es de las técnicas más detectables: muchos intentos fallidos en poco tiempo desde un mismo origen contra una cuenta o un endpoint. Cada servicio deja su rastro: SSH, ráfagas de Failed password en /var/log/auth.log; Windows, una avalancha de Event ID 4625 (y 4771/4776 en el DC); web, un pico de 401/403 o de POST al login con la misma longitud de respuesta. La contramedida de detección clásica es un contador de fallos por IP/cuenta (fail2ban, reglas SIEM). Ojo al acierto tardío: un 4624/200 correcto tras la ráfaga marca la cuenta comprometida. La variante offline (contra un hash robado) es indetectable en la víctima: ahí la señal es el robo previo del hash (ver crackeo de hashes).
Defensa. Contraseñas largas y únicas; MFA; bloqueo progresivo y rate limiting; CAPTCHA en formularios sensibles; respuestas uniformes para no servir de oráculo; almacenar hashes con algoritmos lentos (bcrypt, argon2). Relacionado con enumeración de usuarios y, en dominios, con Kerberoasting.