Utilizar Diferentes Wordlists para Varredura de Diretórios no Gobuster

Beginner
Pratique Agora

Introdução

Neste laboratório, você explorará o papel crucial das wordlists (listas de palavras) na varredura de diretórios usando o Gobuster, uma ferramenta popular para enumeração web. A varredura de diretórios é um passo fundamental em testes de penetração de aplicações web, ajudando a descobrir diretórios e arquivos ocultos que podem conter informações sensíveis ou fornecer vetores de ataque. A eficácia e a eficiência deste processo dependem fortemente da wordlist utilizada. Você aprenderá a localizar wordlists padrão no Kali Linux, realizar varreduras com diferentes tamanhos de wordlists e analisar o impacto no tempo de varredura e no número de entradas descobertas. Isso proporcionará uma compreensão prática das compensações envolvidas na escolha da wordlist correta para suas tarefas de enumeração.

Localizar as Wordlists Padrão no Kali

Nesta etapa, você localizará as wordlists padrão fornecidas no Kali Linux, que são essenciais para ferramentas como o Gobuster. O Kali Linux vem com uma rica coleção de wordlists armazenadas no diretório seclists. Essas wordlists são categorizadas para diversos fins, incluindo enumeração de diretórios, quebra de senhas e fuzzing.

Primeiro, navegue até o diretório seclists. O caminho comum para essas wordlists é /usr/share/seclists.

ls -l /usr/share/seclists

Você verá vários subdiretórios. Para enumeração web, o diretório Discovery é particularmente relevante. Dentro de Discovery, você encontrará Web-Content, que contém wordlists especificamente projetadas para encontrar diretórios e arquivos web.

ls -l /usr/share/seclists/Discovery/Web-Content/

Entre elas, common.txt é uma wordlist relativamente pequena, e directory-list-2.3-medium.txt é uma mais extensa e abrangente. Você usará essas duas wordlists nas etapas subsequentes para observar o impacto do tamanho da wordlist nas varreduras do Gobuster.

ls -l /usr/share/seclists/Discovery/Web-Content/common.txt
ls -l /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

Você também pode visualizar as primeiras linhas de common.txt para ter uma ideia do seu conteúdo:

head /usr/share/seclists/Discovery/Web-Content/common.txt

Saída esperada (truncada):

.git
.svn
.DS_Store
.htaccess
.htpasswd
.bash_history
.bash_logout
.bashrc
.profile
.ssh

Realizar uma Varredura com uma Wordlist Pequena (common.txt)

Nesta etapa, você realizará uma varredura de diretórios usando o Gobuster com a wordlist menor common.txt. Isso demonstrará uma varredura rápida que pode não encontrar diretórios menos comuns, mas é mais veloz.

O alvo da nossa varredura será um servidor web Python simples rodando localmente na porta 8000. A URL será http://127.0.0.1:8000.

Use o seguinte comando para executar o Gobuster:

  • dir: Especifica que estamos realizando um brute-force de diretórios/arquivos.
  • -u: Especifica a URL alvo.
  • -w: Especifica o caminho para a wordlist.
  • -o: Especifica um arquivo de saída para salvar os resultados.
gobuster dir -u http://127.0.0.1:8000 -w /usr/share/seclists/Discovery/Web-Content/common.txt -o ~/project/gobuster_common_results.txt

A varredura será executada e exibirá seu progresso. Após a conclusão, você poderá visualizar os resultados salvos em ~/project/gobuster_common_results.txt.

cat ~/project/gobuster_common_results.txt

Saída esperada (pode variar ligeiramente com base no conteúdo de common.txt e na configuração do servidor):

/admin                (Status: 200)
/backup               (Status: 200)
/common.html          (Status: 200)

Observe o tempo que a varredura levou para ser concluída. Isso será comparado com a varredura usando uma wordlist maior na próxima etapa.

Realizar uma Varredura com uma Wordlist Maior (directory-list-2.3-medium.txt)

Nesta etapa, você repetirá a varredura de diretórios usando o Gobuster, mas desta vez com a wordlist muito maior directory-list-2.3-medium.txt. Isso demonstrará como uma wordlist mais abrangente pode encontrar mais entradas, mas ao custo de um tempo de varredura aumentado.

gobuster dir -u http://127.0.0.1:8000 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -o ~/project/gobuster_medium_results.txt

Esta varredura levará significativamente mais tempo do que a anterior devido ao tamanho da wordlist. Tenha paciência enquanto ela é executada. Após a conclusão, examine os resultados.

cat ~/project/gobuster_medium_results.txt

Saída esperada (incluirá mais entradas do que a varredura com common.txt, incluindo /admin, /backup, /common.html e potencialmente muitas outras):

/admin                (Status: 200)
/backup               (Status: 200)
/common.html          (Status: 200)
/css                  (Status: 200)
/js                   (Status: 200)
/images               (Status: 200)
... (muitas mais entradas)

Observe a diferença no número de entradas descobertas e no tempo total gasto em comparação com a varredura anterior.

Comparar o Tempo e os Resultados de Ambas as Varreduras

Nesta etapa, você comparará explicitamente os resultados e o tempo aproximado gasto em ambas as varreduras. Embora o Gobuster não forneça um tempo exato em sua saída, você pode inferi-lo pela duração que observou durante a execução e verificando os tamanhos dos arquivos ou a contagem de linhas dos arquivos de saída.

Primeiro, vamos comparar o número de linhas (que corresponde ao número de entradas descobertas) em ambos os arquivos de saída:

echo "Results from common.txt scan:"
wc -l ~/project/gobuster_common_results.txt

echo "Results from directory-list-2.3-medium.txt scan:"
wc -l ~/project/gobuster_medium_results.txt

Saída esperada (as contagens de linhas variarão):

Results from common.txt scan:
3 /home/labex/project/gobuster_common_results.txt
Results from directory-list-2.3-medium.txt scan:
X /home/labex/project/gobuster_medium_results.txt (onde X é um número muito maior)

Você deverá observar que a varredura com directory-list-2.3-medium.txt encontrou significativamente mais entradas.

Em relação ao tempo, você terá notado que a varredura com common.txt foi concluída muito rapidamente (provavelmente alguns segundos), enquanto a varredura com directory-list-2.3-medium.txt levou muito mais tempo (potencialmente minutos, dependendo dos recursos do sistema e da velocidade da rede). Isso destaca a relação direta entre o tamanho da wordlist e a duração da varredura.

Compreender o Trade-off Entre o Tamanho da Wordlist e o Tempo de Varredura

Nesta etapa final, você resumirá os principais aprendizados das varreduras anteriores, focando no trade-off entre o tamanho da wordlist, o tempo de varredura e a abrangência dos resultados.

Wordlists Maiores:

  • Prós: Maior probabilidade de descobrir diretórios e arquivos ocultos, levando a uma enumeração mais completa. Isso é crucial para encontrar caminhos obscuros ou não padronizados que podem conter vulnerabilidades ou dados sensíveis.
  • Contras: Aumenta significativamente o tempo de varredura, consome mais recursos do sistema e gera um volume maior de saída, o que pode ser desafiador de analisar. Também pode gerar mais ruído (falsos positivos ou entradas irrelevantes).

Wordlists Menores:

  • Prós: Tempos de varredura muito mais rápidos, menos intensivo em recursos e produz uma saída mais gerenciável. Ideal para verificações rápidas ou quando você tem uma boa ideia dos caminhos comuns.
  • Contras: Pode não encontrar diretórios e arquivos menos comuns ou com nomes personalizados, levando a uma enumeração incompleta e potencialmente negligenciando informações críticas.

Escolhendo a Wordlist Certa:
A escolha da wordlist depende do seu objetivo e do tempo disponível.

  • Para reconhecimento inicial ou verificações rápidas, uma wordlist menor e direcionada, como common.txt, geralmente é suficiente.
  • Para uma avaliação completa e aprofundada, uma wordlist maior, como directory-list-2.3-medium.txt ou até mesmo maiores (por exemplo, directory-list-2.3-big.txt), é necessária.
  • Às vezes, uma abordagem combinada é a melhor: comece com uma wordlist pequena para velocidade, depois siga com uma maior se as descobertas iniciais justificarem uma análise mais aprofundada.
  • Wordlists personalizadas, adaptadas ao alvo específico ou à pilha de tecnologia, também podem ser muito eficazes.

Essa compreensão é vital para testes de penetração de aplicações web eficientes e eficazes.

Resumo

Neste laboratório, você explorou com sucesso o impacto de diferentes tamanhos de wordlist na varredura de diretórios do Gobuster. Você aprendeu a localizar wordlists padrão no Kali Linux, realizou varreduras usando uma wordlist pequena (common.txt) e uma maior (directory-list-2.3-medium.txt), e comparou seus resultados e tempos aproximados de varredura. Você obteve uma compreensão prática dos trade-offs envolvidos: wordlists maiores oferecem resultados mais abrangentes, mas exigem significativamente mais tempo, enquanto wordlists menores proporcionam varreduras mais rápidas com o risco de perder entradas menos comuns. Esse conhecimento é crucial para tomar decisões informadas durante tarefas de enumeração web em testes de penetração.