Escanear Extensões de Arquivo Específicas no Gobuster

Beginner
Pratique Agora

Introdução

Gobuster é uma ferramenta poderosa usada para brute-forcing de diretórios e arquivos em servidores web. Embora seja comumente usada para descobrir diretórios ocultos, ela também pode ser aproveitada para encontrar arquivos com extensões específicas. Essa capacidade é crucial em testes de penetração e avaliações de segurança, pois ajuda a identificar potenciais pontos de entrada, arquivos sensíveis ou configurações incorretas que podem não ser imediatamente óbvias. Por exemplo, encontrar arquivos .php pode indicar uma aplicação web, enquanto arquivos .bak ou .old podem revelar cópias de backup de dados sensíveis.

Neste laboratório, você aprenderá a usar efetivamente o flag -x do Gobuster para direcionar extensões de arquivo específicas durante seu processo de enumeração web. Você começará identificando extensões de arquivo comuns e relevantes, construirá um comando básico do Gobuster e, em seguida, o aprimorará para incluir a varredura específica de extensões. Finalmente, você executará a varredura e analisará os resultados para entender como interpretar a saída. Essa experiência prática o equipará com uma habilidade valiosa para reconhecimento web mais direcionado e eficiente.

Identificar Extensões de Arquivo de Destino (ex: .php, .html)

Nesta etapa, você aprenderá a identificar extensões de arquivo comuns e relevantes que você pode querer escanear durante uma enumeração web. A escolha das extensões geralmente depende da pilha de tecnologia do alvo (ex: .php para aplicações PHP, .aspx para ASP.NET, .jsp para aplicações Java) ou tipos de arquivo comuns que podem conter informações sensíveis (ex: .txt, .bak, .zip, .sql).

Para este laboratório, focaremos em algumas extensões comuns relacionadas à web: .php, .html e .txt. Estas são frequentemente encontradas e servem como bons exemplos para demonstrar as capacidades do Gobuster.

Você pode listar algumas extensões comuns a serem consideradas para seus escaneamentos. Embora você não precise executar nenhum comando nesta etapa, entender os tipos de arquivos que você está procurando é o primeiro passo crucial em qualquer escaneamento direcionado.

Considere as seguintes extensões comuns:

  • .php: Scripts PHP
  • .html, .htm: Páginas HTML
  • .txt: Arquivos de texto, frequentemente contendo notas ou logs
  • .js: Arquivos JavaScript
  • .css: Folhas de Estilo em Cascata (Cascading Style Sheets)
  • .xml: Arquivos XML
  • .json: Arquivos de dados JSON
  • .bak, .old, .orig: Arquivos de backup
  • .zip, .tar.gz: Arquivos compactados (arquivos de arquivamento)
  • .sql: Dump de banco de dados

Saber quais extensões direcionar ajuda a refinar sua busca e torna sua enumeração mais eficiente.

Construir o Comando Base do gobuster dir

Nesta etapa, você construirá o comando básico gobuster dir. O modo dir no Gobuster é usado para brute-forcing de diretórios e arquivos. Antes de adicionar opções específicas de extensão de arquivo, é uma boa prática entender a estrutura fundamental do comando.

Os componentes essenciais de um comando gobuster dir são:

  • gobuster dir: Especifica o modo (brute-forcing de diretório/arquivo).
  • -u <URL>: Especifica a URL de destino. Para este laboratório, nosso alvo será http://localhost:8000, que está servindo arquivos de /tmp/web_root.
  • -w <wordlist>: Especifica a wordlist a ser usada para brute-forcing. Uma wordlist comum para enumeração web é common.txt ou directory-list-2.3-medium.txt. Para simplicidade e velocidade neste laboratório, usaremos uma pequena wordlist personalizada que inclui index, about, notes e admin.

Vamos criar uma wordlist simples em seu diretório ~/project.

echo -e "index\nabout\nnotes\nadmin\nconfig" > ~/project/small_wordlist.txt

Agora, vamos construir o comando base sem extensões. Este comando tentará encontrar diretórios ou arquivos que correspondam às entradas em small_wordlist.txt.

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

Você verá uma saída semelhante a esta, mostrando os diretórios/arquivos encontrados sem extensões específicas:

...
/index (Status: 200)
/about (Status: 200)
/notes (Status: 200)
/admin (Status: 200)
/config (Status: 200)
...

Esta saída mostra que o Gobuster encontrou entradas que correspondem à wordlist, mas ainda não nos diz seus tipos de arquivo específicos.

Adicionar a Flag -x para Especificar Extensões

Nesta etapa, você aprenderá a usar a flag -x no Gobuster para especificar as extensões de arquivo que deseja escanear. Este é o cerne da descoberta de arquivos com tipos específicos.

A flag -x aceita uma lista de extensões separadas por vírgula. Por exemplo, para escanear arquivos .php e .html, você usaria -x php,html. O Gobuster então anexará essas extensões a cada entrada em sua wordlist e tentará encontrar arquivos como index.php, about.html, etc.

Vamos modificar o comando anterior para incluir as extensões .php, .html e .txt.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt -x php,html,txt,bak

Este comando instrui o Gobuster a procurar por index.php, index.html, index.txt, index.bak, about.php, about.html, about.txt, about.bak, e assim por diante, para cada entrada em sua wordlist.

Execute o comando e observe a saída. Agora você deve ver resultados que incluem explicitamente as extensões de arquivo.

...
/index.php (Status: 200)
/about.html (Status: 200)
/notes.txt (Status: 200)
/admin.php (Status: 200)
/config.bak (Status: 200)
...

Observe como a saída agora mostra claramente os nomes dos arquivos com suas respectivas extensões, indicando que o Gobuster encontrou com sucesso esses arquivos.

Executar o Scan Contra o Alvo

Nesta etapa, você executará o comando completo do Gobuster com as extensões especificadas contra nosso alvo simulado. Esta é a aplicação prática do que você aprendeu.

Usaremos o comando da etapa anterior, que inclui a URL de destino, a wordlist personalizada e a flag -x com as extensões .php, .html, .txt e .bak.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt -x php,html,txt,bak

Ao executar este comando, o Gobuster começará a iterar pela wordlist, anexando cada extensão especificada e fazendo requisições ao servidor http://localhost:8000.

A saída mostrará os arquivos que ele descobre juntamente com seus códigos de status HTTP. Um código de status 200 OK indica que o arquivo foi encontrado com sucesso.

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                     http://localhost:8000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /home/labex/project/small_wordlist.txt
[+] Extensions:              php,html,txt,bak
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/index.php            (Status: 200)
/about.html           (Status: 200)
/notes.txt            (Status: 200)
/admin.php            (Status: 200)
/config.bak           (Status: 200)
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

Esta saída confirma que o Gobuster identificou com sucesso index.php, about.html, notes.txt, admin.php e config.bak no servidor de destino.

Revisar os Resultados para Arquivos com Extensões Específicas

Nesta etapa final, você revisará e interpretará os resultados obtidos do seu scan com o Gobuster. Compreender a saída é crucial para identificar informações valiosas durante uma avaliação de segurança.

A saída da etapa anterior lista claramente os arquivos encontrados juntamente com seus códigos de status HTTP.

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                     http://localhost:8000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /home/labex/project/small_wordlist.txt
[+] Extensions:              php,html,txt,bak
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/index.php            (Status: 200)
/about.html           (Status: 200)
/notes.txt            (Status: 200)
/admin.php            (Status: 200)
/config.bak           (Status: 200)
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

Aqui está o que cada linha significa:

  • /index.php (Status: 200): Indica que um arquivo chamado index.php foi encontrado na raiz do servidor web, e o servidor respondeu com um status 200 OK, significando que a requisição foi bem-sucedida.
  • /about.html (Status: 200): Similarmente, about.html foi encontrado.
  • /notes.txt (Status: 200): Um arquivo de texto chamado notes.txt foi encontrado. Este arquivo pode potencialmente conter informações sensíveis.
  • /admin.php (Status: 200): Um arquivo admin.php foi encontrado. Esta pode ser uma interface administrativa, que frequentemente é um alvo para investigação adicional.
  • /config.bak (Status: 200): Um arquivo de backup chamado config.bak foi encontrado. Arquivos de backup frequentemente contêm detalhes de configuração sensíveis ou código-fonte.

Ao revisar esses resultados, você pode identificar arquivos que podem ser interessantes para investigação adicional. Por exemplo, você pode tentar acessar /admin.php em um navegador web ou baixar /config.bak para examinar seu conteúdo.

Este escaneamento direcionado por extensões ajuda a descobrir arquivos ocultos ou esquecidos que podem levar a vulnerabilidades ou divulgação de informações.

Resumo

Neste laboratório, você aprendeu com sucesso como usar o Gobuster para escanear extensões de arquivo específicas em um servidor web de destino. Você começou entendendo a importância de identificar extensões de arquivo relevantes, depois construiu um comando básico de gobuster dir e, finalmente, o aprimorou usando a flag -x para direcionar arquivos .php, .html, .txt e .bak.

Você executou o scan contra um servidor web simulado e interpretou os resultados, identificando vários arquivos com suas respectivas extensões e códigos de status HTTP. Essa habilidade é inestimável para a enumeração web durante testes de penetração, permitindo que você descubra arquivos ocultos que podem conter informações sensíveis, revelar a pilha de tecnologia ou expor potenciais pontos de entrada.

Ao dominar o uso da flag -x, você pode realizar reconhecimento mais direcionado e eficiente, melhorando significativamente sua capacidade de descobrir vulnerabilidades em aplicações web. Continue praticando com diferentes wordlists e combinações de extensões para aprimorar ainda mais suas habilidades de enumeração web.