Enumeração de DNS
Tags: security, dns, tutorial, osint
Published: 2023-11-05 23:23:36

![DNS Enumerate](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jsls1rya8k7oaymwevc5.png)
Imagine a internet como uma vasta rede de estradas e caminhos que conectam bilhões de dispositivos em todo o mundo. Para navegar nessa rede, usamos nomes de domínio em vez de números complexos de IP. O Sistema de Nomes de Domínio (DNS) é o mecanismo por trás dessa mágica, traduzindo nomes de domínio em endereços IP. Neste artigo, vamos mergulhar no emocionante mundo do DNS e, em seguida, explorar um tópico importante: A enumeração de DNS.

## Desvendando o DNS

O DNS, ou Sistema de Nomes de Domínio, é o alicerce invisível da internet. Ele desempenha um papel crucial ao traduzir nomes de domínio, como www.exemplo.com, em endereços IP, permitindo que nossos dispositivos se comuniquem na web. Em vez de se preocupar com números IP complexos, nós usamos nomes de domínio amigáveis. O DNS é uma rede global de servidores que realiza essa tradução e é essencial para a navegação na web.

O DNS é organizado em várias camadas, e aqui estão as principais:

1. Raiz (Root)

A raiz do DNS é o nível mais alto da hierarquia e contém os servidores raiz, representados por letras, como A, B, C, e assim por diante. Esses servidores são a primeira parada na resolução de nomes de domínio.
2. Domínios de Topo (TLDs)

Logo abaixo da raiz estão os Domínios de Topo (TLDs), que incluem TLDs genéricos, como .com, .org, .net, e TLDs de código de país, como .br para o Brasil ou .fr para a França. Cada TLD é controlado por uma organização ou governo.
3. Domínio de Segundo Nível (SLD)

O SLD é a parte do nome de domínio imediatamente à esquerda do TLD. Por exemplo, em "exemplo.com", "exemplo" é o SLD.
4. Subdomínios

Os subdomínios são ramificações dos domínios de segundo nível e podem ser usados para organizar e hierarquizar a estrutura de um site. Por exemplo, em "blog.exemplo.com", "blog" é um subdomínio de "exemplo.com".
5. Registros DNS

Cada nome de domínio pode conter vários tipos de registros DNS, que armazenam informações específicas, como registros A (para mapear nomes de domínio a endereços IP), registros MX (para direcionar o tráfego de e-mail), registros CNAME (para criar aliases), e outros.

## O Poder da Enumeração de DNS

A enumeração de DNS é uma prática vital no mundo da segurança cibernética e no reconhecimento de alvos. Em termos simples, ela envolve a detecção e listagem de todos os registros DNS possíveis associados a um nome de domínio. Isso inclui informações como nomes de host, tipos de registros DNS, TTLs (Tempo de Vida), endereços IP e muito mais, dependendo do nível de detalhe desejado.

Uma enumeração DNS eficaz pode ser usada para clonar zonas DNS manualmente, automatizadamente através de scripts, ou para explorar vulnerabilidades de transferência de zona DNS, conhecidas como transferência AXFR (transferência assíncrona de faixa completa). Essa transferência de DNS ocorre quando um servidor DNS mal configurado responde a solicitações AXFR, o que pode ser uma porta de entrada para invasores.

## O Impacto da Enumeração DNS

Após a conclusão da enumeração de DNS, indivíduos não autorizados podem usar as informações obtidas para acessar registros internos de uma rede, fornecendo uma visão detalhada do mapa DNS. Isso pode ser explorado para examinar a superfície de ataque de uma empresa, coletar dados e, potencialmente, identificar vulnerabilidades.

Em artigos anteriores, abordamos a enumeração de subdomínios. Neste artigo, levaremos as coisas um passo adiante e exploraremos como realizar uma enumeração DNS completa.


## Banner Grabbing

No contexto do DNS, "banner" se refere a informações de identificação ou versão do software que um servidor DNS está executando. No entanto, o DNS não possui um banner tradicional como outros serviços de rede. Em vez disso, para obter informações sobre a versão do software de um servidor DNS, pode-se realizar uma consulta especial conhecida como "version.bind. CHAOS TXT". Essa consulta é uma maneira de descobrir informações sobre o servidor BIND, que é um dos softwares de servidor DNS mais populares. O BIND responde a essa consulta com informações sobre a versão que está sendo executada.

Para realizar essa consulta, você pode usar a ferramenta "dig", que é uma ferramenta de linha de comando usada para consultar informações do DNS. Aqui está um exemplo de como você pode usar o "dig" para obter informações de versão de um servidor BIND:


```sh
dig version.bind CHAOS TXT @<endereço_IP_do_servidor_DNS>
```

Essas informações de versão podem ser úteis para os administradores de sistemas que desejam manter seus servidores atualizados e seguros.

## Host

O "host" é uma ferramenta usada para resolver o endereço IP associado a um nome de domínio específico. Esse comando é amplamente utilizado em sistemas Unix e Linux para consultar servidores DNS e obter informações sobre um determinado domínio. Você pode usá-lo da seguinte maneira:

```sh
host example.com.br
```

O comando "host" recupera registros A, AAAA e MX por padrão. Se quiser especificar qualquer tipo específico de registro DNS, você pode usar a opção -t.

## Transferência de Zona

A transferência de zona é uma operação que permite a replicação de todas as informações de DNS de uma zona (domínio) de um servidor DNS principal para um servidor DNS secundário. Isso é feito para manter os servidores DNS secundários atualizados com as informações mais recentes da zona, garantindo redundância e disponibilidade.

Para realizar a enumeração de DNS, existem várias ferramentas à disposição, incluindo:

-     Nmap: Uma ferramenta versátil usada para escanear redes e identificar dispositivos, portas abertas e serviços em execução. Pode ser usado para explorar informações de DNS.
-     DNSRecon: Uma ferramenta de código aberto para coleta de informações relacionadas a servidores DNS e registros DNS em uma rede.
-     Sublist3r: Uma ferramenta de código aberto para a enumeração de subdomínios em um domínio específico.

## DNSenum

O DNSenum é uma ferramenta poderosa para o reconhecimento de DNS. Ele permite que você crie um mapa completo de DNS para qualquer nome de domínio na Internet. Você pode usá-lo para obter registros NS, MX, AXFR e A, bem como a versão remota do BIND do servidor DNS.

Aqui está um exemplo de como usar o DNSenum:

```sh
dnsenum -d example.com.br
```

## Nmap

O Nmap (Network Mapper) é uma ferramenta de código aberto amplamente usada para escanear e mapear redes, identificando dispositivos, portas abertas e serviços em execução. Ele também pode ser usado para explorar informações de DNS. Um exemplo de comando é:


```sh
nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" <IP>
```

## DNS Recon

O DNS Recon é outra ferramenta de código aberto que ajuda na coleta de informações relacionadas a servidores DNS e registros DNS em uma rede. É amplamente utilizado por profissionais de segurança cibernética e administradores de sistemas para identificar informações sobre domínios, subdomínios e configurações de servidores DNS. Aqui está um exemplo de uso:

```sh
dnsrecon -d scanme.nmap.org
```

## Enumeração de Subdomínio

Subdomínios são partes de um domínio de nível superior que funcionam como subdivisões desse domínio principal. Eles são usados para organizar e hierarquizar a estrutura de um site ou rede, permitindo que diferentes seções ou serviços sejam acessados através de endereços específicos.

O "Sublist3r" é uma ferramenta de código aberto projetada para a enumeração de subdomínios. Ela automatiza o processo de busca de subdomínios, consultando servidores DNS, motores de busca e outros recursos da internet. Isso é valioso para avaliar a superfície de ataque de um domínio e identificar possíveis pontos de entrada para ataques.

```sh
sublist3r -d example.com.br
```


## Como Prevenir a Enumeração de DNS

Embora seja impossível garantir proteção total contra a enumeração de DNS, quando o sistema DNS é público e acessível a qualquer pessoa, é possível adotar algumas práticas que ajudarão a mitigar potenciais riscos. Essas precauções incluem:

-     Desativar a possibilidade de transferências de zona DNS por hosts não confiáveis.
-     Assegurar que não haja direcionamento de hosts privados para endereços IP públicos.
-     Realizar auditorias regulares dos registros DNS para identificar e remover registros obsoletos e não utilizados.
-     Evitar o uso de registros DNS para subdomínios de desenvolvimento e teste, optando por incluí-los no arquivo /etc/hosts.


## Conclusão

A enumeração de DNS é uma parte fundamental da segurança cibernética e do reconhecimento de alvos. Ela permite que profissionais de segurança e administradores de sistemas entendam a paisagem de DNS e identifiquem possíveis vulnerabilidades. No entanto, é essencial realizar essa atividade de forma ética e em conformidade com as políticas de segurança. Conhecer as ferramentas e técnicas disponíveis pode ajudar a proteger as redes e sistemas contra potenciais ameaças. Portanto, explore essas ferramentas com responsabilidade e conhecimento.

## Referência

https://www.kali.org/tools/sublist3r/
https://blog.appsecco.com/a-penetration-testers-guide-to-sub-domain-enumeration-7d842d5570f6
https://securitytrails.com/blog/subdomain-scanner-find-subdomains?__cf_chl_tk=fTLXBnH_nrNkaDsas5NMLoicY74_H5BCfUpmnnoBLXA-1699222164-0-gaNycGzNDns
https://book.hacktricks.xyz/network-services-pentesting/pentesting-dns