Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
puredns — Résolveur DNS haute vitesse et bruteforceur de sous-domaines avec filtrage précis des wildcards et validation des empoisonnements DNS pour une reconnaissance précise. | Kitploit
Outils/GitHubGitHub/d3mondev/puredns
ReconnaissanceÉnumération DNS et Sous-domaineCollecte d'InformationsÉnumération de Sous-domainesFuzzing DNSAnalyse DNSTop en Analyse DNS n°5Top en Fuzzing DNS n°2Top en Énumération DNS et Sous-domaine n°6Top en Énumération de Sous-domaines n°6
2.2k19061il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHubd3mondev/puredns

puredns

Résolveur DNS haute vitesse et bruteforceur de sous-domaines avec filtrage précis des wildcards et validation des empoisonnements DNS pour une reconnaissance précise.

Voir le dépôt

Résolveur de domaines rapide et bruteforce de sous-domaines avec filtrage précis des wildcards
Pour commencer »

Utilisation · Fonctionnement · Parrainage · FAQ

À propos

puredns est un outil rapide de résolution de domaines et de bruteforce de sous-domaines capable de filtrer avec précision les sous-domaines wildcard et les entrées empoisonnées du DNS.

Il utilise massdns, un puissant résolveur DNS stub, pour effectuer des requêtes en masse. Avec la bande passante appropriée et une bonne liste de résolveurs publics, il peut résoudre des millions de requêtes en quelques minutes. Malheureusement, les résultats de massdns ne sont aussi bons que les réponses fournies par les résolveurs publics. Les résultats sont souvent pollués par des réponses DNS erronées et des faux positifs provenant de sous-domaines wildcard.

puredns résout ce problème grâce à son algorithme de détection des wildcards. Il peut filtrer les wildcards en fonction des réponses DNS obtenues à partir d'un ensemble de résolveurs de confiance. Il tente également de contourner l'empoisonnement DNS en validant les réponses obtenues à l'aide de ces résolveurs de confiance.

Vous trouvez cela utile ? ⭐ Mettez une étoile sur GitHub — cela aide !

puredns terminal

Fonctionnalités

  • Résoudre des milliers de requêtes DNS par seconde en utilisant massdns et une liste de résolveurs DNS publics
  • Bruteforcer des sous-domaines en utilisant une wordlist et des domaines racines
  • Nettoyer les wildcards et détecter les racines wildcard en utilisant le nombre minimal de requêtes pour garantir des résultats précis
  • Contourner l'équilibrage de charge DNS lors de la détection des wildcards
  • Valider que les résultats sont exempts d'empoisonnement DNS en les exécutant contre une liste de résolveurs connus et de confiance
  • Enregistrer une liste de domaines valides, de racines de sous-domaines wildcard et une sortie propre de massdns ne contenant que les entrées valides
  • Lire une liste de domaines ou de mots depuis stdin et activer le mode silencieux pour une intégration facile dans des pipelines d'automatisation personnalisés

Parrainage

Si mon travail vous rapporte de l'argent, envisagez de devenir sponsor ! Vous pouvez obtenir des avantages uniques !

Cela signifierait aussi ÉNORMÉMENT ❤️ car cela me permettrait de continuer à travailler gratuitement pour la communauté. Mais quoi que vous fassiez, soyez assuré que mon logiciel restera gratuit et open-source pour vous.

Pour commencer

Prérequis

massdns

Puredns nécessite massdns sur la machine hôte. Si le chemin vers le binaire massdns est présent dans la variable d'environnement PATH, puredns fonctionnera directement. Un bon endroit pour copier l'exécutable massdns est /usr/local/bin sur la plupart des systèmes. Sinon, vous devrez spécifier le chemin vers le fichier binaire massdns à l'aide de l'argument --bin en ligne de commande.

Ce qui suit devrait fonctionner sur la plupart des systèmes basés sur Debian. Suivez les instructions officielles pour plus d'informations.

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

Liste de serveurs résolveurs DNS publics

Vous devez obtenir une liste de serveurs DNS publics pour utiliser puredns. Référez-vous à la FAQ pour apprendre à constituer votre propre liste de serveurs fonctionnels.

Installation

Vous pouvez télécharger une version binaire.

Alternativement, vous pouvez facilement compiler la dernière version. Assurez-vous d'abord que Go est installé sur votre système - les deux dernières versions majeures de Go sont prises en charge. Référez-vous à la page d'installation officielle de Go pour les instructions d'installation. Ensuite, exécutez la commande suivante :

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

Utilisation

Assurez-vous de consulter la liste complète des commandes et options disponibles avec puredns --help.

Si un fichier resolvers.txt existe dans le répertoire de travail actuel, puredns l'utilisera par défaut. Sinon, si les fichiers ~/.config/puredns/resolvers.txt ou ~/.config/puredns/resolvers-trusted.txt sont présents, puredns les utilisera automatiquement comme résolveurs. Si aucune de ces options n'est disponible, spécifiez les résolveurs à utiliser avec les arguments --resolvers et --resolvers-trusted.

Spécifier des résolveurs de confiance est optionnel. Par défaut, puredns utilise simplement 8.8.8.8 et 8.8.4.4.

Bruteforce de sous-domaines

Voici comment bruteforcer une liste massive de sous-domaines en utilisant une wordlist nommée all.txt :

puredns bruteforce all.txt domain.com

Vous pouvez également bruteforcer plusieurs domaines à la fois avec l'option -d pour charger un fichier texte contenant des domaines au lieu de spécifier un seul domaine comme argument :

puredns bruteforce all.txt -d domains.txt

Résoudre une liste de domaines

Vous pouvez également résoudre une liste de domaines contenus dans un fichier texte (un par ligne).

puredns resolve domains.txt

Opération via stdin

Vous pouvez passer la liste des domaines à résoudre via stdin :

cat domains.txt | puredns resolve

Ou une liste de mots à utiliser pour le bruteforce :

cat wordlist.txt | puredns bruteforce domain.com

Vous pouvez également ajouter l'option -q pour n'afficher que les domaines trouvés et les rediriger vers d'autres outils :

cat domains.txt | puredns resolve -q | httprobe

Enregistrer les résultats dans des fichiers

Vous pouvez enregistrer les informations suivantes dans des fichiers pour les réutiliser dans vos workflows :

  • domains : liste propre des domaines qui se résolvent correctement
  • domaines racines wildcard : liste des domaines racines wildcard trouvés (par exemple, *.store.yahoo.com)
  • fichier de résultats massdns (sortie texte -o Snl) : peut être utilisé comme référence et pour extraire les enregistrements A et CNAME.
root@kitploit:~
puredns resolve domains.txt --write valid_domains.txt \
                            --write-wildcards wildcards.txt \
                            --write-massdns massdns.txt

Fonctionnement

puredns en fonctionnement

Vous pouvez voir puredns en action contre le domaine google.com en utilisant une petite wordlist des 100 000 sous-domaines les plus courants dans l'image ci-dessus.

Dans le cadre de son workflow, puredns effectue trois étapes automatiquement :

  1. Résolution en masse à l'aide de serveurs DNS publics
  2. Détection des wildcards
  3. Validation

1. Résolution en masse à l'aide de serveurs DNS publics

En utilisant massdns, puredns effectue une résolution en masse de tous les domaines et sous-domaines. Il alimente massdns via stdin, ce qui lui permet de limiter le nombre de requêtes par seconde si nécessaire et d'effectuer une assainissement de base sur la liste des domaines générés.

Par défaut, les domaines d'entrée sont mis en minuscules, et seules les entrées contenant des caractères valides sont acceptées (essentiellement [a-z0-9.-]). Vous pouvez désactiver cela avec le drapeau --skip-sanitize.

Après cette étape, les résultats sont généralement pollués : certains résolveurs publics renvoient de mauvaises réponses, et les sous-domaines wildcard peuvent rapidement gonfler les résultats.

2. Détection des wildcards

Puredns utilise ensuite son algorithme de détection des wildcards pour détecter et extraire toutes les racines de sous-domaines wildcard du fichier de résultats massdns.

Il utilise la sortie massdns de l'étape 1 comme cache DNS pour minimiser le nombre de requêtes qu'il doit effectuer. Pour garantir des résultats précis, il peut être amené à valider les résultats du cache en effectuant une requête DNS.

Vous pouvez ignorer cette étape avec le drapeau --skip-wildcard.

3. Validation

Pour se protéger contre l'empoisonnement DNS, puredns utilise massdns une dernière fois pour valider les résultats restants à l'aide de résolveurs DNS de confiance. Actuellement, les résolveurs de confiance internes utilisés sont 8.8.8.8 et 8.8.4.4. Cette étape est effectuée à un rythme plus lent pour éviter d'atteindre les limites de débit des résolveurs de confiance.

Vous pouvez ignorer cette étape avec le drapeau --skip-validation.

À ce stade, les fichiers résultants devraient être exempts de sous-domaines wildcard et de réponses DNS empoisonnées.

FAQ

Comment obtenir des résolveurs pour puredns ?

Trickest maintient une liste de résolveurs valides ici : https://github.com/trickest/resolvers

Alternativement, vous pouvez obtenir une liste de résolveurs publics depuis public-dns.info, puis utiliser le projet DNS Validator pour ne conserver que les résolveurs fournissant des réponses valides.

Si vos résolveurs publics fournissent des informations incorrectes à puredns, par exemple en renvoyant des réponses empoisonnées, certains sous-domaines peuvent être manqués car ils seront filtrés. Astuce : Évitez les résolveurs de pays qui censurent Internet, comme la Chine.

Une fois que vous avez une liste de résolveurs personnalisés, vous pouvez les passer à puredns avec l'argument -r ou en les plaçant dans un fichier situé à ~/.config/puredns/resolvers.txt :

puredns resolve domains.txt -r resolvers.txt

Les résolveurs de confiance par défaut sont actuellement 8.8.8.8 et 8.8.4.4. Si vous souhaitez les changer, vous pouvez également spécifier une liste personnalisée avec l'argument --resolvers-trusted ou en les plaçant dans un fichier situé à ~/.config/puredns/resolvers-trusted.txt. J'ai effectué de nombreux tests pour trouver les meilleurs résolveurs de confiance possibles pour puredns - assurez-vous de valider soigneusement vos résultats si vous décidez de les changer, et ajustez la limite de débit avec --rate-limit-trusted.

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

Pourquoi y a-t-il des domaines qui ne se résolvent pas en une adresse IP dans les résultats ?

Puredns ne se contente pas d'ignorer les réponses DNS contenant NXDOMAIN. Parfois, ces réponses NXDOMAIN contiennent des enregistrements CNAME valides pointant vers des domaines expirés. Si ces enregistrements sont présents, ils peuvent pointer vers un domaine non enregistré, permettant des prises de contrôle de sous-domaines.

Si vous obtenez des domaines qui ne se résolvent pas en une adresse IP, vérifiez s'ils contiennent un enregistrement CNAME d'intérêt :

dig @8.8.8.8 CNAME example.com

Pourquoi certains wildcards ne sont-ils pas correctement filtrés pour certains domaines ?

La cause la plus probable est l'équilibrage de charge DNS - parfois, vous obtiendrez différentes adresses IP pour chaque requête DNS unique effectuée. Cela peut rendre très difficile la détection des sous-domaines wildcard en comparant leurs enregistrements DNS.

Vous pouvez spécifier le nombre de tests que puredns effectuera pour rassembler toutes les différentes adresses IP pour un sous-domaine lors de la détection des wildcards. Le nombre par défaut est de 3 tests, ce qui est très faible. J'ai vu des domaines avec beaucoup d'équilibrage nécessiter plus de 50 requêtes pour renvoyer des résultats qui n'étaient pas parfaits mais suffisants.

Vous pouvez essayer d'augmenter le nombre de tests effectués pour détecter les sous-domaines wildcard avec l'argument --wildcard-tests :

puredns resolve domains.txt --wildcard-tests 50

Pourquoi puredns plante-t-il avec une erreur de mémoire insuffisante lors de la résolution de très grandes listes ?

Pour détecter les wildcards, puredns doit conserver un cache des réponses DNS trouvées. Si votre liste de domaines compte des centaines de millions et contient de nombreux sous-domaines wildcard, l'hôte peut manquer de mémoire. Mais il existe une solution simple.

Par défaut, puredns place tous les domaines dans un seul lot pour économiser le nombre de requêtes DNS et le temps d'exécution. Si la mémoire est une préoccupation, il est possible de traiter les domaines en plusieurs lots plus petits avec l'argument --wildcard-batch. J'ai trouvé qu'une bonne taille se situe entre 1M et 2M de sous-domaines pour un VPS avec 1 Go de RAM.

puredns resolve domains.txt --wildcard-batch 1000000

Pourquoi les résultats contiennent-ils parfois des domaines en double ?

Puredns ne supprime pas les doublons à aucun stade de son pipeline. Si le fichier d'entrée contient des éléments en double, comme des mots ou domaines identiques, puredns produira des éléments en double. Vous pouvez vous assurer que les fichiers d'entrée fournis à puredns sont exempts de doublons en utilisant un outil comme sort -u.

Pourquoi les résultats contiennent-ils parfois des domaines sans rapport ?

Cela est probablement dû aux résolveurs publics utilisés. Certains d'entre eux renvoient parfois des réponses sans rapport avec les requêtes, conduisant à des noms de domaine aléatoires dans la sortie. Puredns ne gère pas actuellement ce cas et laisse à l'utilisateur le soin d'assainir la sortie pour s'assurer que les domaines trouvés respectent le périmètre.

Ressources

public-dns.info met à jour en continu une liste de résolveurs DNS publics et gratuits.

DNS Validator peut être utilisé pour constituer votre propre liste de résolveurs DNS publics.

Wordlist all.txt La célèbre wordlist all.txt de Jhaddix est couramment utilisée pour l'énumération de sous-domaines.

shuffleDNS est une bonne alternative écrite en go qui gère les sous-domaines wildcard en utilisant un algorithme différent.

Contributions

Vous pouvez contribuer à puredns de la manière suivante :

  • Soumettre des idées de nouvelles fonctionnalités
  • Signaler des bugs comme des issues
  • Mettre une étoile ⭐ sur ce dépôt
  • Faire connaître puredns
  • Devenir sponsor 🥇 et obtenir des avantages uniques

Avez-vous une idée pour une nouvelle fonctionnalité incroyable ? Avez-vous trouvé un bug que vous voulez corriger ? Super ! N'hésitez pas à soumettre une issue pour discussion avant de faire une pull request.

Je n'accepterai pas les pull requests pour des modifications triviales telles que des corrections de fautes, des bonnes pratiques, des corrections mineures, etc.

Avertissement et licence

Tous les résolveurs inclus dans ce dépôt sont présents à titre de référence uniquement. L'auteur n'est pas responsable de toute utilisation abusive des résolveurs dans cette liste. Il est de la responsabilité de l'utilisateur de constituer une liste de résolveurs qu'il est autorisé à utiliser.

L'utilisation de ce programme pour attaquer des cibles sans consentement est illégale. Il est de la responsabilité de l'utilisateur de respecter toutes les lois applicables. Le développeur décline toute responsabilité et n'est pas responsable de toute utilisation abusive ou de tout dommage causé par ce programme. Veuillez l'utiliser de manière responsable.

Le contenu de ce dépôt est sous licence GNU GPLv3.

Télécharger l’outil