Effectuer un scan de sous-domaines DNS de base avec Gobuster

Beginner
Pratiquer maintenant

Introduction

Dans le domaine de la cybersécurité et des tests d'intrusion, la découverte de sous-domaines est une étape cruciale de la reconnaissance. Les sous-domaines hébergent souvent différentes applications, services ou environnements de développement qui peuvent exposer des surfaces d'attaque ou des vulnérabilités supplémentaires qui ne sont pas présentes sur le domaine principal. Gobuster est un outil populaire utilisé pour le brute-force des URI (répertoires et fichiers), des sous-domaines DNS, des buckets Amazon S3 et des noms d'hôtes virtuels.

Ce laboratoire vous guidera à travers le processus d'exécution d'un scan de sous-domaines DNS de base à l'aide de Gobuster. Vous apprendrez à sélectionner une cible, à choisir une liste de mots efficace, à construire la commande Gobuster avec les indicateurs nécessaires, à exécuter le scan et à interpréter les résultats pour identifier les sous-domaines actifs. À la fin de ce laboratoire, vous aurez une compréhension fondamentale de la manière d'utiliser Gobuster pour l'énumération de sous-domaines, une compétence essentielle pour tout professionnel ou passionné de sécurité.

Sélectionner un domaine cible

Dans cette étape, vous allez sélectionner un domaine cible pour votre scan de sous-domaines. À des fins éducatives, nous utiliserons scanme.nmap.org comme cible. Ce domaine est fourni par Nmap à des fins de test et il est sûr de le scanner.

Tout d'abord, assurez-vous que Gobuster est installé. S'il ne l'est pas, vous pouvez l'installer en utilisant apt.

sudo apt update
sudo apt install -y gobuster

Après l'installation, vous pouvez vérifier l'installation en consultant sa version :

gobuster -v

Vous devriez voir une sortie similaire à celle-ci, indiquant que Gobuster est installé :

gobuster v3.x

Maintenant, confirmons notre domaine cible. Nous utiliserons scanme.nmap.org.

echo "Our target domain is: scanme.nmap.org"

Cette commande imprime simplement le domaine cible dans votre terminal, confirmant votre sélection.

Choisir une liste de mots pour les sous-domaines

Dans cette étape, vous allez choisir une liste de mots appropriée pour votre scan de sous-domaines. Une liste de mots est un fichier contenant une liste de noms de sous-domaines courants (par exemple, www, mail, dev, admin). Gobuster tentera de résoudre chaque nom de la liste de mots combiné à votre domaine cible (par exemple, www.scanme.nmap.org, mail.scanme.nmap.org).

Pour ce laboratoire, nous utiliserons une liste de mots courante souvent trouvée dans les distributions de penetration testing, ou nous pouvons en télécharger une. Nous utiliserons la liste de mots dns.txt du projet SecLists, qui est une bonne liste à usage général pour l'énumération DNS.

Tout d'abord, assurons-nous d'avoir cloné le dépôt SecLists ou d'avoir une liste de mots similaire disponible. Sinon, nous pouvons télécharger une liste de mots spécifique.

wget -nc https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/dns.txt -P ~/project/

L'indicateur -nc garantit que wget ne téléchargera pas à nouveau le fichier s'il existe déjà, ce qui est utile si vous exécutez la commande plusieurs fois. L'indicateur -P ~/project/ spécifie le répertoire où enregistrer le fichier.

Après le téléchargement, vérifiez que le fichier de liste de mots existe dans votre répertoire ~/project/ :

ls -l ~/project/dns.txt

Vous devriez voir une sortie similaire à celle-ci, confirmant la présence du fichier :

-rw-r--r-- 1 labex labex XXXX Month Day HH:MM ~/project/dns.txt

Cela confirme que dns.txt est prêt à être utilisé comme notre liste de mots.

Construire la commande gobuster dns de base

Dans cette étape, vous allez construire la commande Gobuster de base pour effectuer un scan de sous-domaines DNS. Gobuster utilise différents modes pour différents types de brute-forcing. Pour l'énumération de sous-domaines DNS, nous utilisons le mode dns.

Les indicateurs essentiels pour un scan DNS sont :

  • -d : Spécifie le domaine cible.
  • -w : Spécifie le chemin vers la liste de mots.

Ainsi, la structure de commande de base sera gobuster dns -d <domaine_cible> -w <chemin_liste_mots>.

Assemblons la commande en utilisant notre cible choisie scanme.nmap.org et la liste de mots ~/project/dns.txt.

echo "The Gobuster command will be: gobuster dns -d scanme.nmap.org -w ~/project/dns.txt"

Cette commande affichera la commande Gobuster complète que vous êtes sur le point d'exécuter. Comprendre la commande avant de l'exécuter est crucial pour une utilisation efficace de tout outil.

Exécuter le scan avec les indicateurs -d et -w

Dans cette étape, vous allez exécuter le scan de sous-domaines DNS de Gobuster en utilisant la commande construite à l'étape précédente. Cela lancera le processus de brute-forcing, où Gobuster tente de résoudre chaque entrée de la liste de mots comme sous-domaine du domaine cible.

Exécutez la commande suivante dans votre terminal :

gobuster dns -d scanme.nmap.org -w ~/project/dns.txt

Pendant que le scan s'exécute, Gobuster affichera les sous-domaines qu'il résout avec succès. La sortie montrera les sous-domaines résolus ainsi que leurs adresses IP.

Exemple de sortie :

===============================================================
Gobuster v3.x
===============================================================
[+] Url: scanme.nmap.org
[+] Threads: 10
[+] Wordlist: /home/labex/project/dns.txt
[+] Status codes: 200,204,301,302,307,401,403,405,500
[+] Timeout: 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in DNS mode
===============================================================
Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)
Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)
...

Le scan peut prendre un certain temps en fonction de la taille de la liste de mots et des conditions réseau. Laissez-le se terminer pour obtenir une liste complète des sous-domaines trouvés.

Analyser la liste des sous-domaines trouvés

Dans cette dernière étape, vous allez analyser la sortie du scan Gobuster. Les lignes Found: dans la sortie indiquent les sous-domaines résolus avec succès. Ce sont les sous-domaines qui existent et qui ont des enregistrements DNS correspondants.

Examinez la sortie de l'étape précédente. Recherchez les lignes commençant par Found: suivies d'un sous-domaine et de son adresse IP.

Par exemple, vous pourriez voir :

  • Found: www.scanme.nmap.org (XXX.XXX.XXX.XXX)
  • Found: test.scanme.nmap.org (XXX.XXX.XXX.XXX)
  • Found: mail.scanme.nmap.org (XXX.XXX.XXX.XXX)

Chacune de ces lignes représente un point d'entrée potentiel ou un actif intéressant lié au domaine cible. Dans un scénario réel, vous investigueriez ensuite ces sous-domaines plus en détail, peut-être en les visitant dans un navigateur web, en effectuant des scans de ports, ou en recherchant des vulnérabilités web.

Pour confirmer que vous avez analysé la sortie, vérifions un sous-domaine courant comme www.

echo "Look for 'www.scanme.nmap.org' in the Gobuster output."

Cette étape souligne l'importance de passer en revue les résultats de vos outils de reconnaissance. La sortie brute de Gobuster fournit des informations précieuses qui peuvent guider vos évaluations de sécurité ultérieures.

Résumé

Dans ce laboratoire, vous avez réussi à effectuer un scan de sous-domaines DNS de base à l'aide de Gobuster. Vous avez appris à :

  • Sélectionner un domaine cible (scanme.nmap.org).
  • Choisir et télécharger une liste de mots appropriée (dns.txt).
  • Construire la commande Gobuster en utilisant le mode dns et les indicateurs -d (domaine) et -w (liste de mots).
  • Exécuter le scan et observer la sortie en temps réel des sous-domaines découverts.
  • Analyser les résultats pour identifier les sous-domaines actifs et comprendre leur importance.

Cette compétence fondamentale est cruciale pour la reconnaissance en cybersécurité, vous permettant d'élargir votre compréhension de la surface d'attaque d'une cible. Vous pouvez améliorer davantage vos scans Gobuster en expérimentant avec différentes listes de mots, en augmentant le nombre de threads (-t), ou en spécifiant des serveurs DNS personnalisés (--resolver).