Realizar uma Varredura Básica de VHost no Gobuster

Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a usar o Gobuster para realizar uma varredura básica de virtual host (vhost). Virtual hosts são uma maneira comum para servidores web hospedarem múltiplos websites em um único endereço IP. Descobrir esses vhosts ocultos pode revelar superfícies de ataque adicionais ou informações sensíveis durante um teste de penetração ou avaliação de segurança. O Gobuster é uma ferramenta poderosa para brute-force de URIs, subdomínios DNS e nomes de virtual host.

Entender o que são Virtual Hosts (VHosts)

Nesta etapa, você aprenderá sobre virtual hosts (vhosts) e por que eles são importantes na segurança web.

Um virtual host permite que um único servidor hospede múltiplos nomes de domínio no mesmo endereço IP. Por exemplo, www.example.com e blog.example.com podem ser hospedados no mesmo servidor, distinguidos pelo cabeçalho Host na requisição HTTP. Quando um navegador web envia uma requisição para um servidor, ele inclui um cabeçalho Host especificando o nome de domínio que deseja acessar. O servidor web então usa este cabeçalho para determinar qual website servir.

Descobrir esses virtual hosts é crucial para avaliações de segurança porque:

  • Conteúdo Oculto: Um vhost pode hospedar uma aplicação antiga e não corrigida, uma versão de desenvolvimento de um site, ou uma interface administrativa que não está vinculada ao site principal.
  • Superfície de Ataque Expandida: Cada vhost descoberto representa um novo ponto de entrada potencial para ataques, como injeção de SQL, cross-site scripting (XSS) ou traversal de diretórios.
  • Divulgação de Informações: Às vezes, vhosts podem revelar estruturas de rede internas, arquivos sensíveis ou configurações incorretas.

Ferramentas como o Gobuster podem automatizar o processo de tentar nomes de vhost comuns contra um alvo para identificar os ativos.

Selecionar um Endereço IP ou Domínio Alvo

Nesta etapa, você identificará o alvo para sua varredura de vhost com Gobuster.

Para este laboratório, usaremos localhost como nosso alvo, especificamente http://127.0.0.1:8080. Configuramos um servidor web simples na porta 8080 que simula múltiplos virtual hosts. Em um cenário do mundo real, você substituiria 127.0.0.1:8080 pelo endereço IP ou nome de domínio real do seu alvo.

Para confirmar que o servidor web está em execução, você pode usar curl para fazer uma requisição a ele.

curl http://127.0.0.1:8080

Você deverá ver uma saída semelhante a esta, indicando que o servidor está ativo:

This is vhost1 content.

Esta saída é do vhost padrão (ou o primeiro servido pelo servidor Python simples). Nosso objetivo é encontrar outros vhosts "ocultos".

Construir o Comando Básico do gobuster para Vhost

Nesta etapa, você aprenderá como construir o comando básico do gobuster para uma varredura de vhost.

O comando gobuster para varredura de vhost utiliza o modo vhost. As flags essenciais para uma varredura de vhost são:

  • -u: Especifica a URL alvo.
  • -w: Especifica a wordlist (lista de palavras) a ser usada para brute-force de nomes de vhost.

A sintaxe básica será gobuster vhost -u <target_url> -w <wordlist_path>.

Para o nosso laboratório, a URL alvo é http://127.0.0.1:8080. Também preparamos uma wordlist em /tmp/vhost_wordlist.txt que contém nomes potenciais de virtual hosts.

Vamos examinar o conteúdo da wordlist:

cat /tmp/vhost_wordlist.txt

Você deverá ver a seguinte saída:

vhost1
vhost2
hidden_vhost
test
dev
admin

Esta wordlist contém alguns nomes de vhost comuns e alguns específicos que esperamos encontrar.

Executar a Varredura com as Flags -u e -w

Nesta etapa, você executará a varredura de vhost do gobuster usando a URL alvo e a wordlist fornecida.

Agora, combine a URL alvo e o caminho da wordlist no comando gobuster.

gobuster vhost -u http://127.0.0.1:8080 -w /tmp/vhost_wordlist.txt

Pressione Enter para executar o comando. O Gobuster começará a iterar pela wordlist, enviando requisições com cada palavra como um cabeçalho Host, e reportando quaisquer virtual hosts descobertos.

A saída mostrará o progresso e quaisquer descobertas bem-sucedidas. Pode parecer semelhante a isto:

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                    http://127.0.0.1:8080
[+] Wordlist:               /tmp/vhost_wordlist.txt
[+] Threads:                10
[+] Timeout:                10s
[+] User Agent:             gobuster/3.6
===============================================================
2024/07/30 10:00:00 Starting gobuster in vhost mode
===============================================================
Found: vhost1 (Status: 200) [Size: 20]
Found: vhost2 (Status: 200) [Size: 20]
Found: hidden_vhost (Status: 200) [Size: 27]
===============================================================
2024/07/30 10:00:05 Finished
===============================================================

Você pode ver que o gobuster encontrou com sucesso vhost1, vhost2 e hidden_vhost.

Revisar a Saída para Virtual Hosts Descobertos

Nesta etapa, você analisará a saída da varredura do gobuster para entender os virtual hosts descobertos.

A saída do gobuster fornece informações chave para cada virtual host descoberto:

  • Found:: O nome do virtual host que foi resolvido com sucesso.
  • (Status: 200): O código de status HTTP retornado pelo servidor. Um 200 OK geralmente indica que o vhost existe e serviu conteúdo com sucesso. Outros códigos de status (por exemplo, 301, 302, 403, 404) também podem ser relevantes dependendo da configuração do servidor.
  • [Size: XX]: O tamanho do corpo da resposta em bytes. Isso pode, às vezes, ajudar a distinguir entre diferentes tipos de conteúdo ou páginas padrão.

Da saída da etapa anterior, você deverá ter visto:

  • Found: vhost1 (Status: 200) [Size: 20]
  • Found: vhost2 (Status: 200) [Size: 20]
  • Found: hidden_vhost (Status: 200) [Size: 27]

Essas entradas indicam que o gobuster identificou com sucesso três virtual hosts em http://127.0.0.1:8080 usando a wordlist fornecida. Em um cenário do mundo real, você investigaria esses vhosts descobertos posteriormente navegando até eles (por exemplo, curl -H "Host: vhost1" http://127.0.0.1:8080) ou usando outras ferramentas de segurança web.

Isso conclui o laboratório básico de varredura de vhost. Você utilizou com sucesso o gobuster para identificar virtual hosts.

Resumo

Neste laboratório, você aprendeu a realizar uma varredura básica de virtual host usando o Gobuster. Você compreendeu o conceito de virtual hosts, selecionou um alvo, construiu o comando gobuster com as flags -u (URL) e -w (wordlist), executou a varredura e interpretou os resultados. Esta habilidade é fundamental para descobrir aplicações web ocultas e expandir a superfície de ataque durante avaliações de segurança.