Excluir Códigos de Status Específicos dos Resultados no Gobuster

Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a usar efetivamente o Gobuster, uma popular ferramenta de brute-forcing de diretórios e arquivos, para excluir códigos de status HTTP específicos de seus resultados de varredura. Ao realizar a enumeração web, você frequentemente encontra muitas respostas "Não Encontrado" (404) ou outras respostas irrelevantes que poluem a saída. Ao filtrá-las, você pode se concentrar em resultados mais significativos, tornando seus esforços de reconhecimento mais eficientes e direcionados. Este laboratório irá guiá-lo através da identificação de códigos de status ruidosos, execução de uma varredura de linha de base e, em seguida, aplicação de filtros de exclusão usando o flag -b do Gobuster.

Identificar Códigos de Status Ruidosos para Ignorar (por exemplo, 404)

Nesta etapa, você entenderá por que é importante identificar e excluir certos códigos de status HTTP durante uma varredura com Gobuster. Quando o Gobuster tenta acessar caminhos inexistentes, o servidor web geralmente responde com um código de status "404 Not Found". Essas respostas 404 podem inundar a saída da sua varredura, dificultando a identificação de achados legítimos. Outros códigos de status, como redirecionamentos 3xx ou erros de servidor 5xx, também podem ser considerados "ruidosos", dependendo dos seus objetivos específicos de reconhecimento.

Para ilustrar isso, primeiro executaremos um comando curl simples contra nosso servidor web local para ver como ele responde a um caminho inexistente.

Abra seu terminal e execute o seguinte comando:

curl -I http://localhost:8000/nonexistent_page

Você deverá ver uma saída semelhante a esta, indicando um status 404 Not Found:

HTTP/1.0 404 Not Found
Server: SimpleHTTP/0.6
Date: ...
Content-type: text/html
Content-Length: ...

Este 404 Not Found é uma resposta "ruidosa" comum. Nas próximas etapas, você aprenderá como instruir o Gobuster a ignorar tais respostas.

Executar uma Varredura Sem Filtros

Nesta etapa, você realizará uma varredura básica com Gobuster sem nenhum filtro de código de status. Isso servirá como uma linha de base para demonstrar quanta "informação ruidosa" (por exemplo, respostas 404) pode ser gerada na saída. Você usará o modo dir do Gobuster para enumerar diretórios e arquivos em nosso servidor web local.

Execute o seguinte comando em seu terminal:

gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt

Vamos detalhar o comando:

  • gobuster dir: Especifica que queremos usar o modo de enumeração de diretórios/arquivos.
  • -u http://localhost:8000: Define a URL alvo para nosso servidor web local.
  • -w ~/project/wordlist.txt: Especifica o arquivo de lista de palavras a ser usado para brute-forcing.

Observe a saída. Você provavelmente verá muitas entradas com (Status: 404) ao lado delas, indicando que o Gobuster tentou acessar caminhos que não existem no servidor.

...
/nonexistent_page       (Status: 404)
/admin                  (Status: 404)
/test                   (Status: 404)
/existing_dir           (Status: 200)
/another_file.txt       (Status: 200)
/redirect_me            (Status: 302)
/forbidden_area         (Status: 403)
/server_error           (Status: 500)
...

Como você pode ver, a saída está poluída com respostas 404, tornando mais difícil identificar os recursos realmente existentes.

Usar a Flag -b para Excluir 404 Not Found

Nesta etapa, você aprenderá a usar a flag -b (ou --exclude-length) do Gobuster para excluir códigos de status HTTP específicos dos resultados. Isso é crucial para filtrar respostas irrelevantes e focar no que realmente importa. Excluiremos especificamente o código de status 404 Not Found, que é a resposta ruidosa mais comum.

A flag -b aceita uma lista de códigos de status separados por vírgula para exclusão.

Execute o seguinte comando em seu terminal para executar a varredura com Gobuster, excluindo respostas 404:

gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt -b 404

Vamos analisar a nova flag:

  • -b 404: Informa ao Gobuster para excluir quaisquer resultados que retornem um código de status HTTP 404.

Observe a saída com atenção. Você deverá notar que todas as entradas com (Status: 404) desapareceram, resultando em uma lista de resultados muito mais limpa e focada.

...
/existing_dir           (Status: 200)
/another_file.txt       (Status: 200)
/redirect_me            (Status: 302)
/forbidden_area         (Status: 403)
/server_error           (Status: 500)
...

Isso melhora significativamente a legibilidade e a utilidade dos seus resultados de varredura.

Executar a Varredura e Observar a Saída Mais Limpa

Nesta etapa, você executará novamente a varredura com Gobuster usando a flag -b 404 e prestará atenção especial à saída para confirmar que as respostas 404 foram de fato excluídas. Isso reforça sua compreensão de como a flag de exclusão funciona e seu impacto nos resultados da varredura.

Execute o comando novamente para ver a saída filtrada:

gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt -b 404

À medida que a varredura avança, você verá apenas as entradas que retornaram códigos de status diferentes de 404. Isso demonstra a eficácia da flag -b na redução de ruído.

Exemplo de saída mais limpa esperada:

...
/existing_dir           (Status: 200)
/another_file.txt       (Status: 200)
/redirect_me            (Status: 302)
/forbidden_area         (Status: 403)
/server_error           (Status: 500)
...

Observe como as entradas nonexistent_page, admin e test (que retornaram 404) não estão mais presentes na saída. Isso torna muito mais fácil identificar recursos válidos.

Combinar -s e -b para Filtragem Precisa

Nesta etapa final, você aprenderá a combinar as flags -s (incluir códigos de status) e -b (excluir códigos de status) para uma filtragem ainda mais precisa. Embora -b seja ótimo para remover ruído, às vezes você só quer ver tipos específicos de respostas, como as bem-sucedidas (200 OK) ou redirecionamentos (3xx).

A flag -s permite que você especifique uma lista de códigos de status separados por vírgula para incluir nos resultados. Quando ambas as flags -s e -b são usadas, o Gobuster primeiro aplicará o filtro -s e, em seguida, a partir dos resultados restantes, aplicará o filtro -b.

Digamos que você queira ver apenas respostas 200 OK e 302 Found, enquanto ainda exclui explicitamente 404 Not Found.

Execute o seguinte comando:

gobuster dir -u http://localhost:8000 -w ~/project/wordlist.txt -s 200,302 -b 404

Aqui está a análise:

  • -s 200,302: Informa ao Gobuster para apenas mostrar resultados com códigos de status 200 ou 302.
  • -b 404: Informa ao Gobuster para excluir resultados com código de status 404. (Embora neste caso específico, 404 já seria excluído por -s, isso demonstra a combinação.)

Observe a saída. Agora você deve ver apenas entradas com Status: 200 e Status: 302.

...
/existing_dir           (Status: 200)
/another_file.txt       (Status: 200)
/redirect_me            (Status: 302)
...

Essa combinação poderosa permite que você ajuste suas varreduras com Gobuster para obter apenas as informações mais relevantes, melhorando significativamente sua eficiência em reconhecimento web.

Resumo

Neste laboratório, você aprendeu com sucesso como excluir códigos de status HTTP específicos dos seus resultados de varredura com Gobuster. Você começou entendendo por que a filtragem é necessária, especialmente para respostas comuns e "ruidosas" como 404 Not Found. Em seguida, realizou uma varredura de linha de base para observar a saída não filtrada. O cerne deste laboratório envolveu o uso da flag -b para excluir códigos de status indesejados, levando a um conjunto de resultados muito mais limpo e focado. Finalmente, você explorou como combinar as flags -s (incluir) e -b (excluir) para um controle ainda mais preciso sobre suas varreduras com Gobuster. Essa habilidade é inestimável para um reconhecimento web eficiente e direcionado.