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 placeholderFUZZ.-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 chamadosecret_direxiste sob a raiz do web server. Você pode tentar acessá-lo usandocurl:curl http://localhost:8000/secret_dir/hidden_file.txtVocê deverá ver:
Secret contenthttp://localhost:8000/admin_panel (Status: 200): Isso sugere que um diretórioadmin_panelexiste.curl http://localhost:8000/admin_panel/login.phpVocê deverá ver:
Admin loginhttp://localhost:8000/test_page.html (Status: 200): Isso indica que um arquivo chamadotest_page.htmlexiste.curl http://localhost:8000/test_page.htmlVocê deverá ver:
Test pagehttp://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.
