🏠 Virtual Hosts (VHosts)
Permiten a un único servidor alojar múltiples sitios o servicios, diferenciándolos por dominio, subdominio, IP o puerto.
🧠 ¿Qué es un VHost?
Un servidor web como Apache, Nginx o IIS puede servir varios sitios desde la misma IP gracias a los virtual hosts.
📌 Se basa en el encabezado HTTP Host para determinar a qué sitio debe responder.
🔍 VHosts vs Subdominios
| Concepto | 🌐 Subdominios | 🏠 VHosts |
|---|---|---|
| Definición | Extensión de un dominio principal | Configuración dentro del servidor web |
| Ejemplo | blog.ejemplo.com |
ServerName blog.ejemplo.com |
| Requiere entrada DNS | ✅ Sí | ❌ No necesariamente (puede usarse el archivo /etc/hosts) |
| Control desde servidor web | ❌ No | ✅ Sí |
| Casos comunes | Panel de admin, staging, blog | Alojar múltiples sitios en el mismo server |
🔗 Tipos de Virtual Hosting
| Tipo | 🧾 Nombre | 🌐 IP | 🔌 Puerto | ✅ Pros | ⚠️ Contras |
|---|---|---|---|---|---|
| Name-based | ✅ | ❌ | ❌ | Ahorra IPs, fácil configuración | Problemas con SSL antiguo |
| IP-based | ❌ | ✅ | ❌ | Aislamiento total, útil con SSL | Requiere muchas IPs |
| Port-based | ❌ | ❌ | ✅ | Rápido para testing | Pide especificar puerto en la URL |
🛠️ Herramientas para descubrir VHosts
| Herramienta | 🚀 Descripción |
|---|---|
| Gobuster | Fuzzing del header Host |
| Feroxbuster | Alternativa rápida escrita en Rust |
| ffuf | Fuzzer ultra rápido y flexible |
🧪 Ejemplo con Gobuster:
gobuster vhost -u http://inlanefreight.htb:43987 -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt --append-domain

| Opción | Descripción |
|---|---|
-u |
Dirección IP objetivo |
-w |
Lista de posibles subdominios |
--append-domain |
Añade el dominio base a cada palabra |
-t 30 |
Threads (paralelismo) |
-o vhosts.txt |
Guarda resultados |
📌 Nota: Algunos VHosts no existen en DNS. Puedes forzarlos añadiéndolos a tu /etc/hosts.
⚙️ Cómo funciona el proceso
-
🌐 Usuario solicita
blog.ejemplo.com. -
📤 El navegador incluye
Host: blog.ejemplo.comen la solicitud HTTP. -
🧠 El servidor analiza el encabezado y selecciona el VHost correcto.
-
📁 Sirve archivos desde
/var/www/blog.
🎯 Consejos de enumeración
-
Usa wordlists como
SecLists. -
Verifica diferencias en los códigos de respuesta (200, 403, 404).
-
Fuzzing silencioso puede pasar desapercibido por WAFs.
-
Añade IP + dominio en
/etc/hostssi no hay resolución DNS.
🚨 Advertencia
⚠️ El VHost fuzzing puede generar mucho tráfico y ser detectado por IDS/WAF.
¡No lo ejecutes sin autorización en entornos reales!