Énumérer les enregistrements DNS avec Nmap

NmapNmapBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre à énumérer les enregistrements DNS à l'aide du script dns-brute de Nmap. Le but est de découvrir les noms d'hôtes valides et les sous-domaines associés à une adresse IP cible, révélant des informations précieuses sur l'infrastructure du réseau cible.

Vous allez exécuter le script dns-brute contre une adresse IP cible, scanner le port DNS, ajouter la verbeosité pour obtenir une sortie détaillée, enregistrer les résultats dans un fichier, examiner les enregistrements DNS dans le terminal Xfce et comparer les résultats avec un scan UDP. Cette expérience pratique vous procurera des compétences pratiques en énumération DNS à l'aide de Nmap.

Exécutez l'énumération DNS avec nmap --script dns-brute 192.168.1.1

Dans cette étape, nous allons utiliser le script dns-brute de Nmap pour effectuer une énumération DNS contre une adresse IP cible. L'énumération DNS est le processus de découverte des noms d'hôtes valides et des sous-domaines pour un domaine donné en interrogeant les serveurs DNS. Cela peut révéler des informations précieuses sur l'infrastructure du réseau cible.

Le script dns-brute fonctionne en tentant de résoudre une longue liste de noms de sous-domaine communs contre le serveur DNS de la cible. Si un sous-domaine existe, le serveur DNS renverra une adresse IP, indiquant que le sous-domaine est valide.

Commençons par comprendre la commande que nous allons utiliser :

  • nmap : C'est l'outil de cartographie de réseau que nous utilisons.
  • --script dns-brute : Cela indique à Nmap d'utiliser le script dns-brute.
  • 192.168.1.1 : Cette est l'adresse IP cible. Remplacez-la par l'adresse IP réelle que vous souhaitez scanner.

Maintenant, exécutons la commande. Ouvrez votre terminal Xfce et tapez la commande suivante :

nmap --script dns-brute 192.168.1.1

Remarque : Remplacez 192.168.1.1 par l'adresse IP réelle de la cible que vous souhaitez scanner. Si vous n'avez pas de cible spécifique, vous pouvez utiliser une adresse IP locale comme 127.0.0.1 (localhost), mais vous risquez de ne pas obtenir de résultats intéressants.

La sortie montrera Nmap en train d'essayer de résoudre divers noms de sous-domaine. Si des sous-domaines sont trouvés, ils seront affichés avec leurs adresses IP correspondantes.

Sortie exemple (la sortie que vous voyez dépendra de la cible) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
NSE: Starting dns-brute scan
NSE: DNS Brute-force hostnames: 216.58.216.142
google.com	A	216.58.216.142
www.google.com	A	216.58.216.142
mail.google.com	A	216.58.216.142
NSE: Finished dns-brute scan
Nmap done: 1 IP address (1 host up) scanned in 5.00 seconds

Cette sortie montre que le script dns-brute a trouvé les sous-domaines google.com, www.google.com et mail.google.com associés à l'adresse IP 216.58.216.142.

Scannez le port DNS avec nmap --script dns-brute -p 53 127.0.0.1

Dans cette étape, nous allons nous concentrer sur le scan du port DNS (port 53) à l'aide de Nmap et du script dns-brute. En spécifiant le port, nous pouvons cibler nos efforts d'énumération DNS sur le port DNS standard, ce qui est souvent plus efficace.

Décortiquons la commande :

  • nmap : L'outil de balayage de réseau.
  • --script dns-brute : Spécifie le script dns-brute pour l'énumération DNS.
  • -p 53 : Cette option indique à Nmap de ne scanner que le port 53, qui est le port standard pour DNS.
  • 127.0.0.1 : Cette est l'adresse IP cible. Dans ce cas, nous utilisons 127.0.0.1, qui fait référence à la machine locale (localhost).

Maintenant, ouvrez votre terminal Xfce et exécutez la commande suivante :

nmap --script dns-brute -p 53 127.0.0.1

Cette commande exécutera le script dns-brute spécifiquement sur le port 53 de la machine locale. Étant donné que 127.0.0.1 ne héberge généralement pas un serveur DNS avec de nombreux enregistrements, les résultats peuvent être limités. Cependant, cela montre comment cibler un port spécifique pour l'énumération DNS.

Sortie exemple (la sortie que vous voyez peut varier) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).

PORT   STATE SERVICE
53/tcp open  domain
| dns-brute:
|_  records-from-AXFR: No zone transfer allowed.

Nmap done: 1 IP address (1 host up) scanned in 2.50 seconds

Dans cet exemple, Nmap indique que le port 53 est ouvert et exécute le service domain (DNS). Le script dns-brute tente un transfert de zone (AXFR) mais est refusé. Il s'agit d'une mesure de sécurité courante pour empêcher l'accès non autorisé aux enregistrements DNS.

Ajoutez la verbeosité avec nmap -v --script dns-brute 192.168.1.1

Dans cette étape, nous allons ajouter de la verbeosité à notre commande Nmap. La verbeosité augmente la quantité d'informations que Nmap affiche pendant le scan, ce qui peut être utile pour comprendre ce que Nmap est en train de faire et pour résoudre tout problème éventuel.

L'option -v dans Nmap active le mode verbeux. Utiliser -v une fois augmente le niveau de verbeosité. Vous pouvez utiliser -vv pour une sortie encore plus détaillée.

Regardons la commande que nous allons utiliser :

  • nmap : L'outil de balayage de réseau.
  • -v : Active le mode verbeux, fournissant une sortie plus détaillée.
  • --script dns-brute : Spécifie le script dns-brute pour l'énumération DNS.
  • 192.168.1.1 : L'adresse IP cible. N'oubliez pas de la remplacer par l'adresse IP réelle que vous souhaitez scanner.

Maintenant, ouvrez votre terminal Xfce et tapez la commande suivante :

nmap -v --script dns-brute 192.168.1.1

Remarque : Remplacez 192.168.1.1 par l'adresse IP réelle de la cible que vous souhaitez scanner.

La sortie sera plus détaillée que dans les étapes précédentes. Vous verrez des informations sur la progression du scan, les scripts en cours d'exécution et tout message d'erreur ou d'avertissement qui se produit.

Sortie exemple (la sortie que vous voyez dépendra de la cible et des conditions réseau) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Starting dns-brute scan
NSE: Loaded 1795 records from /usr/share/nmap/nselib/data/dns-brute.lst
massdns: warning: id 4255 (inbound): query timed out
massdns: warning: id 4256 (inbound): query timed out
massdns: warning: id 4257 (inbound): query timed out
massdns: warning: id 4258 (inbound): query timed out
massdns: warning: id 4259 (inbound): query timed out
NSE: DNS Brute-force hostnames: 192.168.1.1
Nmap scan report for 192.168.1.1
Host is up (0.0020s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh

NSE: Finished dns-brute scan
Nmap done: 1 IP address (1 host up) scanned in 10.00 seconds

La sortie verbeuse montre plus de détails sur le fonctionnement du script dns-brute, y compris le nombre d'enregistrements chargés et tout avertissement rencontré pendant le scan. Cela peut être utile pour diagnostiquer les problèmes ou comprendre le comportement du script.

Enregistrez les résultats DNS avec nmap --script dns-brute -oN dns.txt 127.0.0.1

Dans cette étape, nous allons apprendre à enregistrer les résultats de notre balayage Nmap dans un fichier. Cela est utile pour une analyse ultérieure ou à des fins de rapport. Nmap propose plusieurs options pour enregistrer la sortie dans différents formats. Ici, nous utiliserons le format de sortie normal (-oN).

Décortiquons la commande :

  • nmap : L'outil de balayage de réseau.
  • --script dns-brute : Spécifie le script dns-brute pour l'énumération DNS.
  • -oN dns.txt : Cette option indique à Nmap d'enregistrer la sortie au format normal dans un fichier nommé dns.txt. Le fichier sera enregistré dans votre répertoire actuel (~/projet).
  • 127.0.0.1 : L'adresse IP cible. Dans ce cas, nous utilisons 127.0.0.1, qui fait référence à la machine locale (localhost).

Maintenant, ouvrez votre terminal Xfce et exécutez la commande suivante :

nmap --script dns-brute -oN dns.txt 127.0.0.1

Une fois le balayage terminé, un fichier nommé dns.txt sera créé dans votre répertoire ~/projet. Ce fichier contiendra la sortie Nmap au format lisible par un humain.

Pour vérifier que le fichier a été créé et contient les résultats du balayage, vous pouvez utiliser la commande cat pour afficher le contenu du fichier :

cat dns.txt

Sortie exemple (la sortie que vous voyez peut varier) :

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).
PORT   STATE SERVICE
53/tcp open  domain
| dns-brute:
|_  records-from-AXFR: No zone transfer allowed.

## Nmap done at Fri Oct 27 10:15:02 2023 -- 1 IP address (1 host up) scanned in 2.50 seconds

Cette sortie montre le contenu du fichier dns.txt, qui inclut le rapport de balayage Nmap pour localhost.

Vérifiez les enregistrements DNS dans le terminal Xfce

Dans cette étape, nous allons vérifier les enregistrements DNS identifiés dans les étapes précédentes. Nous utiliserons la commande cat pour afficher le contenu du fichier dns.txt que nous avons créé précédemment. Cela nous permettra d'examiner la sortie du script dns-brute et de comprendre quelles informations ont été découvertes.

Ouvrez votre terminal Xfce et tapez la commande suivante :

cat dns.txt

Cette commande affichera le contenu du fichier dns.txt dans votre terminal.

La sortie ressemblera à ceci (la sortie exacte dépendra de la cible et des résultats de l'énumération DNS) :

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).
PORT   STATE SERVICE
53/tcp open  domain
| dns-brute:
|_  records-from-AXFR: No zone transfer allowed.

## Nmap done at Fri Oct 27 10:20:02 2023 -- 1 IP address (1 host up) scanned in 2.50 seconds

Analysons la sortie :

  • Nmap scan report for localhost (127.0.0.1) : Cela indique que le balayage a été effectué sur la machine locale.
  • PORT STATE SERVICE : Cette section montre les ports ouverts sur la cible.
  • 53/tcp open domain : Cela indique que le port 53 (le port DNS standard) est ouvert et exécute le service de domaine.
  • dns-brute : Cette section montre les résultats du script dns-brute.
  • records-from-AXFR: No zone transfer allowed. : Cela indique que la cible ne permet pas les transferts de zone, ce qui est une mesure de sécurité pour empêcher l'accès non autorisé aux informations DNS.

Dans cet exemple, le script dns-brute n'a pas trouvé d'enregistrements DNS spécifiques car les transferts de zone ne sont pas autorisés. Cependant, si la cible avait autorisé les transferts de zone ou si le script dns-brute avait trouvé d'autres enregistrements DNS, ils seraient listés dans cette section.

En examinant la sortie du script dns-brute, vous pouvez obtenir des informations précieuses sur la configuration DNS de la cible et identifier des vulnérabilités potentielles.

Comparez avec un balayage UDP dans le terminal Xfce

Dans cette étape, nous allons effectuer un balayage UDP sur le port DNS (53) et comparer les résultats avec le balayage TCP que nous avons effectué précédemment. Comprendre les différences entre les balayages TCP et UDP est crucial pour une reconnaissance réseau complète.

Le DNS utilise généralement les deux protocoles TCP et UDP. UDP est généralement utilisé pour les requêtes DNS standard, tandis que TCP est utilisé pour les transferts de zone ou lorsque la taille de la réponse dépasse la limite UDP.

Pour effectuer un balayage UDP sur le port 53, utilisez la commande Nmap suivante dans votre terminal Xfce :

nmap -sU -p 53 127.0.0.1

Décortiquons la commande :

  • nmap : L'outil de balayage de réseau.
  • -sU : Spécifie un balayage UDP.
  • -p 53 : Spécifie le port 53 (DNS).
  • 127.0.0.1 : L'adresse IP cible (localhost).

Exécutez la commande et observez la sortie. Elle peut ressembler à ceci :

Starting Nmap 7.80 ( https://nmap.org ) at Fri Oct 27 10:25:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).

PORT   STATE         SERVICE
53/udp open|filtered domain

Nmap done: 1 IP address (1 host up) scanned in 3.50 seconds

Maintenant, comparons cette sortie avec le balayage TCP que nous avons effectué précédemment (en utilisant --script dns-brute -p 53 127.0.0.1). Vous pouvez soit vous référer à la sortie que vous avez vue dans l'étape 2 soit relancer le balayage TCP :

nmap -sT -p 53 127.0.0.1

(Remarque : -sT spécifie un balayage de connexion TCP, qui est le paramètre par défaut si aucun type de balayage n'est spécifié.)

La sortie du balayage TCP peut ressembler à ceci :

Starting Nmap 7.80 ( https://nmap.org ) at Fri Oct 27 10:26:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).

PORT   STATE SERVICE
53/tcp open  domain

Nmap done: 1 IP address (1 host up) scanned in 0.50 seconds

Différences clés à observer :

  • ÉTAT : Le balayage UDP peut montrer open|filtered tandis que le balayage TCP montre open. open|filtered signifie que Nmap ne peut pas déterminer avec certitude si le port est ouvert ou filtré en raison de la nature du UDP. UDP est sans connexion, donc Nmap ne reçoit pas de "connexion refusée" définitive comme avec TCP.
  • Fiabilité : Les balayages TCP sont généralement plus fiables pour déterminer si un port est ouvert en raison de la procédure de troïka d'établissement de connexion. Les balayages UDP peuvent être moins fiables en raison de la perte de paquets et du manque de protocole orienté connexion.

En résumé, comparer les balayages TCP et UDP fournit une image plus complète des services réseau de la cible. Bien que le TCP soit souvent préféré pour sa fiabilité, les balayages UDP peuvent révéler des services qui ne seraient peut-être pas apparents avec le TCP seul.

Sommaire

Dans ce laboratoire, nous avons exploré l'énumération DNS à l'aide du script dns-brute de Nmap. Nous avons appris à découvrir des noms d'hôtes valides et des sous-domaines pour un domaine donné en interrogeant les serveurs DNS. Le laboratoire a démontré comment exécuter la commande nmap --script dns-brute <target_ip> pour identifier les sous-domaines associés à une adresse IP cible.

De plus, le laboratoire a mis en évidence l'importance de spécifier correctement l'adresse IP cible et d'interpréter la sortie pour identifier les sous-domaines découverts et leurs adresses IP correspondantes. Nous avons également abordé l'utilisation de la verbeosité et de la sauvegarde de la sortie dans un fichier pour une revue ultérieure.