Realizar uma Varredura Básica de Diretórios no Gobuster

Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá os fundamentos do uso do Gobuster para varredura de diretórios. Gobuster é uma ferramenta poderosa usada em testes de penetração e hacking ético para descobrir diretórios e arquivos ocultos em servidores web. Ao realizar força bruta em nomes de diretórios comuns contra uma URL alvo, o Gobuster pode revelar informações sensíveis ou pontos de entrada negligenciados. Este laboratório irá guiá-lo através da seleção de um alvo, escolha de uma wordlist apropriada, construção do comando Gobuster, execução da varredura e interpretação dos resultados.

Selecionar uma URL Alvo para a Varredura

Nesta etapa, você selecionará uma URL alvo para sua varredura com Gobuster. Para fins deste laboratório, usaremos uma aplicação web deliberadamente vulnerável hospedada localmente. Isso garante que você possa realizar a varredura sem impactar sistemas externos e observar resultados típicos.

Primeiro, vamos garantir que o servidor web alvo esteja em execução. Usaremos curl para verificar se o servidor web é acessível.

Abra seu terminal no diretório ~/project.

curl http://localhost:8080

Você deverá ver uma saída HTML, indicando que o servidor web está ativo. A URL alvo para nossa varredura será http://localhost:8080.

<!DOCTYPE html>
<html>
<head>
<title>Welcome to Nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to Nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

Escolher uma Wordlist Básica

Nesta etapa, você escolherá uma wordlist básica para sua varredura com Gobuster. Uma wordlist é um arquivo contendo uma lista de nomes comuns de diretórios e arquivos que o Gobuster tentará encontrar no servidor alvo. A qualidade e a abrangência da sua wordlist impactam diretamente a eficácia da sua varredura.

Para este laboratório, usaremos uma wordlist pequena e pré-instalada, adequada para fins de demonstração. Esta wordlist está localizada em /usr/share/wordlists/dirb/common.txt.

Você pode inspecionar as primeiras linhas desta wordlist usando o comando head para entender seu conteúdo:

head /usr/share/wordlists/dirb/common.txt

Este comando exibirá o início da wordlist, mostrando exemplos dos nomes de diretórios que o Gobuster testará.

admin/
backup/
bin/
cgi-bin/
conf/
css/
data/
db/
dev/
doc/

Esta wordlist contém nomes de diretórios comuns que são frequentemente encontrados em servidores web. Usar uma wordlist menor como esta ajuda a completar a varredura rapidamente para os propósitos deste laboratório.

Construir o Comando Básico gobuster dir

Nesta etapa, você construirá o comando básico gobuster dir. O comando gobuster dir é usado para brute-forcing de diretórios e arquivos. Ele requer pelo menos duas flags principais: -u para a URL alvo e -w para a wordlist.

A sintaxe básica para o comando é:

gobuster dir -u <target_url> -w <wordlist_path>

Com base em nossas etapas anteriores:

  • A URL alvo é http://localhost:8080.
  • O caminho da wordlist é /usr/share/wordlists/dirb/common.txt.

Portanto, o comando que você construirá é:

gobuster dir -u http://localhost:8080 -w /usr/share/wordlists/dirb/common.txt

Este comando instrui o Gobuster a realizar uma varredura de diretórios em http://localhost:8080 usando as entradas em common.txt como nomes de diretórios potenciais. Você executará este comando na próxima etapa.

Executar a Varredura com as Flags -u e -w

Nesta etapa, você executará o comando gobuster dir que construiu na etapa anterior. Isso iniciará a varredura de diretórios contra nossa URL alvo usando a wordlist especificada.

Execute o seguinte comando em seu terminal:

gobuster dir -u http://localhost:8080 -w /usr/share/wordlists/dirb/common.txt

À medida que a varredura é executada, o Gobuster exibirá seu progresso e quaisquer diretórios ou arquivos que ele descobrir. A saída mostrará o código de status (por exemplo, 200 para OK, 301 para Movido Permanentemente) e o tamanho da resposta para cada entrada encontrada.

===============================================================
Gobuster vX.X.X-XXXXXX Linux/amd64
===============================================================
[+] Url:                     http://localhost:8080
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Status codes:            200,204,301,302,307,401,403
[+] User Agent:              gobuster/X.X.X
[+] Timeout:                 10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/css                  (Status: 301)
/js                   (Status: 301)
/images               (Status: 301)
/admin                (Status: 301)
/icons                (Status: 301)
/server-status        (Status: 403)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

A saída acima mostra vários diretórios encontrados, juntamente com seus códigos de status HTTP. Por exemplo, /css retornou um status 301, indicando um redirecionamento permanente.

Analisar a Saída para Diretórios Encontrados

Nesta etapa, você analisará a saída da sua varredura Gobuster para entender os resultados. A saída fornece informações valiosas sobre os diretórios e arquivos descobertos no servidor web alvo.

Revise a saída da etapa anterior. Você deverá ver linhas semelhantes a estas:

/css                  (Status: 301)
/js                   (Status: 301)
/images               (Status: 301)
/admin                (Status: 301)
/icons                (Status: 301)
/server-status        (Status: 403)

Cada linha representa um diretório ou arquivo potencial encontrado pelo Gobuster.

  • A primeira parte, por exemplo, /css, é o caminho que o Gobuster identificou com sucesso.
  • (Status: XXX) indica o código de status HTTP retornado pelo servidor para esse caminho.
    • 200 OK: A solicitação foi bem-sucedida e o conteúdo foi retornado. Isso geralmente significa um diretório ou arquivo válido.
    • 301 Moved Permanently: O recurso foi movido permanentemente para uma nova URL. Isso ainda indica a existência do diretório.
    • 403 Forbidden: O servidor entendeu a solicitação, mas se recusa a autorizá-la. Isso significa que o diretório existe, mas você não tem permissão para acessá-lo diretamente.
    • 401 Unauthorized: Semelhante a 403, mas geralmente requer autenticação.

Em nosso exemplo, /css, /js, /images, /admin e /icons retornaram códigos de status 301, o que significa que esses diretórios existem e o servidor está redirecionando as solicitações para eles. O caminho /server-status retornou um status 403, indicando que ele existe, mas o acesso é proibido.

Essa análise ajuda você a identificar áreas potenciais para investigação adicional, como painéis administrativos (/admin) ou arquivos de configuração, que podem ser vulneráveis.

Resumo

Neste laboratório, você realizou com sucesso uma varredura básica de diretórios usando o Gobuster. Você aprendeu a selecionar uma URL alvo, escolher uma wordlist apropriada, construir o comando gobuster dir com as flags -u e -w, executar a varredura e analisar a saída para identificar diretórios existentes e seus códigos de status HTTP. Essa habilidade fundamental é crucial para reconhecimento em cibersegurança, ajudando você a descobrir ativos web ocultos que podem conter informações confidenciais ou vulnerabilidades. Agora você pode aplicar essas técnicas com diferentes wordlists e alvos para expandir sua compreensão das estruturas de servidores web.