Enumeración de subdominios
Cada subdominio de una organización (mail., dev., vpn., jira., admin.) es una puerta potencial, y a menudo la más débil: los subdominios olvidados, de staging o de servicios de terceros suelen estar peor protegidos que el dominio principal. Enumerar subdominios es ampliar la superficie de ataque, y es de los primeros pasos de todo recon porque cada hallazgo abre nuevas líneas de trabajo.
Tres enfoques (complementarios)
Sección titulada «Tres enfoques (complementarios)»Se combinan los tres para cobertura máxima: pasivo (fuentes de terceros), fuerza bruta (diccionario contra DNS) y permutaciones (variaciones de lo encontrado).
Pasivo (sin tocar al objetivo)
Sección titulada «Pasivo (sin tocar al objetivo)»# agregadores de múltiples fuentessubfinder -d target.com -all -silentamass enum -passive -d target.com# Certificate Transparency: los certificados revelan subdominioscurl -s "https://crt.sh/?q=%25.target.com&output=json" | jq -r '.[].name_value' | sort -u# otros: SecurityTrails, VirusTotal, Censys, DNSdumpsterCertificate Transparency (crt.sh) es especialmente potente: cada certificado emitido queda en logs públicos, revelando subdominios internos que nunca se publicaron.
Fuerza bruta de DNS
Sección titulada «Fuerza bruta de DNS»Probar un diccionario de nombres comunes contra el DNS del objetivo:
# herramientas rápidas con resolverspuredns bruteforce subs.txt target.com -r resolvers.txtgobuster dns -d target.com -w subdomains.txtffuf -w subs.txt -u https://FUZZ.target.com # por respuesta HTTP# wordlists típicas: SecLists (DNS/)Permutaciones y alteraciones
Sección titulada «Permutaciones y alteraciones»A partir de lo encontrado, genera variaciones (dev1, dev-api, api.dev):
# generar permutaciones y resolverlasgotator / altdns / dnsgen + puredns resolveResolver y filtrar vivos
Sección titulada «Resolver y filtrar vivos»Un subdominio en una lista no sirve si no resuelve o no responde:
# resolver (¿tiene IP?) y luego ¿responde HTTP?dnsx -l subs.txt -a -resp # resuelvehttpx -l resolved.txt -title -status-code -tech-detect # ¿vivo? ¿qué es?Qué hacer con los subdominios
Sección titulada «Qué hacer con los subdominios»- Subdomain takeover: ¿algún CNAME apunta a un servicio de terceros liberado? (ver Subdomain takeover).
- Entornos de staging/dev: suelen tener menos controles, credenciales por defecto, debug activo.
- Paneles de administración, APIs, VPN: superficie de autenticación.
- Tecnologías distintas por subdominio → fingerprint individual (Fingerprinting de tecnologías).
Virtual hosts (vhosts)
Sección titulada «Virtual hosts (vhosts)»Varios sitios en una misma IP se distinguen por la cabecera Host. Puede haber vhosts no listados en DNS:
ffuf -w vhosts.txt -u https://target.com -H "Host: FUZZ.target.com" -fs <tam_base>gobuster vhost -u https://target.com -w vhosts.txtPara la defensa
Sección titulada «Para la defensa»Reducir exposición: no dejar subdominios de dev/staging accesibles desde Internet, limpiar registros DNS obsoletos (evita takeovers), monitorizar Certificate Transparency para detectar certificados/subdominios inesperados, y aplicar los mismos controles al subdominio más humilde que al principal.
Checklist de prueba
Sección titulada «Checklist de prueba»- Enumeración pasiva (subfinder/amass/crt.sh)
- Fuerza bruta de DNS con buen diccionario (SecLists)
- Permutaciones de lo encontrado (gotator/dnsgen)
- Resolver y filtrar vivos (dnsx + httpx)
- Buscar subdomain takeover (CNAMEs colgantes)
- Identificar staging/dev/admin/API/VPN
- Descubrir vhosts por cabecera Host
- Fingerprint individual de cada subdominio interesante