Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
PolarDNS — PolarDNS é um servidor DNS autoritativo especializado adequado para testes de penetração e pesquisa de vulnerabilidades. | Kitploit
Ferramentas/GitHubGitHub/oryxlabs/polardns
Scanners de VulnerabilidadesAnálise de VulnerabilidadesFuzzingSegurança de RedeTestes de PenetraçãoAnálise de DNS
GitHuboryxlabs/polardns

PolarDNS

PolarDNS é um servidor DNS autoritativo especializado adequado para testes de penetração e pesquisa de vulnerabilidades.

Ver Repositório
24919há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site
Logotipo do PolarDNS O PolarDNS é um servidor DNS autoritativo especializado escrito em Python 3.x, originalmente desenvolvido como uma ferramenta para testes de segurança de resolvedores recursivos DNS do lado do servidor.

Ele permite que o operador produza respostas DNS personalizadas, sendo adequado para propósitos de teste aprofundado do protocolo DNS.

_

O PolarDNS pode ser usado para testar:

  • Resolvedores DNS (lado do servidor)
  • Clientes DNS
  • Bibliotecas DNS
  • Parsers e dissecadores DNS
  • Qualquer software que manipule informações DNS

Ele suporta os protocolos UDP e TCP, e dá ao operador controle total sobre a camada do protocolo DNS.

O servidor PolarDNS pode produzir uma variedade de respostas DNS não padronizadas e não conformes, respostas DNS que violam as especificações RFC, incluindo respostas DNS altamente anormais e malformadas.

Isso pode ser útil para:

  • Testes funcionais
  • Conformidade com RFC
  • Pesquisa de vulnerabilidades

Instalação

Existem três métodos disponíveis para instalar o PolarDNS.

O PolarDNS requer Python 3.11 ou mais recente e não possui dependências adicionais.

Método 1: Instalação via Pip

Esta é a maneira mais fácil de instalar e executar o PolarDNS:

root@kitploit:~
pip install polardns
polardns

Método 2: Instalação tradicional

Você também pode clonar o repositório e executar o PolarDNS diretamente:

root@kitploit:~
git clone https://github.com/oryxlabs/PolarDNS.git
cd PolarDNS
python polardns.py

Este método é recomendado se você planeja depurar ou modificar o código, ou adicionar novos recursos.

Método 3: Executando o PolarDNS no Docker

Você também pode executar o PolarDNS em um contêiner Docker:

root@kitploit:~
docker run -p 53:53/tcp -p 53:53/udp oryxlabs/polardns

Executando o PolarDNS

O servidor PolarDNS é configurável através do arquivo de configuração polardns/polardns.toml.

  • Para fins de teste, a configuração padrão deve funcionar bem para execução local.
  • No entanto, você pode querer ajustar a configuração adicionando seu domínio e endereços IP do servidor de nomes.

Ao iniciar o PolarDNS, você deve ver uma saída semelhante à seguinte:

root@kitploit:~
python polardns.py
1741599804.9039893 | PolarDNS v1.6.1 server starting up
1741599804.9039893 | Using '/path/to/your/polardns/polardns.toml' config file
1741599804.9039893 | Starting listener at tcp://0.0.0.0:53
1741599804.9039893 | Starting listener at udp://0.0.0.0:53

Isso indica que o servidor está em execução.

Trabalhando com o PolarDNS

Por padrão, o servidor começa a escutar em todas as interfaces nas portas UDP e TCP 53 (0.0.0.0:53), pronto para responder a consultas DNS.

Você pode testá-lo localmente fazendo a seguinte consulta de exemplo, que deve sempre resolver para algo.

Consulte no modo UDP:

root@kitploit:~
dig always.yourdomain.com @127.0.0.1

Consulte no modo TCP:

root@kitploit:~
dig always.yourdomain.com @127.0.0.1 +tcp

Você deve receber um registro A com o endereço IP 2.3.4.5, como nesta captura de tela:

Exemplo de uso do PolarDNS

Isso indica que o servidor está funcionando corretamente.

Conceito principal

Ao pedir ao servidor PolarDNS para resolver algo, você está essencialmente dando instruções sobre como ele deve responder a você. Isso significa que você (o cliente) dita ao servidor PolarDNS que tipo de resposta ele deve produzir para você.

Por exemplo, considere a seguinte consulta:

root@kitploit:~
dig always.ttl2000000000.slp1500.yourdomain.com @127.0.0.1

Você deve receber novamente um registro A com o endereço IP 2.3.4.5, mas desta vez com um valor TTL de 2.000.000.000 (63,4 anos) e após um atraso de 1,5 segundos:

TTL personalizado e latência do PolarDNS

No exemplo acima, usamos o recurso básico always (que sempre resolve para algo) e o combinamos com o modificador ttl para ajustar o valor TTL e o modificador slp para esperar antes de enviar a resposta.

Funcionalidades do PolarDNS

O PolarDNS possui as seguintes funcionalidades principais:

  1. Recursos: Estes podem produzir várias respostas DNS. A maioria dos recursos possui parâmetros, o que significa que é possível ajustar seu comportamento para produzir uma variedade de respostas DNS diferentes.
  2. Modificadores de resposta: Estes podem modificar ainda mais as respostas DNS provenientes do servidor PolarDNS. Os modificadores são independentes do recurso selecionado e podem ser combinados livremente.

Existem atualmente mais de 70 recursos diferentes e 19 modificadores de resposta implementados. Usando diferentes recursos e combinando-os com diferentes modificadores de resposta, é possível produzir inúmeras variantes de uma determinada resposta.

Consulte o catálogo incluído de todos os recursos e modificadores de resposta implementados.

Isso dá ao PolarDNS a capacidade de produzir respostas DNS altamente incomuns, anormais e até mesmo malformadas, permitindo que o operador veja como o lado receptor lida com tais situações e se o lado receptor é tecnicamente robusto e maduro.

Alguns exemplos de respostas DNS que o PolarDNS pode produzir incluem:

  • Cadeias de alias (CNAME) e loops de alias
  • Malformações no cabeçalho DNS (ID, Flags, número de seções)
  • Injeção de registros não solicitados (envenenamento de cache)
  • Injeção de bytes arbitrários de comprimentos arbitrários
  • Respostas incompletas / vazias / com byte(s) NULL
  • Problemas de compressão (loops, ponteiros inválidos)
  • Respostas fragmentadas transmitidas lentamente
  • Rótulos ou comprimentos de nomes de domínio ilegais
  • Número arbitrário de registros TXT de tamanho arbitrário
  • Manipulações de comprimento de pacote (TCP)
  • Etc.

Estes podem levar à descoberta de várias vulnerabilidades, como:

  • Ataques de domínio Sloth
  • Ataques de domínio fantasma
  • Ataques de bloqueio de domínio
  • Envenenamento de cache
  • Exaustão de recursos
  • Travamentos, DoS

Veja as apresentações do BlackHat MEA 2023 (incluindo slides BÔNUS) para mais detalhes, muitos mais exemplos e casos de uso.

Teste de resolvedores DNS recursivos

Aqui está uma visão geral de alto nível do que você precisa para começar a testar servidores DNS recursivos.

  1. Compre um domínio para seus testes, por exemplo, example123.com, usando seu registrador de domínio favorito.
  2. Obtenha 2 instâncias VPS Linux com endereços IP públicos e estáticos - estes serão seus servidores de nomes.
  3. Implante o servidor PolarDNS em ambas as instâncias.
  4. Edite o arquivo de configuração polardns/polardns.toml em cada instância e altere seu nome de domínio e endereços IP do servidor de nomes de acordo - mesma configuração em ambos.
  5. No registrador de domínio, selecione gerenciar o domínio usando seus próprios servidores de nomes. Você precisará especificar o NS primário e secundário - forneça os endereços IP de suas instâncias.

Agora sua infraestrutura deve estar pronta para testar qualquer resolvedor DNS recursivo de sua escolha.

Detalhamento do processo de teste

Para começar a testar um resolvedor DNS recursivo alvo, você deve direcionar suas consultas para o resolvedor DNS alvo, por exemplo:

root@kitploit:~
dig always.example123.com @<IP-DO-RESOLVEDOR-ALVO>

Por exemplo, para testar o DNS público do CloudFlare:

root@kitploit:~
dig always.example123.com @1.1.1.1

Durante a resolução, o resolvedor DNS alvo entrará em contato com seus servidores de nomes autoritativos PolarDNS (que gerenciam seu domínio de teste example123.com) para resolver a consulta.

Um de seus servidores PolarDNS responderá ao resolvedor DNS alvo. O resolvedor receberá, analisará e processará a resposta do PolarDNS. Em seguida, retornará a resposta final para você (o cliente).

Aqui está uma visão visual do processo de teste: Usando o PolarDNS para testar um resolvedor DNS

Ao instruir o resolvedor DNS a resolver vários subdomínios sob seu domínio example123.com, você pode efetivamente testar o comportamento do resolvedor DNS e ver como ele lida com várias situações inesperadas (respostas).

Por exemplo, como ele lida com uma situação em que obtém uma resposta DNS malformada, uma resposta com um registro injetado ou um registro contendo caracteres ilegais, e que tipo de resposta ele finalmente envia para você, o cliente?

Testes E2E automatizados com GitHub Actions

O PolarDNS pode ser integrado com uma variedade de resolvedores DNS para executar um conjunto abrangente de testes de servidor DNS ponta a ponta (E2E).

Esta integração é alimentada por GitHub Actions, com modelos de referência (workflows) atualmente disponíveis para os seguintes seis resolvedores DNS:

  • BIND9 (e2e-bind9.yaml)
  • CoreDNS (e2e-coredns.yaml)
  • Dnsmasq (e2e-dnsmasq.yaml)
  • Knot Resolver (e2e-knot-v5.yaml, e2e-knot-v6.yaml)
  • PowerDNS (e2e-powerdns.yaml)
  • Unbound (e2e-unbound.yaml)

Quando uma GitHub Action é acionada (por exemplo, em um commit ou manualmente), os workflows executam as seguintes etapas:

  1. Iniciam o resolvedor DNS selecionado em um contêiner Docker
  2. Iniciam o PolarDNS em um contêiner Docker separado
  3. Conectam o resolvedor selecionado ao PolarDNS
  4. Executam o conjunto de testes E2E contra o resolvedor DNS selecionado

Para adicionar seus próprios testes E2E, basta colocá-los no diretório test-e2e/.

Procurando um conjunto de testes E2E completo para servidores DNS? Entre em contato com [email protected].

Adicionando novos recursos

Adicionar novos recursos ao PolarDNS é essencial para descobrir problemas DNS verdadeiramente novos. E com o PolarDNS, você pode fazer isso com relativa facilidade.

O PolarDNS permite que você adicione rapidamente um novo recurso, teste suas ideias ou desenvolva um PoC sem ter que construir seu próprio servidor DNS. Tudo que você precisa é a capacidade de entender código Python e curiosidade para experimentar o protocolo DNS.

Existe um guia de contribuição detalhado e passo a passo para você começar. Lá, você encontrará não apenas como adicionar novos recursos, mas também como depurar o PolarDNS, enviar issues, compartilhar ideias e muito mais.

Links

Aqui estão alguns recursos excelentes que são úteis ao brincar com o PolarDNS.

Links relacionados ao protocolo DNS:

  • https://en.wikipedia.org/wiki/List_of_DNS_record_types
  • https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml

Servidores DNS:

  • https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software
  • https://www.lifewire.com/free-and-public-dns-servers-2626062

Créditos

Obrigado a todos que contribuíram para o PolarDNS! ❤️

Baixar ferramenta