Gobuster | SolydOne
- Gobuster | SolydOne
1. Visão Geral
O Gobuster é uma ferramenta de brute force escrita em Go utilizada para enumeração ativa durante fases de reconhecimento (recon) em testes de invasão.
Principais capacidades:
- Descoberta de diretórios e arquivos em aplicações web
- Enumeração de subdomínios (DNS brute force)
- Descoberta de Virtual Hosts
- Enumeração de buckets S3
Características técnicas:
- Binário estático (Go)
- Alto desempenho (multithread)
- Baixo consumo de memória
- Execução simples via CLI
- Baseado em wordlists
2. Instalação
2.1 Via Go
go install github.com/OJ/gobuster/v3@latest
Garantir que $GOPATH/bin esteja no PATH.
2.2 Kali Linux
sudo apt update
sudo apt install gobuster
2.3 Verificação
gobuster version
3. Modos Operacionais
O Gobuster trabalha com modos específicos.
| Modo | Descrição |
|---|---|
| dir | Enumeração de diretórios e arquivos |
| dns | Enumeração de subdomínios |
| vhost | Descoberta de virtual hosts |
| s3 | Enumeração de buckets AWS |
Sintaxe geral:
gobuster <modo> [opções]
4. Modo DIR – Descoberta de Diretórios
Modo mais utilizado em web pentest.
4.1 Sintaxe Básica
gobuster dir -u http://alvo.com -w wordlist.txt
4.2 Parâmetros Relevantes
| Parâmetro | Função |
|---|---|
| -u | URL alvo |
| -w | Wordlist |
| -t | Número de threads |
| -x | Extensões (ex: php,txt) |
| -s | Status codes a incluir |
| -b | Status codes a excluir |
| -k | Ignorar certificado SSL inválido |
| -o | Salvar saída |
| --timeout | Timeout da requisição |
| --exclude-length | Excluir respostas por tamanho |
4.3 Exemplo Profissional
gobuster dir \
-u https://empresa.com \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt \
-t 40 \
-x php,html,txt \
-b 404 \
-k \
-o resultado.txt
🔎 Estratégia aplicada:
- 40 threads para otimização controlada
- Exclusão de 404 para reduzir ruído
- Extensões específicas para aplicações PHP
- Ignorar SSL inválido em ambiente de teste
4.4 Interpretação de Status
| Código | Significado |
|---|---|
| 200 | Recurso acessível |
| 301 | Redirecionamento |
| 302 | Redirecionamento temporário |
| 403 | Recurso existe, mas acesso negado |
| 500 | Erro interno (possível falha explorável) |
5. Wordlists
Gobuster depende integralmente da qualidade da wordlist.
Local padrão no Kali:
/usr/share/wordlists/
/usr/share/seclists/
Exemplo de wordlist relevante:
/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
Boas práticas:
- Começar com wordlist pequena
- Evoluir para medium/large
- Criar wordlists customizadas baseadas no contexto do alvo
6. Modo DNS – Enumeração de Subdomínios
Utilizado para descobrir subdomínios via brute force.
6.1 Sintaxe
gobuster dns -d alvo.com -w subdomains.txt
6.2 Exemplo Avançado
gobuster dns \
-d empresa.com \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-t 50 \
-i
Parâmetros adicionais:
| Parâmetro | Função |
|---|---|
| -i | Exibir IP resolvido |
| -r | Resolver DNS customizado |
| -t | Threads |
7. Modo VHOST – Virtual Hosts
Usado quando múltiplos domínios estão configurados no mesmo IP.
gobuster vhost -u http://10.10.10.10 -w vhosts.txt
Cenário típico:
- IP responde genericamente
- Host header define aplicação interna
- Possível descoberta de ambientes internos
8. Modo S3 – Buckets AWS
Permite identificar buckets públicos da AWS.
gobuster s3 -w bucket-names.txt
Uso comum:
- Descobrir backups expostos
- Encontrar ambientes dev/prod
- Identificar vazamento de dados
9. Técnicas Avançadas
9.1 Mitigar Soft 404
Algumas aplicações retornam 200 para páginas inexistentes.
Identificar tamanho padrão:
curl http://alvo.com/naoexiste
Excluir por tamanho:
gobuster dir -u http://alvo.com -w wordlist.txt --exclude-length 1234
9.2 Controle contra WAF
Reduzir threads e adicionar delay:
gobuster dir -u http://alvo.com -w wordlist.txt -t 5 --delay 200ms
9.3 User-Agent Customizado
gobuster dir -u http://alvo.com -w wordlist.txt -a "Mozilla/5.0"
10. Workflow Profissional de Enumeração
- Recon passivo (subdomínios)
- Scan de portas (nmap)
- Identificação de tecnologia
- Gobuster (enumeração web)
- Fuzzing avançado
- Análise manual
11. Integração com Nmap
Após identificar serviço HTTP:
nmap -p80,443 -sV alvo.com
Executar enumeração direcionada:
gobuster dir -u http://alvo.com -w wordlist.txt
12. Erros Comuns
12.1 SSL inválido
-k