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
puredns — Resolvedor de DNS de alta velocidade e bruteforçador de subdomínios com filtragem precisa de curingas e validação de envenenamento de DNS para reconhecimento preciso. | Kitploit
Ferramentas/GitHubGitHub/d3mondev/puredns
ReconhecimentoEnumeração de DNS e SubdomíniosColeta de InformaçõesEnumeração de SubdomíniosFuzzing de DNSAnálise de DNSTop em Análise de DNS nº5Top em Fuzzing de DNS nº2Top em Enumeração de DNS e Subdomínios nº6Top em Enumeração de Subdomínios nº6
2.2k19061há 6 mesesRevisado 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
GitHubd3mondev/puredns

puredns

Resolvedor de DNS de alta velocidade e bruteforçador de subdomínios com filtragem precisa de curingas e validação de envenenamento de DNS para reconhecimento preciso.

Ver Repositório

Resolvedor de domínios rápido e bruteforcing de subdomínios com filtragem precisa de wildcards
Introdução »

Uso · Como funciona · Patrocínio · FAQ

Sobre

puredns é um resolvedor de domínios rápido e uma ferramenta de bruteforcing de subdomínios que pode filtrar com precisão subdomínios curingas (wildcard) e entradas envenenadas por DNS.

Ele usa massdns, um poderoso resolvedor DNS stub, para realizar consultas em massa. Com a largura de banda adequada e uma boa lista de resolvedores públicos, pode resolver milhões de consultas em apenas alguns minutos. Infelizmente, os resultados do massdns são tão bons quanto as respostas fornecidas pelos resolvedores públicos. Os resultados são frequentemente poluídos por respostas DNS erradas e falsos positivos de subdomínios curingas.

puredns resolve isso com seu algoritmo de detecção de wildcards. Ele pode filtrar wildcards com base nas respostas DNS obtidas de um conjunto de resolvedores confiáveis. Também tenta contornar o envenenamento DNS validando as respostas obtidas usando esses resolvedores confiáveis.

Acha isso útil? ⭐ Dê uma estrela no GitHub — ajuda!

puredns terminal

Recursos

  • Resolver milhares de consultas DNS por segundo usando massdns e uma lista de resolvedores DNS públicos
  • Forçar subdomínios (bruteforce) usando uma wordlist e domínios raiz
  • Limpar wildcards e detectar raízes de wildcards usando o número mínimo de consultas para garantir resultados precisos
  • Contornar o balanceamento de carga DNS durante a detecção de wildcards
  • Validar que os resultados estão livres de envenenamento DNS executando contra uma lista de resolvedores conhecidos e confiáveis
  • Salvar uma lista de domínios válidos, raízes de subdomínios curingas e uma saída limpa do massdns contendo apenas as entradas válidas
  • Ler uma lista de domínios ou palavras da entrada padrão (stdin) e ativar o modo silencioso para fácil integração em pipelines de automação personalizados

Patrocínio

Se meu trabalho está gerando dinheiro para você, considere se tornar um patrocinador! Você pode ganhar algumas vantagens exclusivas!

Também significaria MUITO ❤️, pois me permitiria continuar trabalhando gratuitamente para a comunidade. Mas independentemente do que você fizer, fique tranquilo que meu software continuará gratuito e de código aberto para você usar.

Introdução

Pré-requisitos

massdns

Puredns requer massdns na máquina hospedeira. Se o caminho para o binário massdns estiver presente na variável de ambiente PATH, puredns funcionará imediatamente. Um bom lugar para copiar o executável massdns é /usr/local/bin na maioria dos sistemas. Caso contrário, você precisará especificar o caminho para o arquivo binário massdns usando o argumento de linha de comando --bin.

O seguinte deve funcionar na maioria dos sistemas baseados em Debian. Siga as instruções oficiais para mais informações.

root@kitploit:~
git clone https://github.com/blechschmidt/massdns.git
cd massdns
make
sudo make install

Lista de servidores resolvedores DNS públicos

Você precisa obter uma lista de servidores DNS públicos para usar o puredns. Consulte a FAQ para aprender como selecionar sua própria lista de servidores funcionais.

Instalação

Você pode baixar uma versão binária.

Alternativamente, você pode compilar a versão mais recente facilmente. Primeiro, certifique-se de que o Go está instalado no seu sistema - as duas últimas versões principais do Go são suportadas. Consulte a página oficial de instalação do Go para instruções de instalação. Em seguida, execute o seguinte comando:

root@kitploit:~
go install github.com/d3mondev/puredns/v2@latest

Uso

Certifique-se de visualizar a lista completa de comandos e opções usando puredns --help.

Se um arquivo resolvers.txt existir no diretório de trabalho atual, puredns o usará por padrão. Caso contrário, se os arquivos ~/.config/puredns/resolvers.txt ou ~/.config/puredns/resolvers-trusted.txt estiverem presentes, puredns os utilizará automaticamente como resolvedores. Se nenhuma dessas opções estiver disponível, especifique os resolvedores a serem usados com os argumentos --resolvers e --resolvers-trusted.

Especificar resolvedores confiáveis é opcional. Por padrão, puredns simplesmente usará 8.8.8.8 e 8.8.4.4.

Bruteforcing de subdomínios

Veja como fazer bruteforce de uma lista massiva de subdomínios usando uma wordlist chamada all.txt:

puredns bruteforce all.txt domain.com

Você também pode fazer bruteforce de vários domínios de uma só vez com a opção -d para carregar um arquivo de texto contendo domínios em vez de especificar um único domínio como argumento:

puredns bruteforce all.txt -d domains.txt

Resolvendo uma lista de domínios

Você também pode resolver uma lista de domínios contida em um arquivo de texto (um por linha).

puredns resolve domains.txt

Operação com stdin

Você pode passar a lista de domínios para resolver via stdin:

cat domains.txt | puredns resolve

Ou uma lista de palavras para usar no bruteforce:

cat wordlist.txt | puredns bruteforce domain.com

Você também pode adicionar a opção -q para exibir apenas os domínios encontrados e encaminhá-los para outras ferramentas:

cat domains.txt | puredns resolve -q | httprobe

Salvando os resultados em arquivos

Você pode salvar as seguintes informações em arquivos para reutilizá-las em seus fluxos de trabalho:

  • domínios: lista limpa de domínios que resolvem corretamente
  • domínios raiz de wildcard: lista dos domínios raiz de wildcard encontrados (por exemplo, *.store.yahoo.com)
  • arquivo de resultados massdns (-o Snl text output): pode ser usado como referência e para extrair registros A e CNAME.
root@kitploit:~
puredns resolve domains.txt --write valid_domains.txt \
                            --write-wildcards wildcards.txt \
                            --write-massdns massdns.txt

Como funciona

puredns em operação

Você pode ver puredns em ação contra o domínio google.com usando uma pequena wordlist dos 100k subdomínios mais comuns na imagem acima.

Como parte de seu fluxo de trabalho, puredns executa três etapas automaticamente:

  1. Resolução em massa usando servidores DNS públicos
  2. Detecção de wildcards
  3. Validação

1. Resolução em massa usando servidores DNS públicos

Usando massdns, puredns realizará uma resolução em massa de todos os domínios e subdomínios. Ele alimenta os dados para massdns via stdin, o que permite limitar o número de consultas por segundo, se necessário, e realizar uma sanitização básica na lista de domínios gerada.

Por padrão, os domínios de entrada são convertidos para minúsculas, e apenas entradas contendo caracteres válidos são aceitas (essencialmente [a-z0-9.-]). Você pode desabilitar isso com a opção --skip-sanitize.

Após esta etapa, os resultados geralmente são poluídos: alguns resolvedores públicos enviam respostas incorretas, e subdomínios curingas podem inflar rapidamente os resultados.

2. Detecção de wildcards

Puredns então usa seu algoritmo de detecção de wildcards para detectar e extrair todas as raízes de subdomínios curingas do arquivo de resultados massdns.

Ele usará a saída massdns da etapa 1 como um cache DNS para minimizar o número de consultas que precisa realizar. Para garantir resultados precisos, pode ser necessário validar os resultados do cache realizando uma consulta DNS.

Você pode pular esta etapa usando a opção --skip-wildcard.

3. Validação

Para proteger contra envenenamento DNS, puredns usa massdns uma última vez para validar os resultados restantes usando resolvedores DNS confiáveis. Atualmente, os resolvedores confiáveis internos usados são 8.8.8.8 e 8.8.4.4. Esta etapa é realizada em um ritmo mais lento para evitar exceder os limites de taxa (rate limiting) nos resolvedores confiáveis.

Você pode pular esta etapa usando a opção --skip-validation.

Neste ponto, os arquivos resultantes devem estar limpos de subdomínios curingas e respostas DNS envenenadas.

FAQ

Como obter resolvedores para usar com puredns?

Trickest mantém uma lista de resolvedores válidos aqui: https://github.com/trickest/resolvers

Alternativamente, você pode obter uma lista de resolvedores públicos de public-dns.info, depois usar o projeto DNS Validator para manter apenas resolvedores que forneçam respostas válidas.

Se seus resolvedores públicos fornecerem informações incorretas ao puredns, por exemplo, enviando respostas envenenadas, alguns subdomínios podem ser perdidos, pois serão filtrados. Dica: Evite resolvedores de países que censuram a internet, como a China.

Depois de ter uma lista de resolvedores personalizados, você pode passá-los para puredns com o argumento -r ou colocando-os em um arquivo localizado em ~/.config/puredns/resolvers.txt:

puredns resolve domains.txt -r resolvers.txt

Os resolvedores confiáveis padrão atualmente são 8.8.8.8 e 8.8.4.4. Se você quiser alterá-los, também pode especificar uma lista personalizada com o argumento --resolvers-trusted ou colocando-os em um arquivo localizado em ~/.config/puredns/resolvers-trusted.txt. Eu realizei muitos testes para encontrar os melhores resolvedores confiáveis possíveis para puredns - certifique-se de validar seus resultados cuidadosamente se decidir alterá-los e ajuste o limite de taxa com --rate-limit-trusted.

puredns resolve domains.txt -r resolvers.txt --resolvers-trusted trusted.txt

Por que há domínios que não resolvem para um endereço IP nos resultados?

Puredns não ignora simplesmente respostas DNS contendo NXDOMAIN. Às vezes, essas respostas NXDOMAIN têm registros CNAME válidos que apontam para domínios expirados. Se esses registros estiverem presentes, eles podem apontar para um domínio não registrado, permitindo a tomada de subdomínios (subdomain takeover).

Se você está obtendo domínios que não resolvem para um endereço IP, verifique se eles contêm um registro CNAME de interesse:

dig @8.8.8.8 CNAME example.com

Por que há wildcards que não estão sendo filtrados corretamente para alguns domínios?

A causa mais provável é o balanceamento de carga DNS - às vezes, você obtém endereços IP diferentes para cada consulta DNS única feita. Isso pode dificultar muito a detecção de subdomínios curingas comparando seus registros DNS.

Você pode especificar o número de testes que puredns realizará para reunir todos os diferentes endereços IP para um subdomínio durante a detecção de wildcards. O número padrão é 3 testes, que é muito baixo. Já vi domínios com muito balanceamento que precisam de mais de 50 consultas para retornar resultados que não eram perfeitos, mas suficientemente bons.

Você pode tentar aumentar o número de testes realizados para detectar subdomínios curingas com o argumento --wildcard-tests:

puredns resolve domains.txt --wildcard-tests 50

Por que o puredns trava com um erro de falta de memória ao resolver listas muito grandes?

Para detectar wildcards, puredns precisa manter um cache das respostas DNS encontradas. Se sua lista de domínios estiver na casa das centenas de milhões e contiver muitos subdomínios curingas, o host pode ficar sem memória. Mas existe uma solução fácil.

Por padrão, puredns coloca todos os domínios em um único lote para economizar no número de consultas DNS e no tempo de execução. Se a memória for uma preocupação, é possível processar os domínios em vários lotes menores com o argumento --wildcard-batch. Descobri que um bom tamanho é entre 1M e 2M subdomínios para um VPS com 1GB de RAM.

puredns resolve domains.txt --wildcard-batch 1000000

Por que os resultados às vezes contêm domínios duplicados?

Puredns não remove duplicatas em nenhum lugar do seu pipeline. Se o arquivo de entrada contiver itens duplicados, como palavras ou domínios idênticos, puredns exibirá elementos duplicados. Você pode garantir que os arquivos de entrada fornecidos ao puredns estejam livres de duplicatas usando uma ferramenta como sort -u.

Por que os resultados às vezes contêm domínios não relacionados?

Provavelmente é devido aos resolvedores públicos usados. Alguns deles às vezes retornam respostas não relacionadas às consultas, levando a nomes de domínio aleatórios na saída. Puredns atualmente não lida com esse caso e deixa para o usuário sanitizar a saída para garantir que os domínios encontrados respeitem o escopo.

Recursos

public-dns.info atualiza continuamente uma lista de resolvedores DNS públicos e gratuitos.

DNS Validator pode ser usado para selecionar sua própria lista de resolvedores DNS públicos.

all.txt wordlist A icônica wordlist all.txt de Jhaddix é comumente usada para enumeração de subdomínios.

shuffleDNS é uma boa alternativa escrita em Go que lida com subdomínios curingas usando um algoritmo diferente.

Contribuições

Você pode contribuir com puredns das seguintes maneiras:

  • Submeta novas ideias de funcionalidades
  • Relate bugs como issues
  • Dê uma estrela ⭐ neste repositório
  • Divulgue o puredns
  • Torne-se um patrocinador 🥇 e ganhe vantagens exclusivas

Você tem uma ideia para uma nova funcionalidade incrível? Encontrou um bug que deseja corrigir? Ótimo! Fique à vontade para abrir uma issue para discussão antes de fazer um pull request.

Não aceitarei pull requests para alterações triviais, como correções de digitação, boas práticas, correções menores, etc.

Aviso Legal & Licença

Quaisquer resolvedores incluídos neste repositório estão presentes apenas para referência. O autor não é responsável por qualquer uso indevido dos resolvedores nessa lista. É responsabilidade do usuário selecionar uma lista de resolvedores que ele está autorizado a usar.

O uso deste programa para atacar alvos sem consentimento é ilegal. É responsabilidade do usuário obedecer a todas as leis aplicáveis. O desenvolvedor não assume nenhuma responsabilidade e não se responsabiliza por qualquer uso indevido ou dano causado por este programa. Por favor, use com responsabilidade.

O material contido neste repositório está licenciado sob GNU GPLv3.

Baixar ferramenta