Descifrando datos operativos
Descifrando datos operativos
Blue Team — Protocolo de Defensa // 03
Hydra, Hashcat y credenciales filtradas en acción
Ningún ataque a credenciales sobrevive a una defensa en capas bien montada. El atacante apuesta a que te falta alguna pieza. Tu trabajo es no dejar ningún hueco.
¿Por qué importa?
Hydra genera miles de intentos por minuto. Sin rate limiting un login SSH cae en segundos. Con los hashes robados Hashcat trabaja offline a velocidad de GPU — sin que tu servidor sepa nada.
Limita los intentos de login por IP. Tras N fallos bloquea temporalmente.
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
maxretry = 5
findtime = 300
bantime = 3600
systemctl restart fail2ban
fail2ban-client status sshdSi solo permites claves SSH, la fuerza bruta de contraseñas es imposible por definición.
# /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
systemctl restart sshdAntes de deshabilitar el password, asegúrate de tener tu clave SSH configurada. Si te quedas afuera no podrás entrar.
MD5 se crackea en millisegundos. bcrypt y Argon2 están diseñados para ser lentos — hacen el cracking offline inviable.
# Python — hashear con bcrypt:
pip install bcrypt
import bcrypt
password = b"contrasena_del_usuario"
salt = bcrypt.gensalt(rounds=12)
hashed = bcrypt.hashpw(password, salt)
# Verificar:
bcrypt.checkpw(password, hashed) # TrueSupabase Auth ya usa bcrypt internamente. Esto aplica si manejas tu propia tabla de usuarios.
Con MFA, aunque el atacante tenga la contraseña correcta, no puede entrar sin el segundo factor.
# SSH con Google Authenticator:
sudo apt install libpam-google-authenticator
google-authenticator
# /etc/pam.d/sshd — añade:
auth required pam_google_authenticator.so
# /etc/ssh/sshd_config:
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactivePara apps web usa TOTP. SMS como segundo factor es mejor que nada pero vulnerable a SIM swapping.
// Indicadores que deberías monitorear para detectar esta técnica en acción.
Múltiples intentos de login fallidos desde una misma IP en menos de 60 segundos
Un mismo password probado contra muchos usuarios distintos — password spraying
Login exitoso desde geolocalización imposible — México y Rusia en minutos
Intentos de login con usuarios que no existen — enumeración de usuarios
Picos de tráfico hacia /login o puerto 22 desde fuentes externas