🌐 ¿Qué son los Virtual Hosts y por qué importan?
Un Virtual Host (Vhost) permite que un mismo servidor web sirva múltiples sitios bajo la misma IP. El servidor decide qué contenido mostrar en función del encabezado Host: de la petición HTTP.
En pentesting, descubrir vhosts ocultos es crítico: paneles de administración, entornos de desarrollo o APIs internas pueden estar expuestos bajo un subdominio que no aparece en DNS público pero sí responde en el servidor.
/etc/hosts apuntando a la IP del servidor.Diferencia entre subdominio DNS y Virtual Host
| Concepto | DNS | Virtual Host |
|---|---|---|
| Resolución | Pública — cualquiera puede consultarla | Local — configurada en el servidor web |
| Descubrimiento | dnsenum, dnsrecon, dig | Fuerza bruta de cabecera Host (gobuster, ffuf) |
| Requiere IP conocida | No | Sí |
| Ejemplo | mail.ejemplo.com → 1.2.3.4 | Host: admin.ejemplo.com → web interna |
🔧 Herramientas y comandos
1. Reconocimiento inicial
Identifica tu IP y verifica conectividad con el objetivo.
ip a
nmap <IP>
cat /etc/resolv.conf
2. Enumeración DNS con dnsenum
dnsenum automatiza registros DNS, intenta AXFR, realiza fuerza bruta de subdominios con /usr/share/dnsenum/dns.txt y hace búsquedas inversas PTR.
dnsenum <dominio>
dnsenum <dominio> -o out.xml
3. Enumeración DNS con dnsrecon
dnsrecon complementa a dnsenum con detección de DNSSEC, fingerprinting de versión de BIND y múltiples formatos de salida.
dnsrecon -d <dominio>
dnsrecon -d <dominio> -a
dnsrecon -d <dominio> -a -j ~/out.json
dnsrecon -d <subdominio.dominio> -a
4. Metasploit — módulo enum_dns
Centraliza la enumeración y guarda los hallazgos en la base de datos de Metasploit.
use auxiliary/gather/enum_dns
setg NS <IP-nameserver> # NS objetivo (global)
set DOMAIN <dominio> # Dominio a enumerar
set ENUM_BRT true # Fuerza bruta de subdominios
set ENUM_A true # Registros A
set ENUM_MX true # Registros MX
set ENUM_NS true # Registros NS
set ENUM_SOA true # Registro SOA
set ENUM_SRV true # Registros SRV
set ENUM_TXT true # Registros TXT
set ENUM_RVL true # Reverse lookup
set ENUM_AXFR true # Transferencia de zona
run
5. Descubrimiento de Virtual Hosts
Con la IP conocida, realiza fuerza bruta sobre la cabecera Host:.
gobuster vhost -u http://<IP> -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt --append-domain
ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt \
-u http://<IP> \
-H "Host: FUZZ.<dominio>" \
-fs <tamaño-respuesta-base>
echo "<IP> <vhost.dominio>" >> /etc/hosts
🗼 Flujo del laboratorio
/etc/resolv.conf.📊 Información obtenida y su utilidad
| Categoría | Datos | Para qué sirve |
|---|---|---|
| Registros DNS | A, AAAA, MX, NS, TXT, SOA, CAA, SRV, DNSKEY, NSEC3 | Mapa completo de infraestructura |
| Infraestructura | IPs públicas, bloques de red, correo, VoIP, Kerberos, LDAP | Identificar servicios atacables |
| Seguridad DNS | DNSSEC, versión de BIND, AXFR abierta | Detectar configuraciones vulnerables |
| Subdominios | Por fuerza bruta y transferencias de zona | Ampliar superficie de ataque |
| Virtual Hosts | Sitios ocultos bajo la misma IP | Paneles admin, APIs internas |
🎯 ¿Qué buscar? — Indicadores de éxito
- AXFR exitosa: todos los registros de la zona de golpe.
- Subdominios
dev.,test.,admin.,staging.— suelen tener menos seguridad. - Registros SRV que revelan Kerberos, LDAP o VoIP.
- DNSKEY/NSEC3 presentes → DNSSEC activo; NSEC3 puede enumerarse.
- Versión de BIND expuesta → buscar CVEs asociados.
- Vhosts
admin,portal,internal,api. - SPF
+all→ spoofing de correo desde cualquier IP.