DNSEnum énumère les informations relatives aux noms de domaine

DNSEnum est un outil développé en PERL permettant l’énumération et la récupération d’informations relatives aux noms de domaine.

L’utilisation de DNSEnum nécessitera l’installation de module PERL supplémentaire :

– perl-Net-Netmask
– perl-Net-Whois-IP
– perl-WWW-Mechanize

  • Utilisation de base

./dnsenum.pl domain.xxx

L’exécution de base permettra de récupérer l’adresse IP de host, les serveurs de noms de domaine, et les entrées MX associés au TLD.

De plus une tentative de transfert de zone “AXFR” sera effectuée sur chaque serveurs de DNS récupérés.

Par défaut, la récupération de ces informations s’effectuera sur le serveur de nom de domaine spécifié dans la configuration de votre machine.

  • Enregistrer les sous-domaines découverts dans un fichier dédié

Par le biais de l’option “–subfile” il est possible d’enregistrer les sous-domaines découverts dans un fichier dédié, afin de pouvoir les analyser de part la suite.

./dnsenum.pl domain.xxx –subfile results.txt

  • Spécifier un autre serveur de DNS pour la récupération des informations

Il arrive parfois que le serveur de DNS sur lequel vous allez effectuer vos résolutions ait un cache pouvant fausser les résultats (TTL). Nous vous conseillons donc de lancer la première fois DNSEnum avec comme “resolver” votre serveur de DNS local, et ensuite de récupérer le, ou les, serveurs de DNS spécifiques au nom de domaine cible, et de refaire les mêmes tests pour chaque serveurs de DNS trouvés.

Il arrive aussi parfois que les serveurs de DNS hébergeant le nom de domaine aient des entrées différentes, et qui peuvent apporter des informations supplémentaires intéressantes.

Afin de pouvoir spécifier un serveur de résolution spécifique lors de l’exécution de DNSEnum, il suffit d’utiliser l’option “–dnsserver“.

./dnsenum.pl –dnsserver xxx.xxx.xxx.xxx domain.xxx

  • Attaque de base brute force DNS par le biais de DNSEnum

L’option “-f” vous permettra de spécifier le dictionnaire de sous domaines que vous désirez utiliser pour effectuer l’attaque brute force DNS.

Le fichier “dns.txt” fournit de base avec DNSEnum contient environ 95 sous domaines.

./dnsenum.pl -f dns.txt domain.xxx

Les résultats supplémentaires qui seront fournis sont :

  1. Toutes les résolutions des noms de domaine qui ont été détectés par le biais de la méthode du type brute force
  2. Les classes C des différents noms de domaine qui ont été détectés
  3. Les “reverses lookup” de toutes les adresses IP de toutes les classes C découvertes.
  4. Les blocks IP des différentes classes C découvertes.
  • Affiner le brute forcing et les résultats obtenus avec l’option WHOIS

DNSEnum propose par le biais de son option “-w“, d’effectuer un WHOIS sur les différentes classes C découvertes, afin de valider et de fournir les véritables “net ranges” se cachant derrière et ainsi d’affiner les découvertes “reverses lookup” et l’identification des différents blocks IP.

./dnsenum.pl -f dns.txt domain.xxx -w

  • Découverte de sous domaines par le biais Google

DNSEnum donne aussi la possibilité de recherche automatiquement dans Google la présence d’autres sous domaines.

L’option “–enum” lancera 5 threads DNSEnum qui effectueront les WHOIS et les parsing des résultats retournés par Google.
Le nombre de résultats maximum qui seront extraits du parsing Google sera de 20 sur un total de 20 pages de recherches parcourues.

./dnsenum.pl -f dns.txt domain.xxx –enum

Vous pouvez bien sûr customiser votre recherche Google par le biais des options suivantes :

-p : Nombre de pages qui seront parcourues (par défaut 20), l’option -s est obligatoire.
-s : Nombre maximum de résultats qui seront extraits.

./dnsenum.pl -f dns.txt domain.xxx -s 200

  • Alimenter son dictionnaire brut force DNS avec les résultats obtenus

DNSEnum donne la possibilité d’alimenter son dictionnaire avec les résultats obtenus lors d’une exécution de base, d’une attaque du type brute force, et par le biais de résultats retournés par le “scraping” Google.

Afin de pouvoir mettre à jour son dictionnaire, il suffit d’ajouter l’option “-u” et de lui spécifier des arguments.

a – Mise à jour du dictionnaire par le biais de tous les résultats
g – Mise à jour du dictionnaire uniquement par le biais des résultats du Google scraping
r – Mise à jour du dictionnaire uniquement par le biais des résultats des “reverses lookup”
z – Mise à jour du dictionnaire uniquement par le biais des résultats du transfert de zone

./dnsenum.pl -f dns.txt –subfile results.txt -s 200 -w -u a domain.xxx