Use o Modo de Fuzzing Flexível no Gobuster

Beginner
Pratique Agora

Introdução

Neste laboratório, você explorará as capacidades flexíveis de fuzzing do Gobuster, uma popular ferramenta de brute-forcing de diretórios e arquivos. Embora o Gobuster seja comumente conhecido por seu modo dir, seu modo fuzz oferece uma maneira poderosa de descobrir conteúdo web oculto injetando payloads em várias partes de uma URL. Você aprenderá como construir URLs com a palavra-chave especial FUZZ, fornecer wordlists personalizadas, executar scans de fuzzing e interpretar os resultados para identificar potenciais vulnerabilidades ou recursos ocultos em um servidor web. Esta experiência prática aprimorará suas habilidades de enumeração web, que são cruciais para testes de penetração e avaliações de segurança.

Compreender o Propósito do Modo fuzz e da Palavra-chave FUZZ

Nesta etapa, você aprenderá sobre o modo fuzz no Gobuster e a importância da palavra-chave FUZZ. Ao contrário do modo dir, que principalmente faz brute-force de nomes de diretórios e arquivos, o modo fuzz permite que você injete payloads em posições arbitrárias dentro de uma URL. A palavra-chave FUZZ atua como um placeholder onde o Gobuster inserirá cada entrada da sua wordlist fornecida. Essa flexibilidade permite que você teste várias partes de uma URL, como segmentos de caminho, extensões de arquivo ou até mesmo parâmetros de consulta, em busca de conteúdo oculto ou vulnerabilidades.

Por exemplo, se você deseja descobrir diretórios ocultos em http://localhost:8000/, você usaria uma URL como http://localhost:8000/FUZZ. O Gobuster substituirá então FUZZ por cada palavra da sua wordlist.

Vamos verificar se o Gobuster está instalado e acessível em seu ambiente.

gobuster version

Você deverá ver uma saída semelhante à seguinte, indicando a versão do Gobuster.

Gobuster v3.x.x

Constru

Use a Flag -w para Fornecer uma Wordlist de Payloads

Nesta etapa, você aprenderá como especificar uma wordlist para o Gobuster usar durante o processo de fuzzing. A flag -w é usada para fornecer o caminho para o seu arquivo de wordlist. Cada linha neste arquivo será usada para substituir a palavra-chave FUZZ em sua URL de destino.

Para este laboratório, uma wordlist simples chamada fuzz_wordlist.txt foi criada em seu diretório ~/project durante a fase de configuração. Esta wordlist contém algumas entradas que correspondem a caminhos existentes e não existentes em nosso servidor web simulado.

Vamos inspecionar o conteúdo da wordlist para entender quais payloads serão usados:

cat ~/project/fuzz_wordlist.txt

Você deverá ver o seguinte conteúdo:

secret_dir
admin_panel
test_page.html
nonexistent

Agora você sabe os payloads que o Gobuster tentará. Quando executarmos o scan, o Gobuster tentará acessar URLs como http://localhost:8000/secret_dir, http://localhost:8000/admin_panel, e assim por diante.

Execute o Scan gobuster fuzz

Nesta etapa, você combinará todo o conhecimento anterior para executar o scan gobuster fuzz. Você usará a URL com fuzzing construída na Etapa 2 e a wordlist especificada na Etapa 3.

O comando completo será:

gobuster fuzz -u http://localhost:8000/FUZZ -w ~/project/fuzz_wordlist.txt

Vamos detalhar o comando:

  • gobuster fuzz: Invoca o Gobuster no modo de fuzzing.
  • -u http://localhost:8000/FUZZ: Especifica a URL de destino com o placeholder FUZZ.
  • -w ~/project/fuzz_wordlist.txt: Fornece o caminho para a wordlist contendo os payloads.

Agora, execute o comando em seu terminal:

gobuster fuzz -u http://localhost:8000/FUZZ -w ~/project/fuzz_wordlist.txt

Você verá o Gobuster iterando através da wordlist e relatando os códigos de status para cada tentativa.

===============================================================
Gobuster v3.x.x
===============================================================
[+] Url:            http://localhost:8000/FUZZ
[+] Wordlist:       /home/labex/project/fuzz_wordlist.txt
[+] Threads:        10
[+] Timeout:        10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in fuzz mode
===============================================================
http://localhost:8000/secret_dir (Status: 200)
http://localhost:8000/admin_panel (Status: 200)
http://localhost:8000/test_page.html (Status: 200)
http://localhost:8000/nonexistent (Status: 404)
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

Observe o (Status: 200) para secret_dir, admin_panel e test_page.html, indicando que esses caminhos existem e retornaram uma resposta bem-sucedida. O (Status: 404) para nonexistent indica que esse caminho não foi encontrado, como esperado.

Analise os Resultados do Fuzzing Flexível

Nesta etapa final, você analisará a saída do scan gobuster fuzz para entender o que foi descoberto. O objetivo principal do fuzzing é identificar respostas válidas (tipicamente códigos de status HTTP como 200 OK, 301 Moved Permanently, etc.) que indicam a existência de um recurso.

Da saída da etapa anterior, você deve ter observado linhas semelhantes a estas:

http://localhost:8000/secret_dir (Status: 200)
http://localhost:8000/admin_panel (Status: 200)
http://localhost:8000/test_page.html (Status: 200)
http://localhost:8000/nonexistent (Status: 404)
  • http://localhost:8000/secret_dir (Status: 200): Isso indica que um diretório chamado secret_dir existe sob a raiz do web server. Você pode tentar acessá-lo usando curl:

    curl http://localhost:8000/secret_dir/hidden_file.txt

    Você deverá ver:

    Secret content
  • http://localhost:8000/admin_panel (Status: 200): Isso sugere que um diretório admin_panel existe.

    curl http://localhost:8000/admin_panel/login.php

    Você deverá ver:

    Admin login
  • http://localhost:8000/test_page.html (Status: 200): Isso indica que um arquivo chamado test_page.html existe.

    curl http://localhost:8000/test_page.html

    Você deverá ver:

    Test page
  • http://localhost:8000/nonexistent (Status: 404): Este é um status "Not Found" (Não Encontrado), que é esperado para um caminho que não existe. Isso ajuda a confirmar que o Gobuster está identificando corretamente recursos inexistentes.

Ao analisar os códigos de status, você pode identificar efetivamente diretórios ocultos, arquivos ou outros recursos que podem não estar diretamente vinculados do site principal. Esta é uma etapa crucial na fase de reconhecimento durante avaliações de segurança.

Resumo

Neste laboratório, você aprendeu com sucesso a usar o modo de fuzzing flexível no Gobuster. Você compreendeu o papel da palavra-chave FUZZ como um placeholder para injetar payloads de uma wordlist. Você construiu uma URL com fuzzing, forneceu uma wordlist personalizada, executou um scan gobuster fuzz e analisou os resultados para identificar recursos web existentes. Esta experiência prática demonstrou o poder e a versatilidade das capacidades de fuzzing do Gobuster para enumeração web, uma habilidade fundamental em cibersegurança e testes de penetração. Agora você pode aplicar essas técnicas para descobrir conteúdo oculto em várias aplicações web.