Introdução
No domínio da cibersegurança e testes de penetração, a descoberta de subdomínios é um passo crucial na fase de reconhecimento. Subdomínios frequentemente hospedam diferentes aplicações, serviços ou ambientes de desenvolvimento que podem expor superfícies de ataque adicionais ou vulnerabilidades não presentes no domínio principal. Gobuster é uma ferramenta popular usada para brute-force de URIs (diretórios e arquivos), subdomínios DNS, buckets Amazon S3 e nomes de host virtuais.
Este laboratório irá guiá-lo através do processo de realização de uma varredura básica de subdomínios DNS usando Gobuster. Você aprenderá como selecionar um alvo, escolher uma wordlist eficaz, construir o comando Gobuster com as flags necessárias, executar a varredura e interpretar os resultados para identificar subdomínios ativos. Ao final deste laboratório, você terá uma compreensão fundamental de como utilizar o Gobuster para enumeração de subdomínios, uma habilidade vital para qualquer profissional ou entusiasta de segurança.
Selecionar um Domínio Alvo
Nesta etapa, você selecionará um domínio alvo para sua varredura de subdomínios. Para fins educacionais, usaremos scanme.nmap.org como nosso alvo. Este domínio é fornecido pelo Nmap para fins de teste e é seguro para escanear.
Primeiro, certifique-se de que o Gobuster está instalado. Se não estiver, você pode instalá-lo usando apt.
sudo apt update
sudo apt install -y gobuster
Após a instalação, você pode verificar a instalação verificando sua versão:
gobuster -v
Você deverá ver uma saída semelhante a esta, indicando que o Gobuster está instalado:
gobuster v3.x
Agora, vamos confirmar nosso domínio alvo. Usaremos scanme.nmap.org.
echo "Nosso domínio alvo é: scanme.nmap.org"
Este comando simplesmente imprime o domínio alvo no seu terminal, confirmando sua seleção.
Escolher uma Wordlist para Subdomínios
Nesta etapa, você escolherá uma wordlist adequada para sua varredura de subdomínios. Uma wordlist é um arquivo contendo uma lista de nomes de subdomínios comuns (por exemplo, www, mail, dev, admin). O Gobuster tentará resolver cada nome na wordlist combinado com seu domínio alvo (por exemplo, www.scanme.nmap.org, mail.scanme.nmap.org).
Para este laboratório, usaremos uma wordlist comum frequentemente encontrada em distribuições de testes de penetração, ou podemos baixar uma. Usaremos a wordlist dns.txt do projeto SecLists, que é uma boa lista de propósito geral para enumeração de DNS.
Primeiro, vamos garantir que temos o repositório SecLists clonado ou uma wordlist similar disponível. Se não tivermos, podemos baixar uma wordlist específica.
wget -nc https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/dns.txt -P ~/project/
A flag -nc garante que o wget não fará o download novamente do arquivo se ele já existir, o que é útil se você executar o comando várias vezes. A flag -P ~/project/ especifica o diretório para salvar o arquivo.
Após o download, verifique se o arquivo da wordlist existe no seu diretório ~/project/:
ls -l ~/project/dns.txt
Você deverá ver uma saída semelhante a esta, confirmando a presença do arquivo:
-rw-r--r-- 1 labex labex XXXX Month Day HH:MM ~/project/dns.txt
Isso confirma que dns.txt está pronto para ser usado como nossa wordlist.
Construir o Comando Básico do gobuster dns
Nesta etapa, você construirá o comando básico do Gobuster para realizar uma varredura de subdomínios DNS. O Gobuster usa diferentes modos para diferentes tipos de brute-forcing. Para enumeração de subdomínios DNS, usamos o modo dns.
As flags essenciais para uma varredura DNS são:
-d: Especifica o domínio alvo.-w: Especifica o caminho para a wordlist.
Portanto, a estrutura básica do comando será gobuster dns -d <domínio_alvo> -w <caminho_da_wordlist>.
Vamos montar o comando usando nosso alvo escolhido scanme.nmap.org e a wordlist ~/project/dns.txt.
echo "O comando Gobuster será: gobuster dns -d scanme.nmap.org -w ~/project/dns.txt"
Este comando imprimirá o comando Gobuster completo que você está prestes a executar. Entender o comando antes de executá-lo é crucial para o uso eficaz de qualquer ferramenta.
Executar a Varredura com as Flags -d e -w
Nesta etapa, você executará a varredura de subdomínios DNS do Gobuster usando o comando construído na etapa anterior. Isso iniciará o processo de brute-forcing, onde o Gobuster tenta resolver cada entrada na wordlist como um subdomínio do domínio alvo.
Execute o seguinte comando no seu terminal:
gobuster dns -d scanme.nmap.org -w ~/project/dns.txt
À medida que a varredura é executada, o Gobuster exibirá os subdomínios que ele resolveu com sucesso. A saída mostrará os subdomínios resolvidos juntamente com seus endereços IP.
Exemplo de saída:
===============================================================
Gobuster v3.x
===============================================================
[+] Url: scanme.nmap.org
[+] Threads: 10
[+] Wordlist: /home/labex/project/dns.txt
[+] Status codes: 200,204,301,302,307,401,403,405,500
[+] Timeout: 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in DNS mode
===============================================================
Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)
...
A varredura pode levar algum tempo, dependendo do tamanho da wordlist e das condições da rede. Deixe-a completar para obter uma lista abrangente dos subdomínios encontrados.
Analisar a Lista de Subdomínios Encontrados
Nesta etapa final, você analisará a saída da varredura do Gobuster. As linhas Found: na saída indicam subdomínios resolvidos com sucesso. Estes são os subdomínios que existem e possuem registros DNS correspondentes.
Revise a saída da etapa anterior. Procure por linhas que começam com Found: seguidas por um subdomínio e seu endereço IP.
Por exemplo, você pode ver:
Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)
Cada um destes representa um ponto de entrada potencial ou um ativo interessante relacionado ao domínio alvo. Em um cenário do mundo real, você investigaria esses subdomínios mais a fundo, talvez visitando-os em um navegador web, realizando varreduras de portas ou procurando por vulnerabilidades web.
Para confirmar que você analisou a saída, vamos procurar por um subdomínio comum como www.
echo "Procure por 'www.scanme.nmap.org' na saída do Gobuster."
Esta etapa enfatiza a importância de revisar os resultados de suas ferramentas de reconhecimento. A saída bruta do Gobuster fornece informações valiosas que podem orientar suas avaliações de segurança subsequentes.
Resumo
Neste laboratório, você realizou com sucesso uma varredura básica de subdomínios DNS usando o Gobuster. Você aprendeu a:
- Selecionar um domínio alvo (
scanme.nmap.org). - Escolher e baixar uma wordlist apropriada (
dns.txt). - Construir o comando do Gobuster usando o modo
dnse as flags-d(domain) e-w(wordlist). - Executar a varredura e observar a saída em tempo real dos subdomínios descobertos.
- Analisar os resultados para identificar subdomínios ativos e entender sua importância.
Esta habilidade fundamental é crucial para o reconhecimento em cibersegurança, permitindo que você expanda sua compreensão da superfície de ataque de um alvo. Você pode aprimorar ainda mais suas varreduras com o Gobuster experimentando diferentes wordlists, aumentando o número de threads (-t) ou especificando servidores DNS personalizados (--resolver).
