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
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
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
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
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
Passo 3: Executar o Script
Agora, basta executar o script passando o domínio como argumento:
./dnszone.sh seusite.com.br
O que o Script Faz?
- O script recebe como argumento o nome do domínio (ex:
seusite.com.br
). - Ele coleta a lista de servidores NS (Name Servers) usando o comando
host -t ns
. - Para cada servidor NS encontrado, o script tenta uma transferência de zona usando
host -l -a
. - 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)
Isso significa que os servidores NS não permitiram a transferência de zona, o que é o comportamento esperado em um servidor bem configurado.
Top comments (0)