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
PolarDNS — PolarDNS est un serveur DNS faisant autorité spécialisé, adapté aux tests d'intrusion et à la recherche de vulnérabilités. | Kitploit
Outils/GitHubGitHub/oryxlabs/polardns
Scanners de VulnérabilitésAnalyse des VulnérabilitésFuzzingSécurité RéseauTests d'IntrusionAnalyse DNS
GitHuboryxlabs/polardns

PolarDNS

PolarDNS est un serveur DNS faisant autorité spécialisé, adapté aux tests d'intrusion et à la recherche de vulnérabilités.

Voir le dépôt
24919il y a 1 anVé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
Site web
Logo PolarDNS PolarDNS est un serveur DNS faisant autorité spécialisé écrit en Python 3.x, développé à l'origine comme un outil de test de sécurité des résolveurs DNS récursifs depuis le côté serveur.

Il permet à l'opérateur de produire des réponses DNS personnalisées, ce qui le rend adapté à des tests approfondis du protocole DNS.

_

PolarDNS peut être utilisé pour tester :

  • Les résolveurs DNS (côté serveur)
  • Les clients DNS
  • Les bibliothèques DNS
  • Les analyseurs et dissecteurs DNS
  • Tout logiciel manipulant des informations DNS

Il prend en charge les protocoles UDP et TCP, et donne à l'opérateur un contrôle total sur la couche protocole DNS.

Le serveur PolarDNS peut produire une variété de réponses DNS non standard et non conformes, des réponses DNS violant les spécifications RFC, y compris des réponses DNS hautement anormales et malformées.

Cela peut être utile pour :

  • Les tests fonctionnels
  • La conformité RFC
  • La recherche de vulnérabilités

Installation

Il existe trois méthodes disponibles pour installer PolarDNS.

PolarDNS nécessite Python 3.11 ou plus récent et n'a aucune dépendance supplémentaire.

Méthode 1 : Installation via Pip

C'est la façon la plus simple d'installer et d'exécuter PolarDNS :

root@kitploit:~
pip install polardns
polardns

Méthode 2 : Installation traditionnelle

Vous pouvez également cloner le dépôt et exécuter PolarDNS directement :

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

Cette méthode est recommandée si vous prévoyez de déboguer ou modifier le code, ou ajouter de nouvelles fonctionnalités.

Méthode 3 : Exécution de PolarDNS dans Docker

Vous pouvez également exécuter PolarDNS dans un conteneur Docker :

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

Exécution de PolarDNS

Le serveur PolarDNS est configurable via le fichier de configuration polardns/polardns.toml.

  • Pour les tests, la configuration par défaut devrait fonctionner correctement en local.
  • Cependant, vous souhaiterez peut-être ajuster la configuration en ajoutant votre domaine et les adresses IP de vos serveurs de noms.

Au démarrage de PolarDNS, vous devriez voir une sortie similaire à celle-ci :

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

Cela indique que le serveur est opérationnel.

Travailler avec PolarDNS

Par défaut, le serveur commence à écouter sur toutes les interfaces sur les ports UDP et TCP 53 (0.0.0.0:53), prêt à répondre aux requêtes DNS.

Vous pouvez le tester localement en demandant l'exemple de requête suivant, qui devrait toujours résoudre quelque chose.

Demandez en mode UDP :

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

Demandez en mode TCP :

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

Vous devriez recevoir un enregistrement A avec l'adresse IP 2.3.4.5, comme dans cette capture d'écran :

Exemple d'utilisation de PolarDNS

Cela indique que le serveur fonctionne correctement.

Concept principal

En demandant au serveur PolarDNS de résoudre quelque chose, vous lui donnez essentiellement des instructions sur la façon dont il doit vous répondre. Cela signifie que vous (le client) dictez au serveur PolarDNS le type de réponse qu'il doit produire pour vous.

Par exemple, considérez la requête suivante :

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

Vous devriez recevoir à nouveau un enregistrement A avec l'adresse IP 2.3.4.5, mais cette fois avec une valeur TTL de 2 000 000 000 (63,4 ans) et après un délai de 1,5 seconde :

TTL personnalisé et latence de PolarDNS

Dans l'exemple ci-dessus, nous avons utilisé la fonctionnalité de base always (qui résout toujours quelque chose), et nous l'avons combinée avec le modificateur ttl pour ajuster la valeur TTL et le modificateur slp pour attendre avant d'envoyer la réponse.

Fonctionnalités de PolarDNS

PolarDNS possède les fonctionnalités principales suivantes :

  1. Fonctionnalités : Celles-ci peuvent produire diverses réponses DNS. La plupart des fonctionnalités ont des paramètres, ce qui signifie qu'il est possible d'ajuster leur comportement pour produire une variété de réponses DNS différentes.
  2. Modificateurs de réponse : Ceux-ci peuvent modifier davantage les réponses DNS sortant du serveur PolarDNS. Les modificateurs sont indépendants de la fonctionnalité sélectionnée et peuvent être combinés librement.

Il y a actuellement plus de 70 fonctionnalités différentes et 19 modificateurs de réponse implémentés. En utilisant différentes fonctionnalités et en les combinant avec différents modificateurs de réponse, il est possible de produire d'innombrables variantes d'une réponse donnée.

Voir le catalogue inclus de toutes les fonctionnalités et modificateurs de réponse implémentés.

Cela donne à PolarDNS la capacité de produire des réponses DNS hautement inhabituelles, anormales et même malformées, permettant à l'opérateur de voir comment le côté récepteur gère de telles situations et s'il est techniquement robuste et mature.

Quelques exemples de réponses DNS que PolarDNS peut produire incluent :

  • Chaînes d'alias (CNAME) et boucles d'alias
  • Malformations de l'en-tête DNS (ID, Flags, nombre de sections)
  • Injection d'enregistrements non sollicités (empoisonnement du cache)
  • Injection d'octets arbitraires de longueurs arbitraires
  • Réponses incomplètes / vides / avec octet(s) NULL
  • Problèmes de compression (boucles, pointeurs invalides)
  • Réponses fragmentées transmises lentement
  • Étiquettes illégales ou longueurs de nom de domaine
  • Nombre arbitraire d'enregistrements TXT de taille arbitraire
  • Manipulations de longueur de paquet (TCP)
  • Etc.

Cela peut conduire à la découverte de diverses vulnérabilités telles que :

  • Attaques de domaine paresseux (Sloth domain)
  • Attaques de domaine fantôme (Phantom domain)
  • Attaques de blocage de domaine (Domain lock-up)
  • Empoisonnement du cache
  • Épuisement des ressources
  • Plantages, DoS

Voir les présentations BlackHat MEA 2023 (y compris les diapositives BONUS) pour plus de détails, de nombreux autres exemples et cas d'utilisation.

Test des résolveurs DNS récursifs

Voici un aperçu de haut niveau de ce dont vous avez besoin pour commencer à tester les serveurs DNS récursifs.

  1. Achetez un domaine pour vos tests, par exemple example123.com via votre registraire de domaine préféré.
  2. Obtenez 2 instances VPS Linux avec des adresses IP publiques et statiques - ce seront vos serveurs de noms.
  3. Déployez le serveur PolarDNS sur les deux instances.
  4. Modifiez le fichier de configuration polardns/polardns.toml sur chaque instance et modifiez votre nom de domaine et les adresses IP de vos serveurs de noms en conséquence - même configuration sur les deux.
  5. Dans le registraire de domaine, sélectionnez la gestion du domaine avec vos propres serveurs de noms. Vous devrez spécifier les NS primaire et secondaire - fournissez les adresses IP de vos instances.

Maintenant votre infrastructure devrait être prête pour tester tout résolveur DNS récursif de votre choix.

Détail du processus de test

Afin de commencer à tester un résolveur DNS récursif cible, vous devez diriger vos requêtes vers ce résolveur, par exemple :

root@kitploit:~
dig always.example123.com @<TARGET-RESOLVER-IP>

Par exemple, pour tester le DNS public CloudFlare :

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

Pendant la résolution, le résolveur DNS cible contactera vos serveurs de noms PolarDNS faisant autorité (gérant votre domaine de test example123.com) pour résoudre la requête.

L'un de vos serveurs PolarDNS répondra au résolveur DNS cible. Le résolveur recevra, analysera et traitera la réponse de PolarDNS. Ensuite, il renverra la réponse finale à vous (le client).

Voici un aperçu visuel du processus de test : Utilisation de PolarDNS pour tester un résolveur DNS

En demandant au résolveur DNS de résoudre divers sous-domaines sous votre domaine example123.com, vous pouvez effectivement tester le comportement du résolveur DNS et voir comment il gère diverses situations inattendues (réponses).

Par exemple, comment gère-t-il une situation où il obtient une réponse DNS malformée, une réponse avec un enregistrement injecté, ou un enregistrement contenant des caractères illégaux, et quel type de réponse envoie-t-il finalement à vous, le client ?

Tests E2E automatisés avec GitHub Actions

PolarDNS peut être intégré avec une variété de résolveurs DNS pour exécuter une suite complète de tests de bout en bout (E2E) de serveur DNS.

Cette intégration est propulsée par GitHub Actions, avec des modèles de référence (workflows) actuellement disponibles pour les six résolveurs DNS suivants :

  • 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)

Lorsqu'une action GitHub est déclenchée (par exemple, lors d'un commit ou manuellement), les workflows effectuent les étapes suivantes :

  1. Démarrent le résolveur DNS sélectionné dans un conteneur Docker
  2. Démarrent PolarDNS dans un conteneur Docker séparé
  3. Connectent le résolveur sélectionné à PolarDNS
  4. Exécutent la suite de tests E2E contre le résolveur DNS sélectionné

Pour ajouter vos propres tests E2E, placez-les simplement dans le répertoire test-e2e/.

Vous cherchez une suite de tests E2E complète pour serveur DNS ? Contactez [email protected].

Ajout de nouvelles fonctionnalités

Ajouter de nouvelles fonctionnalités à PolarDNS est essentiel pour découvrir des problèmes DNS véritablement inédits. Et avec PolarDNS, vous pouvez le faire relativement facilement.

PolarDNS vous permet d'ajouter rapidement une nouvelle fonctionnalité, d'essayer vos idées ou de développer une POC sans avoir à construire votre propre serveur DNS. Tout ce dont vous avez besoin est la capacité de comprendre le code Python et une curiosité pour expérimenter avec le protocole DNS.

Il existe un guide de contribution détaillé, étape par étape, contribution guide pour vous aider à démarrer. Vous y trouverez non seulement comment ajouter de nouvelles fonctionnalités, mais aussi comment déboguer PolarDNS, soumettre des problèmes, partager des idées, et plus encore.

Liens

Voici quelques excellentes ressources utiles lorsque vous jouez avec PolarDNS.

Liens liés au protocole DNS :

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

Serveurs DNS :

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

Crédits

Merci à tous ceux qui ont contribué à PolarDNS ! ❤️

Télécharger l’outil