DEV Community

s0w3r
s0w3r

Posted on

Script Zone Transfer

Image description

Explorando a Transferência de Zona com Script

Vamos entender e criar um script para explorar a transferência de zona DNS de forma automática. O objetivo é tentar realizar uma transferência de zona em todos os servidores de nome (NS) disponíveis de um domínio específico. Esse tipo de teste é realizado apenas em ambientes de pentest com autorização explícita.

Explicando a Transferência de Zona

A transferência de zona acontece quando o servidor DNS primário copia as informações do domínio para o servidor secundário. Em um teste de penetração, podemos explorar isso para tentar obter uma lista completa de registros DNS, incluindo IPs, subdomínios e outros dados relevantes, se o servidor DNS não estiver devidamente configurado.

Como Forçar uma Transferência de Zona

Para tentar uma transferência de zona, usamos a ferramenta host no terminal. O comando a seguir busca os servidores NS (Name Servers) de um domínio:

host -t ns seusite.com.br
Enter fullscreen mode Exit fullscreen mode

Uma vez que temos a lista de servidores NS, podemos tentar forçar a transferência de zona com o comando:

host -l -a seusite.com.br ns1.seusite.com.br
Enter fullscreen mode Exit fullscreen mode

No entanto, como um domínio pode ter mais de um servidor NS, é interessante percorrer todos eles.

Criando um Script para Automação

Vamos criar um script simples em Bash que tenta a transferência de zona em todos os servidores NS de um domínio.

Passo 1: Criar o Script dnszone.sh

Abra o editor de texto (como o nano) e crie o script dnszone.sh:

nano dnszone.sh
Enter fullscreen mode Exit fullscreen mode

Dentro do editor, escreva o seguinte código:

#!/bin/bash
# Script para tentar a transferência de zona DNS em todos os servidores NS de um domínio

# Verifica se o domínio foi passado como argumento
if [ -z "$1" ]; then
  echo "Uso: $0 <dominio>"
  exit 1
fi

# Itera sobre todos os servidores NS do domínio
for server in $(host -t ns $1 | cut -d " " -f 4); do
  echo "Tentando transferência de zona no servidor: $server"
  host -l -a $1 $server
done
Enter fullscreen mode Exit fullscreen mode

Passo 2: Dar Permissão de Execução ao Script

Após salvar o script, é necessário dar permissão de execução:

chmod +x dnszone.sh
Enter fullscreen mode Exit fullscreen mode

Passo 3: Executar o Script

Agora, basta executar o script passando o domínio como argumento:

./dnszone.sh seusite.com.br
Enter fullscreen mode Exit fullscreen mode

O que o Script Faz?

  1. O script recebe como argumento o nome do domínio (ex: seusite.com.br).
  2. Ele coleta a lista de servidores NS (Name Servers) usando o comando host -t ns.
  3. Para cada servidor NS encontrado, o script tenta uma transferência de zona usando host -l -a.
  4. A saída exibe o resultado, mostrando se a transferência de zona foi bem-sucedida ou não.

Exemplo de Execução

Ao rodar o script, ele exibirá algo como:

Tentando transferência de zona no servidor: ns1.seusite.com.br
Host ns1.seusite.com.br not found: 9(NOTAUTH)
Tentando transferência de zona no servidor: ns2.seusite.com.br
Host ns2.seusite.com.br not found: 9(NOTAUTH)
Enter fullscreen mode Exit fullscreen mode

Isso significa que os servidores NS não permitiram a transferência de zona, o que é o comportamento esperado em um servidor bem configurado.

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Explore a trove of insights in this engaging article, celebrated within our welcoming DEV Community. Developers from every background are invited to join and enhance our shared wisdom.

A genuine "thank you" can truly uplift someone’s day. Feel free to express your gratitude in the comments below!

On DEV, our collective exchange of knowledge lightens the road ahead and strengthens our community bonds. Found something valuable here? A small thank you to the author can make a big difference.

Okay