Gobuster

Publicado por Igor Matsunaga em


O Gobuster é uma ótima ferramenta utilizada para força bruta em URI’s (diretórios e arquivos) e subdomínios DNS. Desenvolvida utilizando a linguagem de programação GO desenvolvida pelo Google.

Esse artigo foi desenvolvido apenas para fins educacionais e todos os testes foram realizados em ambiente controlado e autorizado.

Instalação

Na versão 4.19.0 do Kali Linux, a instalação via apt-repository não funcionou para mim, mas caso queira tentar utilize o comando:

# apt-get install gobuster

Caso essa opção também não funcione para você, realize o download através desse link.

Lembre-se de baixar a versão com a arquitetura correta para seu dispositivo. Após o termino do download, navegue até onde o arquivo .deb está e insira o comando para instalar.

#  dpkg -i arquivo.deb

Opções

Parâmetros Comuns

  • -fw – força o processamento de um domínio com resultados curinga.
  • -np – oculta a saída do progresso.
  • -m <modo> – qual modo usar, dir ou dns (padrão: dir).
  • -q – desativa a saída de banner / sublinhado.
  • -t <threads> – número de encadeamentos a serem executados (padrão: 10).
  • -u <url / domain> – URL completo (incluindo esquema) ou nome de domínio base.
  • -v – saída detalhada (mostra todos os resultados).
  • -w <wordlist> – caminho para a lista de palavras usada para força bruta (use – para stdin).

Parâmetro do modo Dir

  • -a <user agent string> – especifica uma string do agente do usuário para enviar o cabeçalho da solicitação.
  • -c – use isso para especificar quaisquer cookies que você possa precisar (simulando a autenticação).
  • -e – especifica o modo estendido que renderiza o URL completo.
  • -f – append / for forças brute de diretório.
  • -k – Ignora a verificação de certificados SSL.
  • -l – mostra o tamanho da resposta.
  • -n – modo “sem status”, desativa a saída do código de status do resultado.
  • -o <arquivo> – especifica um nome de arquivo para gravar a saída.
  • -p <proxy url> – especifica um proxy para usar para todas as solicitações (o esquema combina muito com o esquema de URL).
  • -r – segue redirecionamentos.
  • -s <códigos de status> – conjunto separado por vírgula da lista de códigos de status a ser considerado como “positivo” (padrão: 200.204.301.302.307).
  • -x <extensions> – lista de extensões a serem verificadas, se houver.
  • -P – Senha de autorização HTTP (somente autenticação básica, solicitada se ausente).
  • -U – Nome de usuário de autorização HTTP (somente autenticação básica).
  • -para-timeout HTTP. Exemplos: 10s, 100ms, 1m (padrão: 10s).

Parâmetros do modo DNS

  • -cn – mostra registros CNAME (não pode ser usado com a opção ‘-i’).
  • -i – mostra todos os endereços IP para o resultado.

WordList

Para utilizar uma lista de palavras específica utilize a opção -w. Você pode utilizar common.txt ou medium.txt para iniciar um ataque de força bruta para extrair diretórios ou arquivos de dentro da URL de destino.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlist/dirb/common.txt

Obter Caminho Completo para um Diretório ou Arquivo

A utilização da opção -e fornece um resultado mais significativo, pois imprime uma URL completa ao extrair qualquer arquivo ou diretórios.

# gobuster -e -u http://192.168.1.108/dvwa -w /usr/share/wordlist/dirb/common.txt

Ocultar Código de Status

Usando o modo de opção -n  “sem status”, imprime a saída dos resultados sem exibir o código de status.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -n

Modo detalhado

A opção -v ativa o parâmetro detalhado e faz com que o ataque de força bruta seja vigorosamente analisada em cada arquivo ou diretório.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -v

Tamanho do Conteúdo

Usar a opção -l ativa o parâmetro de tamanho do conteúdo, que exibe o tamanho da resposta. Um cabeçalho Content-Length é um número que denota e o comprimento exato do byte do corpo HTTP para o arquivo ou diretório extraído.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -l

Desativar Banner

O Gobuster sempre adiciona o banner para especificar a breve introdução das opções aplicadas durante o lançamento de um ataque de força bruta. Usando a opção -q , podemos desativar o banner para ocultar informações adicionais.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -q

Modo de Agente de Usuário

opção -an permite que o modo User-Agent especifique uma sequência de agente do usuário para enviar o cabeçalho da solicitação para extrair diretórios e arquivos de dentro da URL de destino.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -a Mozilla/5.0 -fw

Especificar o Código de Status

O uso da opção -s habilita o código de status para um valor específico, como 302, 200, 403 e 404, e assim por diante, para obter determinadas páginas de solicitação.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -s 302 
# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -s 200

Tempo Esgotado

Usar a opção -to ativa o parâmetro de tempo limite para solicitação HTTP e 10 segundos é o limite de tempo padrão para a solicitação HTTP. 

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -to 10s

Anexando a Barra Invertida

A opção -f , anexa a barra enquanto faz ataque de força bruta no URL de destino.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -f

Salvando Saída em Arquivo de Texto

Usar a opção -o permite salvar o parâmetro de resultado de saída em um arquivo de texto que pode ser útil no futuro.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -o result.txt

Podemos visualizar o arquivo result.txt com a ajuda do comando cat.

# cat result.txt

Enumerando Diretório com Lista de Extensões Específica

Existem muitas situações em que precisamos extrair os diretórios de uma extensão específica sobre o servidor de destino e, em seguida, podemos usar o parâmetro -X dessa verificação. Esse parâmetro aceita o nome da extensão do arquivo e, em seguida, pesquisa os arquivos de extensão fornecidos pelo servidor ou máquina de destino.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -x .php

Siga o Redirecionamento

O uso das opções -r ativa o parâmetro de redirecionamento que redireciona a solicitação de HTTP para outra e modifica o código de status de um diretório ou arquivo.

# gobuster -u http://192.168.1.108/dvwa -w /usr/share/wordlists/dirb/common.txt -q
# gobuster -u http://192.168.1.108/dvwa -r -w /usr/share/wordlists/dirb/common.txt -q

logoNSW

AUTORIZAÇÃO HTTP (-u nome de usuário: senha)

Os  mecanismos de Autenticação / Autenticação HTTP são baseados no uso do código de status 401 e do  cabeçalho de resposta WWW- Authenticate . Os  mecanismos de autenticação HTTP mais usados  são os  básicos . O cliente envia o nome de usuário e a senha como texto codificado base64 não criptografado.

Então, para contornar esse tipo de autenticação com a ajuda do Gobuster, usamos o comando abaixo:

# gobuster -u http://testphp.vulnweb.com/login.php -w /usr/share/wordlists/dirb/common.txt -U test -P test

Como resultado, é exibido Status –code 200 para o teste: teste e credencial autorizada no URL de destino.

Modo DNS

Usando a opção -m é ativado o modo DNS, que é eficaz para o IP da rede pública e extrai os subdomínios.

# gobuster -m dns -u google.com -w /usr/share/wordlists/dirb/common.txt

Definir Número de Segmentos

A opção -t, permite que o número de parâmetros de encadeamento seja aplicado enquanto nomes ou diretórios de subdomínios sejam submetidos a força bruta.

# gobuster -m dns -u google.com -t 100 -w /usr/share/wordlists/dirb/common.txt

IPs de Subdomínios

O uso da opção -i ativa o parâmetro IP que deve mostrar IPs de subdomínios extraídos.

# gobuster -m dns -u google.com -t 100 -w /usr/share/wordlists/dirb/common.txt -i

Força Bruta de Processamento de Força

Ele para de extrair o nome de subdomínios se atender a qualquer DNS Wildcard que seja um domínio inexistente, portanto, usará a opção -fw para ativar o parâmetro de processamento de força para continuar o ataque mesmo se houver qualquer Domínio Curinga.

# gobuster -m dns -u google.com -t 100 -w /usr/share/wordlists/dirb/common.txt -fw

Ocultar Processo de Extração

Usar a opção -np oculta o processo de extrair o nome de subdomínios ao fazer um ataque de força bruta.

# gobuster -m dns -u google.com -t 100 -w /usr/share/wordlists/dirb/common.txt -fw -np

Extraindo Registros CNAME

opção –cn ativa o parâmetro CNAME Records dos subdomínios extraídos e mostra seus registros CNAME.

# gobuster -m dns -u google.com -t 100 -w /usr/share/wordlists/dirb/common.txt -cn

URL de Proxy

Usar a opção -p permite que a URL do proxy seja usada para todas as solicitações, por padrão ela funciona na porta 1080.

Para garantir essa previsão, nós executamos o comando gobuster duas vezes, primeiramente na porta 80, que é por padrão e mais na porta 3129, juntamente com a opção –p, que ativa o parâmetro proxy.

# gobuster -u http://192.168.1.108/ -w /usr/share/wordlists/dirb/common.txt
# gobuster -u http://192.168.1.108/ -w /usr/share/wordlists/dirb/common.txt –p 192.168.1.108:3129

Que a segurança esteja com você!


Igor Matsunaga

Diretor Técnico da NSWorld, entusiasta da área hacking a mais de 6 anos, hacker ético, formado em Segurança da Informação.

0 comentário

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *