Você encontrou um servidor web, mas a página inicial não revela nada. Nenhum link de admin, nenhuma API óbvia, nenhum sitemap. É aqui que saber como usar o Gobuster compensa. O Gobuster é uma ferramenta rápida escrita em Go que faz força bruta de diretórios, arquivos, subdomínios DNS e hosts virtuais ocultos, lançando uma wordlist contra o alvo e observando a resposta do servidor. É uma das primeiras ferramentas que a maioria dos testadores usa durante a fase de enumeração de um trabalho de teste de intrusão.
Este guia cobre instalação, cada modo de scan, as flags que realmente importam e a filtragem de falsos positivos que separa um relatório limpo de um ruidoso. Você pode acompanhar e rodar scans reais contra o nosso lab hidden CMS breach, um alvo no navegador criado exatamente para esse tipo de descoberta de conteúdo.
Resumo: O Gobuster é uma ferramenta de linha de comando para força bruta de diretórios e DNS escrita em Go. Rode gobuster dir -u http://target -w wordlist.txt para enumerar caminhos ocultos, adicione -x php,txt para extensões de arquivos e use --exclude-length para eliminar falsos positivos. Ele é mais rápido que o DirBuster, mais leve que o ffuf para tarefas simples, e uma habilidade essencial para enumeração web.
O Que É o Gobuster?
O Gobuster é uma ferramenta de força bruta de diretórios, arquivos e DNS escrita em Go. Ele envia um fluxo de requisições HTTP ou DNS construídas a partir de uma wordlist e depois relata quais caminhos ou nomes o alvo realmente responde. Testadores o usam para descobrir conteúdo que não está referenciado em lugar nenhum na navegação do site.
A ferramenta existe porque aplicações web escondem mais do que mostram. Um servidor em funcionamento normalmente guarda recursos que os desenvolvedores nunca pretenderam expor:
- Painéis de administração em caminhos como
/admin,/manageou/wp-admin - Arquivos de backup como
config.php.bakoudatabase.sql - Restos de controle de versão como um diretório
/.git/ - Endpoints de API que não aparecem em nenhuma documentação pública
- Páginas de staging ou debug como
/phpinfo.php
O Gobuster é escrito em Go, e é daí que vem sua principal vantagem. O Go compila para um único binário estático e trata concorrência de forma nativa, então o Gobuster executa muitas requisições em paralelo sem o consumo de memória do antigo DirBuster escrito em Java. Em uma wordlist típica, ele termina em uma fração do tempo.
O projeto é open source e mantido ativamente no GitHub por OJ Reeves e um grupo de colaboradores. O ramo 3.x atual divide o trabalho em modos distintos, o que é a primeira coisa a entender antes de rodar um scan.
Instalando o Gobuster
O Gobuster vem pré-instalado no Kali Linux e no Parrot OS. Em um sistema novo, ou se você o removeu, a instalação leva um comando.
Instalar no Kali ou Debian
sudo apt update && sudo apt install gobuster
Se você pular o apt update e receber o erro unable to locate package gobuster, essa é quase sempre a solução. Seu índice de pacotes está desatualizado e precisa ser atualizado antes que o apt consiga encontrar o pacote.
Instalar com Go
Para obter a versão mais nova antes que os repositórios da sua distro se atualizem, instale direto do código-fonte. Você precisa do Go 1.19 ou mais recente no seu PATH:
go install github.com/OJ/gobuster/v3@latest
Isso coloca o binário em ~/go/bin/. Adicione esse diretório ao seu PATH se o comando não for encontrado depois.
Confirmar a Versão
gobuster version
Verifique se você está em uma versão 3.x. O comportamento das flags descrito abaixo mudou entre as versões 2 e 3, e de novo por volta da 3.2, então uma build antiga não vai bater com estes exemplos.
Os Modos de Enumeração do Gobuster
Diferente de scanners de propósito único, o Gobuster é um conjunto de modos sob um único binário. Você escolhe o modo como primeiro argumento, e cada um tem suas próprias flags. Saber qual modo usar evita que você force a ferramenta errada em um problema.
- dir - Faz força bruta de diretórios e arquivos em um servidor web. É o modo que você mais vai usar.
- dns - Descobre subdomínios de um domínio resolvendo nomes candidatos.
- vhost - Encontra hosts virtuais servidos pelo mesmo IP variando o cabeçalho Host.
- fuzz - Substitui uma palavra-chave
FUZZem qualquer parte da requisição, para parâmetros, cabeçalhos ou caminhos. - s3 e gcs - Procuram buckets abertos do Amazon S3 e do Google Cloud Storage.
O restante deste guia foca em dir, dns e vhost, que cobrem a grande maioria do trabalho real.
Como Usar o Gobuster para Enumeração de Diretórios
O modo dir é o coração da ferramenta. Todo scan precisa de duas coisas: uma URL alvo com -u e uma wordlist com -w. Todo o resto é refinamento.
Passo 1: Rodar um Scan Básico
Comece com uma wordlist pequena e comum para ganhar resultados rápidos sem martelar o alvo:
gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/common.txt
O Gobuster imprime cada caminho descoberto com seu código de status e o tamanho da resposta. Uma linha de resultado é assim:
/admin (Status: 301) [Size: 312] [--> /admin/]
/index.php (Status: 200) [Size: 5124]
/backup (Status: 403) [Size: 278]
Passo 2: Adicionar Extensões de Arquivos
Uma wordlist pura só testa nomes de diretórios. Alvos reais também escondem arquivos, então diga ao Gobuster quais extensões anexar com -x:
gobuster dir -u http://target.com -w common.txt -x php,txt,html,bak
Agora cada palavra é testada como diretório e como word.php, word.txt, word.html e word.bak. Combine as extensões com a stack encontrada durante o reconhecimento. Uma impressão digital do Nmap que mostra PHP significa que php,phtml,php5 pertencem à lista, enquanto uma máquina IIS pede asp,aspx.
Passo 3: Ajustar Threads e o Tamanho da Wordlist
O padrão é 10 threads. Aumente para ganhar velocidade em um servidor que aguenta a carga:
gobuster dir -u http://target.com -w directory-list-2.3-medium.txt -x php,txt -t 50 -o results.txt
O -t 50 eleva a concorrência para 50 threads e -o results.txt salva a saída em um arquivo para o seu relatório. Reduza o número de threads para 5 ou 10 se vir erros de conexão ou se o alvo começar a limitar sua taxa. Para um olhar mais profundo sobre quais wordlists encontram mais conteúdo, nosso guia de wordlists do Gobuster detalha os trade-offs.
Passo 4: Ler os Códigos de Status
Os códigos de status dizem o que você encontrou. Foque nestes:
- 200 OK - O recurso existe e retorna conteúdo. Investigue.
- 301 / 302 - Um redirecionamento, frequentemente um diretório apontando para sua versão com barra final.
- 403 Forbidden - O caminho existe mas o acesso está bloqueado. Isso é ouro, porque o servidor acabou de confirmar que há algo ali.
- 401 Unauthorized - Autenticação necessária, então você achou uma área protegida.
O Gobuster moderno (3.1 e posterior) esconde os 404 por padrão através de uma blacklist de códigos de status e mostra todo o resto. Se você prefere trabalhar a partir de uma whitelist, defina -s 200,301,302,401,403 e limpe a blacklist com -b "". O Gobuster se recusa a rodar com uma whitelist e uma blacklist definidas ao mesmo tempo, o que confunde muitos iniciantes.
Guia Rápido de Comandos do Gobuster
Estas são as flags do modo dir que valem a pena memorizar. A maioria dos scans usa só um punhado, mas conhecer o conjunto completo permite moldar um scan a um alvo complicado.
| Flag | Função |
|---|---|
-u | URL alvo |
-w | Caminho para a wordlist |
-x | Extensões de arquivos a anexar (php,txt,bak) |
-t | Número de threads concorrentes (padrão 10) |
-s | Códigos de status a mostrar (whitelist) |
-b | Códigos de status a esconder (blacklist, padrão 404) |
--exclude-length | Esconder respostas de um dado tamanho em bytes |
-k | Ignorar verificação de certificado TLS (HTTPS autoassinado) |
-r | Seguir redirecionamentos |
-o | Escrever a saída em um arquivo |
-H | Adicionar um cabeçalho personalizado (tokens de auth, cookies) |
--wildcard | Continuar mesmo quando o servidor responde a tudo |
Filtrando Falsos Positivos com --exclude-length
Aqui está o problema que mais desperdiça tempo. Alguns servidores respondem a cada requisição com status 200 e uma página personalizada amigável em vez de um 404 de verdade. O Gobuster vê um 200 e relata cada palavra como um acerto, enterrando suas descobertas reais sob milhares de falsas.
A solução é --exclude-length. Essas páginas falsas são quase sempre idênticas, então compartilham o mesmo tamanho em bytes. Anote o tamanho no ruído e depois o exclua:
gobuster dir -u http://target.com -w common.txt --exclude-length 1234
Na prática, essa única flag transforma um scan inutilizável em um scan limpo. Rode o scan uma vez, identifique o valor [Size: 1234] que se repete entre resultados claramente errados e depois rode de novo excluindo esse tamanho. Você também pode passar intervalos, como --exclude-length 1200-1300, quando as páginas falsas variam um pouco.
Enumeração de DNS e Hosts Virtuais
Força bruta de diretórios é só um dos trabalhos que o Gobuster faz. Outros dois modos ampliam sua superfície de ataque antes de você tocar em um único caminho web.
Descoberta de Subdomínios com o Modo dns
O modo dns encontra subdomínios resolvendo nomes candidatos via DNS. Use -d para o domínio em vez de -u:
gobuster dns -d example.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -t 50
Adicione -i para imprimir os endereços IP resolvidos ao lado de cada acerto. Subdomínios como dev.example.com ou staging.example.com frequentemente rodam com segurança mais fraca que o site de produção, o que torna o passo extra vantajoso.
Descoberta de Hosts Virtuais com o Modo vhost
Muitos servidores hospedam vários sites em um IP e decidem qual servir com base no cabeçalho Host. O modo vhost faz força bruta desse cabeçalho para encontrar sites ocultos:
gobuster vhost -u http://example.com -w vhosts.txt --append-domain
Atenção à flag --append-domain. O Gobuster 3.2 e posterior não anexa mais o domínio base a cada palavra automaticamente, então sem essa flag seu scan testa palavras puras como admin em vez de admin.example.com e não encontra nada. Essa mudança quebrou silenciosamente muitos tutoriais antigos.
Gobuster vs DirBuster vs ffuf
O Gobuster não é a única ferramenta de descoberta de conteúdo, e nem sempre é a certa. Aqui está uma comparação honesta das três que você mais vai encontrar.
| Recurso | Gobuster | DirBuster | ffuf |
|---|---|---|---|
| Velocidade | Rápido (Go) | Lento (Java) | Rápido (Go) |
| Interface | CLI | GUI | CLI |
| Modos DNS / vhost | Sim | Não | Via fuzzing |
| Scan recursivo | Não | Sim | Plugin |
| Filtragem de respostas | Tamanho, status | Básica | Avançada |
| Curva de aprendizado | Suave | Suave | Mais íngreme |
Minha opinião: use o Gobuster quando quiser um scan rápido e direto com saída de linha de comando limpa. É a melhor escolha padrão para trabalho de diretórios e subdomínios. Mude para o ffuf quando precisar de filtragem cirúrgica de respostas ou quiser fuzzar parâmetros e cabeçalhos, e use-o quando a falta de recursividade nativa do Gobuster virar um limite. O DirBuster ainda tem seu lugar se você realmente prefere uma interface gráfica, mas para testes scriptados e repetíveis ele foi superado. Se você vem da ferramenta Java, nosso tutorial de DirBuster mapeia os dois fluxos de trabalho lado a lado.
Dicas para Scans Mais Limpos e Rápidos
Velocidade é fácil. Sinal é difícil. Estes hábitos mantêm seus resultados legíveis e você fora do radar do alvo.
- Reconhecimento antes da força bruta. Identifique o servidor e a stack primeiro para que sua wordlist e extensões correspondam à realidade em vez de adivinhar às cegas.
- Comece pequeno, depois aprofunde. Rode
common.txtprimeiro. Quando encontrar algo como/api/, lance um novo scan contra esse caminho em vez de uma única varredura gigante. - Persiga os 403. Uma resposta proibida confirma que o caminho existe. Isso muitas vezes é mais útil que um 200, porque aponta para algo que vale a pena proteger.
- Cuidado com o ruído. Um número alto de threads termina mais rápido mas acende a detecção de intrusão. Em trabalhos com exigência de discrição, desça para 5 threads.
- Use wordlists de qualidade. A coleção SecLists em
/usr/share/seclists/Discovery/Web-Content/é construída a partir de crawls reais e supera as listas genéricas.
A enumeração de diretórios é só uma pequena fatia da avaliação web. Para ver onde ela se encaixa numa metodologia completa, o OWASP Web Security Testing Guide documenta em detalhe as fases de reconhecimento e descoberta de conteúdo.
Considerações Legais e Éticas
Lembrete crítico: O Gobuster pode disparar milhares de requisições contra um servidor em segundos. Usá-lo contra um sistema que você não possui ou não tem permissão escrita para testar é ilegal na maioria dos países, seja qual for sua intenção.
A força bruta de diretórios é ruidosa e inconfundivelmente ativa. Ela deixa um rastro claro nos logs do servidor e parece um ataque, porque é a mesma técnica que um atacante usaria. Aponte-a apenas para alvos onde você tem autorização.
Onde o Gobuster É Permitido
- Testes de intrusão cobertos por uma carta de contratação assinada que lista o escopo do alvo
- Programas de bug bounty onde a enumeração está explicitamente no escopo
- Sistemas e aplicações que você possui
- Competições CTF e labs propositalmente vulneráveis criados para prática
Mantenha sua autorização documentada e ao alcance durante toda a duração de um trabalho. "Eu só estava aprendendo" não é uma defesa que se sustenta depois que você tocou um sistema sem permissão.
Perguntas Frequentes
Para que serve o Gobuster?
O Gobuster serve para descobrir diretórios, arquivos, subdomínios DNS e hosts virtuais ocultos em um alvo durante testes de segurança autorizados. Ele faz força bruta enviando requisições construídas a partir de uma wordlist e relatando as que o servidor responde.
Como instalo o Gobuster no Kali Linux?
Rode sudo apt update && sudo apt install gobuster. O Gobuster normalmente vem pré-instalado no Kali. Se você vir "unable to locate package gobuster", rode apt update primeiro para atualizar o índice de pacotes e tente de novo.
O Gobuster é melhor que o DirBuster?
Para a maioria dos trabalhos, sim. O Gobuster é escrito em Go e roda muito mais rápido que o DirBuster escrito em Java, e adiciona os modos DNS e de hosts virtuais. As únicas vantagens reais do DirBuster são a interface gráfica e a recursividade nativa, então escolha-o se quiser essas funções especificamente.
Como impeço o Gobuster de relatar falsos positivos?
Use a flag --exclude-length. Quando um servidor retorna 200 para cada requisição com uma página personalizada idêntica, esses resultados falsos compartilham o mesmo tamanho em bytes. Anote esse tamanho e o exclua, por exemplo --exclude-length 1234, para filtrar o ruído.
Por que meu scan vhost do Gobuster não encontra nada?
Você provavelmente está sem a flag --append-domain. O Gobuster 3.2 e posterior não anexa mais o domínio base automaticamente, então cada entrada da wordlist é testada como palavra pura em vez de um nome de host completo. Adicione --append-domain para corrigir isso.
Qual é a melhor wordlist para o Gobuster?
Comece com common.txt do pacote dirb para scans rápidos, depois passe para directory-list-2.3-medium.txt ou as listas Web-Content do SecLists para cobertura mais profunda. Ajuste o tamanho da wordlist ao seu orçamento de tempo e ao valor do alvo.
Seus Próximos Passos
Agora você sabe como usar o Gobuster nos seus principais modos: descoberta de diretórios e arquivos com dir, caça a subdomínios com dns e enumeração de hosts virtuais com vhost. Os detalhes que mais importam no trabalho real são combinar as extensões com a stack do alvo, ajustar os threads para se manter discreto e cortar falsos positivos com --exclude-length. Acerte isso e o Gobuster transforma uma página inicial vazia em um mapa de toda a aplicação.
A forma mais rápida de fixar tudo isso é rodar a ferramenta contra um alvo real. Experimente nosso lab Hidden CMS Breach para enumerar uma aplicação oculta de verdade no navegador, depois aprofunde com o curso de ataques web para ver onde a descoberta de conteúdo se encaixa numa avaliação web completa. Comece com o nível gratuito da HackerDNA, sem cartão de crédito, e pratique a técnica em vez de apenas ler sobre ela.
Parte da série Teste de Intrusão
Artigos relacionados: