Introdução
Gobuster é uma ferramenta poderosa usada para brute-forcing de diretórios e arquivos, brute-forcing de subdomínios DNS e enumeração de S3 buckets. Ao realizar varreduras, a quantidade de informações exibidas no terminal pode variar significativamente. Compreender como controlar a verbosidade dessa saída é crucial para uma análise eficiente e para evitar sobrecarregar seu terminal com dados desnecessários.
Neste laboratório, você aprenderá a gerenciar a verbosidade da saída do Gobuster. Você realizará varreduras usando as configurações padrão, depois explorará o modo silencioso (-q) para minimizar a saída e, finalmente, o modo verboso (-v) para maximizar os detalhes. Ao comparar esses diferentes níveis, você ganhará experiência prática em adaptar a saída do Gobuster para atender a vários cenários, desde verificações rápidas até investigações aprofundadas.
Executar uma Varredura Padrão e Observar a Saída Padrão
Nesta etapa, você executará uma varredura padrão do Gobuster sem quaisquer flags de verbosidade específicas. Isso permitirá que você observe o comportamento padrão da saída do Gobuster, que normalmente exibe diretórios e arquivos encontrados à medida que são descobertos.
Primeiro, certifique-se de estar na pasta project do seu diretório home.
cd ~/project
Agora, execute o comando Gobuster. Usaremos um alvo local para este laboratório para evitar a varredura de sites externos. Usaremos http://localhost como alvo e uma pequena wordlist para fins de demonstração.
gobuster dir -u http://localhost -w /usr/share/wordlists/dirb/common.txt -x php,html,txt -z
Vamos detalhar o comando:
gobuster dir: Especifica que estamos realizando uma varredura de brute-forcing de diretórios/arquivos.-u http://localhost: Define a URL alvo comohttp://localhost.-w /usr/share/wordlists/dirb/common.txt: Especifica a wordlist a ser usada para enumeração. Esta wordlist contém nomes comuns de diretórios e arquivos.-x php,html,txt: Especifica as extensões de arquivo a serem procuradas.-z: Oculta a barra de status, que às vezes pode interferir na captura de uma saída limpa para comparação.
Observe a saída no seu terminal. Você deverá ver linhas indicando os diretórios e arquivos encontrados, juntamente com seus códigos de status HTTP.
===============================================================
Gobuster v3.1.0
by OJ <ojob.dev>
===============================================================
[+] Url: http://localhost
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/common.txt
[+] Extensions: php, html, txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.1.0
[+] Timeout: 10s
===============================================================
2024/07/29 08:00:00 Starting gobuster in directory enumeration mode
/index.html (Status: 200)
/server-status (Status: 403)
/manual (Status: 301)
/icons (Status: 301)
/phpmyadmin (Status: 301)
/test.php (Status: 200)
/info.php (Status: 200)
/robots.txt (Status: 200)
/license.txt (Status: 200)
/README.txt (Status: 200)
===============================================================
2024/07/29 08:00:00 Finished
===============================================================
Esta é a saída padrão, fornecendo um equilíbrio entre informação e concisão.
Reexecutar a Varredura em Modo Silencioso com a Flag -q
Nesta etapa, você reexecutará a varredura do Gobuster usando o modo silencioso. A flag -q suprime a maior parte da saída, exibindo apenas as descobertas essenciais. Este modo é útil quando você deseja verificar rapidamente recursos específicos sem se distrair com informações verbosas, ou ao direcionar a saída para outra ferramenta.
Execute o mesmo comando Gobuster de antes, mas desta vez adicione a flag -q:
gobuster dir -u http://localhost -w /usr/share/wordlists/dirb/common.txt -x php,html,txt -z -q
Observe a saída. Você deverá notar que o banner inicial, as estatísticas e as atualizações de progresso não são mais exibidos. Apenas os diretórios e arquivos encontrados são impressos no console.
/index.html (Status: 200)
/server-status (Status: 403)
/manual (Status: 301)
/icons (Status: 301)
/phpmyadmin (Status: 301)
/test.php (Status: 200)
/info.php (Status: 200)
/robots.txt (Status: 200)
/license.txt (Status: 200)
/README.txt (Status: 200)
Esta saída silenciosa é ideal para scripting ou quando você se preocupa apenas com os caminhos descobertos.
Reexecutar a Varredura em Modo Detalhado usando a Flag -v
Nesta etapa, você reexecutará a varredura do Gobuster usando o modo detalhado. A flag -v fornece informações mais detalhadas sobre o processo de varredura, incluindo cada requisição feita e seu código de status de resposta correspondente. Este modo é particularmente útil para depuração ou quando você precisa entender por que certos caminhos não estão sendo encontrados ou estão retornando respostas inesperadas.
Execute o mesmo comando Gobuster, mas desta vez adicione a flag -v:
gobuster dir -u http://localhost -w /usr/share/wordlists/dirb/common.txt -x php,html,txt -z -v
Observe a saída. Você verá um aumento significativo na quantidade de informações exibidas. Para cada palavra na wordlist, o Gobuster mostrará a URL que está sendo testada e o código de status HTTP recebido, mesmo para caminhos que não existem ou retornam erros.
===============================================================
Gobuster v3.1.0
by OJ <ojob.dev>
===============================================================
[+] Url: http://localhost
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/common.txt
[+] Extensions: php, html, txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.1.0
[+] Timeout: 10s
===============================================================
2024/07/29 08:00:00 Starting gobuster in directory enumeration mode
Testing url: http://localhost/index.html (Status: 200)
Testing url: http://localhost/server-status (Status: 403)
Testing url: http://localhost/manual (Status: 301)
Testing url: http://localhost/icons (Status: 301)
Testing url: http://localhost/phpmyadmin (Status: 301)
Testing url: http://localhost/test.php (Status: 200)
Testing url: http://localhost/info.php (Status: 200)
Testing url: http://localhost/robots.txt (Status: 200)
Testing url: http://localhost/license.txt (Status: 200)
Testing url: http://localhost/README.txt (Status: 200)
Testing url: http://localhost/admin (Status: 404)
Testing url: http://localhost/login (Status: 404)
... (many more lines for each tested path)
===============================================================
2024/07/29 08:00:00 Finished
===============================================================
Esta saída detalhada fornece um rastreamento completo do processo de varredura, o que pode ser inestimável para solução de problemas ou análise aprofundada.
Comparar os Três Níveis de Detalhe da Saída
Nesta etapa, você comparará as saídas das três diferentes varreduras do Gobuster que realizou: padrão, silencioso (-q) e detalhado (-v). Compreender as diferenças o ajudará a escolher o nível de saída mais apropriado para várias situações.
Lembre-se das características de cada saída:
- Saída Padrão: Fornece um banner de resumo, atualizações de progresso (se
-znão for usado) e lista apenas os diretórios/arquivos encontrados com seus códigos de status. É um bom equilíbrio para uso geral. - Saída Silenciosa (
-q): Suprime todas as informações não essenciais, exibindo apenas os diretórios/arquivos encontrados. Isso é útil para uma saída limpa e analisável, especialmente ao direcionar para outras ferramentas ou quando você precisa apenas dos resultados. - Saída Detalhada (
-v): Exibe detalhes extensos, incluindo cada URL testada e seu status de resposta, independentemente de ser um caminho "encontrado" ou um erro. Isso é inestimável para depuração, compreensão de interações de rede ou quando você precisa de uma trilha de auditoria completa da varredura.
Considere os seguintes cenários e como cada nível de saída pode ser mais adequado:
- Verificação rápida de caminhos comuns: O modo silencioso (
-q) seria eficiente. - Reconhecimento geral: A saída padrão fornece contexto suficiente.
- Solução de problemas de uma varredura que não está encontrando caminhos esperados: O modo detalhado (
-v) ajudaria a identificar por que as requisições estão falhando ou quais respostas estão sendo recebidas. - Integração do Gobuster em um script para processamento automatizado: O modo silencioso (
-q) garante uma saída limpa e fácil de analisar.
Ao comparar as saídas do terminal que você observou nas etapas anteriores, você pode ver claramente como cada flag altera a verbosidade.
Escolher a Verbosidade Apropriada para Diferentes Cenários
Nesta etapa final, você solidificará seu entendimento sobre quando usar cada nível de verbosidade de saída do Gobuster. A escolha da verbosidade depende muito do seu objetivo e do contexto do seu teste de penetração ou avaliação de segurança.
Aqui está um resumo de quando usar cada modo:
Modo Padrão (sem flags):
- Quando usar: Para varreduras de propósito geral, reconhecimento inicial ou quando você precisa de uma visão equilibrada do progresso e dos resultados da varredura. É o ponto de partida mais comum.
- Exemplo: Você está explorando um novo alvo e quer ver rapidamente quais diretórios comuns existem sem muito ruído.
Modo Silencioso (
-q):- Quando usar: Quando você se importa apenas com os resultados bem-sucedidos e deseja suprimir todas as outras mensagens informativas, banners e erros. Isso é ideal para scripting, direcionar a saída para outras ferramentas (como
grepouawk), ou quando você está executando várias varreduras em paralelo e deseja um mínimo de poluição visual no terminal. - Exemplo: Você está escrevendo um script para automatizar a enumeração de diretórios e deseja alimentar as URLs encontradas diretamente em outra ferramenta para análise posterior.
- Quando usar: Quando você se importa apenas com os resultados bem-sucedidos e deseja suprimir todas as outras mensagens informativas, banners e erros. Isso é ideal para scripting, direcionar a saída para outras ferramentas (como
Modo Detalhado (
-v):- Quando usar: Para depuração, solução de problemas ou quando você precisa de um entendimento detalhado de cada requisição e resposta. Este modo mostra todas as tentativas, incluindo aquelas que resultam em 404s ou outros erros, o que pode ser crucial para identificar problemas sutis ou entender o comportamento do servidor.
- Exemplo: Sua varredura Gobuster não está encontrando os diretórios esperados, e você suspeita de um problema de rede, um WAF bloqueando requisições ou uma resposta incomum do servidor. A saída detalhada mostrará exatamente o que está acontecendo para cada requisição.
Ao dominar essas opções de verbosidade, você pode tornar suas varreduras Gobuster mais eficientes e adaptadas às suas necessidades específicas, economizando tempo e melhorando suas capacidades de análise.
Resumo
Neste laboratório, você aprendeu com sucesso como controlar a verbosidade da saída do Gobuster. Você começou realizando uma varredura padrão para observar a saída padrão, que fornece uma visão equilibrada do processo de enumeração. Em seguida, explorou o modo silencioso usando a flag -q, que minimiza a saída para mostrar apenas os caminhos descobertos, tornando-o ideal para scripting e resultados limpos. Finalmente, você utilizou o modo detalhado com a flag -v para obter uma visão detalhada de cada requisição e resposta, o que é inestimável para depuração e análise aprofundada.
Ao entender e aplicar esses diferentes níveis de verbosidade, você pode adaptar efetivamente a saída do Gobuster para atender a vários cenários, desde verificações rápidas até solução de problemas detalhada, aprimorando assim sua eficiência em tarefas de enumeração de diretórios e arquivos.
