Saltearse al contenido

Password Spraying

El password spraying invierte la fuerza bruta clásica: en vez de probar muchas contraseñas contra un usuario (lo que bloquea la cuenta), prueba una contraseña plausible contra muchos usuarios. Como las políticas de bloqueo cuentan intentos por cuenta, un intento por usuario cada cierto tiempo pasa por debajo del umbral. En un dominio con cientos de empleados, basta con que una persona use Empresa2025! o Verano2025 para conseguir un punto de apoyo.

El atacante explota la estadística humana: en cualquier organización grande, alguien usa una contraseña débil que cumple la política de complejidad (Nombre+año+símbolo). Como solo necesita una válida y el spraying evita el bloqueo, el coste es bajísimo y el ruido, moderado. Requiere una lista de usuarios (de Enumeración de Active Directory) y conocer la política de bloqueo para no pasarse.

  • Lista de usuarios válidos (userenum por Kerberos, enum4linux, OSINT de nombres).
  • Política de bloqueo (net accounts, nxc ... --pass-pol): umbral de intentos y ventana de observación → define cuántos intentos y con qué espaciado.

Contraseñas que cumplen complejidad pero son adivinables:

Estación/mes + año + símbolo: Verano2025! Otoño2025! Enero2025!
Empresa + año: Acme2025! Acme1234
Base común: Password1 Welcome1 Changeme123
Patrones de teclado: Qwerty123! Zaq12wsx

Además: el nombre de usuario como contraseña, y contraseñas de description encontradas en enum.

# NetExec contra SMB (respeta el umbral: 1 intento/usuario por ronda)
nxc smb <DC> -u users.txt -p 'Verano2025!' --continue-on-success
# Kerberos pre-auth (más sigiloso, no genera 4625 de SMB)
kerbrute passwordspray -d dominio.local --dc <DC> users.txt 'Verano2025!'
# LDAP/WinRM/MSSQL también válidos como superficie
nxc ldap <DC> -u users.txt -p 'Verano2025!'

Regla de oro: un intento por cuenta y por ronda, y espera a que pase la ventana de observación del lockout antes de probar la siguiente contraseña. Mejor pocas contraseñas muy probables que muchas.

  • AS-REP roasting como spray: si hay cuentas sin preauth, obtienes hashes sin probar contraseñas (Ataques Kerberos).
  • Spray contra servicios externos: OWA/Exchange, VPN, ADFS, portales O365 (MFA puede frenar, pero no siempre cubre todo).
  • Reutilización: una contraseña crackeada de Responder/NTLM probada contra todos (credential stuffing interno).

Un único [+] da credenciales de dominio → salto a enumeración completa (Enumeración de Active Directory/BloodHound), más spraying con esa contraseña en otros servicios, y búsqueda de dónde esa cuenta es admin local.

  • NetExec (nxc) — spray multiprotocolo (SMB/LDAP/WinRM/MSSQL/RDP) con control de bloqueo.
  • kerbrute — spray por Kerberos pre-auth (rápido y más sigiloso).
  • DomainPasswordSpray (PowerShell, desde dentro del dominio, autodescubre usuarios y política).
  • MailSniper — spray contra OWA/Exchange externos.

Acceso inicial o lateral con credenciales válidas de dominio, a menudo partiendo solo de una lista de nombres. Es uno de los vectores de entrada más comunes a AD y el inicio de incontables intrusiones reales.

  • Muchos 4625 (fallos de logon) de una contraseña contra muchas cuentas en una ventana corta → firma clásica de spray.
  • Kerberos: muchos 4768/4771 con pre-auth fallida desde un mismo origen.
  • Logins exitosos (4624) desde IP/origen inusual tras una ráfaga de fallos; picos en OWA/VPN/ADFS.

Correlaciona 4625/4771 por contraseña/origen en vez de por cuenta (el spray se diluye si miras solo por cuenta). SIEM con reglas de “N cuentas distintas, mismo origen, misma ventana”. Vigila logs de Exchange/VPN/ADFS.

  • MFA en todo lo expuesto (VPN, OWA, portales) — la mitigación de mayor impacto.
  • Contraseñas fuertes y baneo de patrones comunes: Azure AD Password Protection / banned-password lists impiden Empresa2025!.
  • Smart lockout y políticas de bloqueo bien calibradas; alertas en el umbral.
  • Reduce la superficie de autenticación expuesta; deshabilita protocolos legacy (IMAP/POP/SMTP auth básica) que saltan MFA.
  • Longitud mínima alta (passphrases), rotación sensata, y detección de reutilización.

Resetea las cuentas comprometidas, fuerza MFA, investiga qué alcanzó la cuenta (sesiones, accesos), y busca spraying lateral con la misma contraseña en otros sistemas.

  • El password spraying no es un CVE: es TTP (MITRE T1110.003), de los más usados para acceso inicial.
  • APT: Midnight Blizzard / Nobelium (2024) comprometió a Microsoft vía password spraying contra una cuenta legacy sin MFA — caso de referencia reciente.
  • APT33, Lazarus, numerosos grupos emplean spraying contra O365/VPN como entrada documentada.
  • Innumerables intrusiones de ransomware empiezan por spray contra RDP/VPN expuestos.
  • ¿Tienes lista de usuarios válidos y la política de bloqueo?
  • Candidatas que cumplen complejidad (estación+año, empresa+año)
  • Un intento/cuenta por ronda, respetando la ventana de lockout
  • Spray por Kerberos (sigiloso) y por SMB/LDAP
  • Username = password; contraseñas de descripciones
  • Spray contra servicios externos (OWA/VPN/ADFS) — ¿MFA?
  • Reutilización de una contraseña crackeada contra todos
  • Blue: ¿detección por origen/contraseña y MFA desplegada?