Saltearse al contenido

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.

Se combinan los tres para cobertura máxima: pasivo (fuentes de terceros), fuerza bruta (diccionario contra DNS) y permutaciones (variaciones de lo encontrado).

# agregadores de múltiples fuentes
subfinder -d target.com -all -silent
amass enum -passive -d target.com
# Certificate Transparency: los certificados revelan subdominios
curl -s "https://crt.sh/?q=%25.target.com&output=json" | jq -r '.[].name_value' | sort -u
# otros: SecurityTrails, VirusTotal, Censys, DNSdumpster

Certificate Transparency (crt.sh) es especialmente potente: cada certificado emitido queda en logs públicos, revelando subdominios internos que nunca se publicaron.

Probar un diccionario de nombres comunes contra el DNS del objetivo:

# herramientas rápidas con resolvers
puredns bruteforce subs.txt target.com -r resolvers.txt
gobuster dns -d target.com -w subdomains.txt
ffuf -w subs.txt -u https://FUZZ.target.com # por respuesta HTTP
# wordlists típicas: SecLists (DNS/)

A partir de lo encontrado, genera variaciones (dev1, dev-api, api.dev):

# generar permutaciones y resolverlas
gotator / altdns / dnsgen + puredns resolve

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 # resuelve
httpx -l resolved.txt -title -status-code -tech-detect # ¿vivo? ¿qué es?
  • 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).

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.txt

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.

  • 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