Password Spraying – Enumerar usuarios
Para realizar un ataque de password spraying necesitamos primero una lista de usuarios válidos del dominio con los que intentaremos autenticarnos.
🧾 Métodos para obtener usuarios del dominio
🔸 1. SMB NULL Session
Permite conectar sin credenciales y extraer usuarios del DC.
Herramientas:
-
enum4linux -
rpcclient -
CrackMapExec
enum4linux
enum4linux -U 172.16.5.5 | grep "user:" | cut -f2 -d"[" | cut -f1 -d"]"
rpcclient
rpcclient -U "" -N 172.16.5.5
rpcclient$> enumdomusers

El flag --users de CrackMapExec también muestra:
-
badpwdcount(intentos fallidos) -
baddpwdtime(último intento fallido)
🔸 2. LDAP Anonymous Bind
Permite consultar AD sin autenticación.
Herramientas:
-
ldapsearch -
windapsearch
ldapsearch -h 172.16.5.5 -x -b "DC=INLANEFREIGHT,DC=LOCAL" -s sub "(&(objectclass=user))" \
| grep sAMAccountName: | cut -f2 -d" "
./windapsearch.py --dc-ip 172.16.5.5 -u "" -U
🔸 3. Enumeración con Kerbrute (Kerberos)
Muy rápido y silencioso comparado con NTLM/SMB.
- Envía solicitudes TGT sin preautenticación.
- Si recibe PRINCIPAL UNKNOWN, el usuario no existe.
- Si pide preautenticación, el usuario sí existe.
Al realizar password spraying con Kerberos, los fallos sí cuentan para bloqueo de cuenta.
kerbrute userenum -d inlanefreight.local --dc 172.16.5.5 /opt/jsmith.txt

🔸 4. Recon externo (OSINT)
Si no tienes acceso interno:
Herramientas:
-
linkedin2username -
Emails corporativos
-
Listas estadísticas (statistically-likely-usernames)
🔸 5. Enumeración con credenciales válidas
Si ya tienes credenciales o acceso SYSTEM.
crackmapexec smb 172.16.5.5 -u htb-student -p Academy_student_AD! --users
🔐 Importancia de la Política de Contraseñas
Saber esto permite planear nuestro ataque:
-
📏 Longitud mínima
-
🔤 Complejidad habilitada
-
🚫 Umbral de bloqueo (lockout threshold)
-
⏳ Bad password timer (cuándo se reinicia el conteo)
Si no se puede obtener:
-
Preguntar al cliente.
-
Usar spray muy cuidadoso (una contraseña cada varias horas).
🗒️ Registro de Actividades
-
Usuarios objetivo
-
DC usado
-
Fecha y hora
-
Contraseña(s) usada(s)
Esto evita duplicar intentos y permite explicar alertas al cliente.
🧰 Herramientas Clave
| Función | Herramienta |
|---|---|
| SMB NULL Session | enum4linux, rpcclient, CME |
| LDAP Anonymous Bind | ldapsearch, windapsearch |
| Kerberos | Kerbrute |
| OSINT | linkedin2username |
| Enumeración con credenciales | CME |