Introduction
Dans ce laboratoire, vous apprendrez à utiliser efficacement Gobuster pour l'énumération de sous-domaines DNS, en vous concentrant particulièrement sur la gestion des enregistrements DNS wildcard. Les enregistrements DNS wildcard peuvent souvent entraîner un grand nombre de faux positifs lors des scans de sous-domaines, rendant difficile l'identification des sous-domaines légitimes. Gobuster fournit un drapeau --wildcard qui aide à filtrer ces réponses, garantissant des résultats plus propres et plus précis. Vous identifierez un domaine avec un enregistrement wildcard, observerez l'impact d'un scan standard, puis utiliserez le drapeau --wildcard pour constater la différence.
Identification d'un domaine avec un enregistrement DNS Wildcard
Dans cette étape, vous allez identifier un domaine qui utilise un enregistrement DNS wildcard. Un enregistrement DNS wildcard (*.example.com) signifie que tout sous-domaine qui n'a pas d'enregistrement DNS spécifique sera résolu vers une adresse IP prédéfinie. Cela peut causer des problèmes lors de l'énumération de sous-domaines, car de nombreux sous-domaines inexistants sembleront être résolus, entraînant des faux positifs.
Nous utiliserons dig pour interroger un sous-domaine inexistant pour notre domaine cible wildcard.labex.io afin de confirmer son comportement wildcard.
Tout d'abord, vérifions le contenu de notre fichier de domaine cible :
cat ~/project/target_domain.txt
Vous devriez voir wildcard.labex.io comme sortie.
Maintenant, interrogeons un sous-domaine inexistant, par exemple, nonexistent.wildcard.labex.io, en utilisant dig. S'il se résout vers une adresse IP, cela indique qu'un enregistrement wildcard est en place.
dig nonexistent.wildcard.labex.io
Observez la section ANSWER SECTION dans la sortie. Si vous voyez une adresse IP pour nonexistent.wildcard.labex.io, cela confirme la présence d'un enregistrement DNS wildcard.
; <<>> DiG 9.18.1-1ubuntu1.7-Ubuntu <<>> nonexistent.wildcard.labex.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;nonexistent.wildcard.labex.io. IN A
;; ANSWER SECTION:
nonexistent.wildcard.labex.io. 300 IN A 192.0.2.123 ## Example IP, will vary
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Jan 01 12:00:00 UTC 2023
;; MSG SIZE rcvd: 78
La présence d'une ANSWER SECTION pour un sous-domaine clairement inexistant confirme que wildcard.labex.io possède un enregistrement DNS wildcard.
Lancement d'un scan DNS standard et observation des faux positifs
Dans cette étape, vous allez effectuer un scan d'énumération de sous-domaines DNS standard sur wildcard.labex.io en utilisant Gobuster sans aucun filtrage wildcard. Cela démontrera comment les enregistrements DNS wildcard peuvent entraîner de nombreux faux positifs, rendant difficile la distinction entre les sous-domaines légitimes et ceux résolus par le wildcard.
Nous utiliserons la commande gobuster dns avec le drapeau -d pour le domaine et le drapeau -w pour notre liste de mots.
gobuster dns -d wildcard.labex.io -w ~/project/wordlist.txt
Observez la sortie. Vous verrez probablement que presque toutes les entrées de votre liste de mots se résolvent en une adresse IP, même s'il ne s'agit pas d'un "vrai" sous-domaine. C'est parce que l'enregistrement DNS wildcard intercepte toutes ces requêtes et les résout.
Gobuster v3.6
by OJ <oj@zerokopter.com>
[+] Url: wildcard.labex.io
[+] Threads: 10
[+] Wordlist: /home/labex/project/wordlist.txt
[+] Timeout: 10s
[+] User Agent: gobuster/3.6
2023/01/01 12:00:00 Starting gobuster
Found: test.wildcard.labex.io (192.0.2.123)
Found: dev.wildcard.labex.io (192.0.2.123)
Found: www.wildcard.labex.io (192.0.2.123)
Found: mail.wildcard.labex.io (192.0.2.123)
Found: blog.wildcard.labex.io (192.0.2.123)
Found: admin.wildcard.labex.io (192.0.2.123)
Found: api.wildcard.labex.io (192.0.2.123)
Found: cdn.wildcard.labex.io (192.0.2.123)
Found: ftp.wildcard.labex.io (192.0.2.123)
Found: vpn.wildcard.labex.io (192.0.2.123)
2023/01/01 12:00:05 Finished
Comme vous pouvez le constater, toutes les entrées de la liste de mots ont été "trouvées", ce qui est trompeur en raison de l'enregistrement DNS wildcard. Cela met en évidence le problème des faux positifs dans l'énumération de sous-domaines.
Relancer le scan avec le drapeau --wildcard
Dans cette étape, vous allez relancer le scan Gobuster DNS, mais cette fois-ci, vous inclurez le drapeau --wildcard. Ce drapeau indique à Gobuster d'effectuer une vérification initiale des enregistrements DNS wildcard, puis de filtrer tous les résultats ultérieurs qui se résolvent à la même adresse IP que le wildcard. Cela réduit considérablement les faux positifs et fournit une sortie beaucoup plus propre.
Exécutez à nouveau la commande Gobuster, en ajoutant le drapeau --wildcard :
gobuster dns -d wildcard.labex.io -w ~/project/wordlist.txt --wildcard
Portez une attention particulière à la sortie. Vous devriez remarquer que Gobuster identifie d'abord l'IP du wildcard, puis procède au filtrage des résultats qui correspondent à celle-ci.
Gobuster v3.6
by OJ <oj@zerokopter.com>
[+] Url: wildcard.labex.io
[+] Threads: 10
[+] Wordlist: /home/labex/project/wordlist.txt
[+] Timeout: 10s
[+] User Agent: gobuster/3.6
[+] Wildcard DNS detected. Filtering responses for 192.0.2.123 ## Example IP
2023/01/01 12:00:00 Starting gobuster
2023/01/01 12:00:05 Finished
Remarquez la ligne [+] Wildcard DNS detected. Filtering responses for 192.0.2.123. Cela indique que Gobuster a identifié avec succès l'IP du wildcard et filtre activement les résultats qui s'y résolvent. Dans cet exemple spécifique, puisque tous les sous-domaines se résolvent à l'IP du wildcard, vous pourriez ne voir aucune entrée "Found", ce qui est le comportement correct pour un domaine avec une configuration wildcard complète et aucun sous-domaine légitime dans votre liste de mots.
Observation du filtrage des réponses wildcard par Gobuster
Dans cette étape, nous allons approfondir le fonctionnement du drapeau --wildcard de Gobuster en observant son comportement avec un scénario légèrement modifié. Alors que notre exemple précédent montrait un filtrage complet, il est important de comprendre le mécanisme. Gobuster interroge d'abord un sous-domaine aléatoire et inexistant (par exemple, randomstring.yourdomain.com). Si cette requête se résout en une adresse IP, Gobuster considère cette adresse IP comme étant l'IP du wildcard. Tout sous-domaine ultérieur trouvé lors de l'énumération qui se résout à cette même IP de wildcard sera filtré. Seuls les sous-domaines se résolvant à une adresse IP différente seront rapportés.
Pour illustrer cela, imaginons que notre domaine wildcard.labex.io ait également un sous-domaine légitime www.wildcard.labex.io pointant vers une adresse IP différente. Si tel était le cas, Gobuster filtrerait toujours toutes les autres entrées wildcard mais rapporterait www.wildcard.labex.io.
Pour les besoins de ce laboratoire, puisque wildcard.labex.io est configuré pour que tous les sous-domaines se résolvent à la même IP wildcard, la sortie de l'étape précédente (où aucun sous-domaine n'a été "trouvé") est le comportement attendu et correct, démontrant un filtrage efficace.
Relançons la commande et concentrons-nous sur la ligne de sortie initiale qui confirme la détection du wildcard :
gobuster dns -d wildcard.labex.io -w ~/project/wordlist.txt --wildcard
La ligne clé à observer est : [+] Wildcard DNS detected. Filtering responses for <IP_ADDRESS>. Cela confirme que Gobuster a identifié l'IP du wildcard et l'utilise activement pour filtrer les résultats.
Gobuster v3.6
by OJ <oj@zerokopter.com>
[+] Url: wildcard.labex.io
[+] Threads: 10
[+] Wordlist: /home/labex/project/wordlist.txt
[+] Timeout: 10s
[+] User Agent: gobuster/3.6
[+] Wildcard DNS detected. Filtering responses for 192.0.2.123 ## Example IP
2023/01/01 12:00:00 Starting gobuster
2023/01/01 12:00:05 Finished
Cette étape renforce la compréhension que le drapeau --wildcard de Gobuster est crucial pour obtenir des résultats d'énumération de sous-domaines précis sur les domaines avec des enregistrements DNS wildcard.
Analyse des résultats plus propres et plus précis
Dans cette dernière étape, vous allez analyser la différence entre les résultats obtenus lors du scan Gobuster standard et le scan effectué avec le drapeau --wildcard. L'objectif est d'apprécier comment le drapeau --wildcard fournit des résultats plus propres et plus précis en éliminant les faux positifs.
Rappelez-vous la sortie de l'étape 2 (sans --wildcard) :
Chaque entrée de la liste de mots a été signalée comme "Found", même si elles se résolvaient simplement en raison de l'enregistrement DNS wildcard. Cette sortie est bruyante et rend impossible l'identification des sous-domaines réellement existants.
Rappelez-vous la sortie des étapes 3 et 4 (avec --wildcard) :
Gobuster a explicitement indiqué [+] Wildcard DNS detected. Filtering responses for <IP_ADDRESS>. Dans notre cas spécifique, puisque tous les sous-domaines se résolvent à l'IP du wildcard, aucune entrée "Found" n'a été rapportée. C'est le résultat correct et précis, indiquant qu'aucun des sous-domaines de notre liste de mots n'est légitime et ne se résout à une adresse IP unique.
S'il y avait eu des sous-domaines légitimes (par exemple, www.wildcard.labex.io se résolvant à une IP différente de celle du wildcard), ils auraient été listés dans la sortie lors de l'utilisation du drapeau --wildcard. Cela démontre la puissance du drapeau pour distinguer les sous-domaines réels des entrées wildcard.
Le drapeau --wildcard est essentiel pour une énumération de sous-domaines efficace et précise, en particulier lorsque l'on traite de grandes listes de mots et de domaines qui utilisent intensivement des enregistrements DNS wildcard. Il permet de gagner du temps en réduisant la nécessité de filtrer manuellement les faux positifs et garantit que vos efforts d'énumération se concentrent sur les sous-domaines réellement pertinents.
Vous avez appris avec succès comment identifier les enregistrements DNS wildcard et utiliser le drapeau --wildcard de Gobuster pour obtenir des résultats précis d'énumération de sous-domaines.
Résumé
Dans ce laboratoire, vous avez acquis une expérience pratique dans la gestion des enregistrements DNS wildcard lors de l'énumération de sous-domaines à l'aide de Gobuster. Vous avez appris à identifier les domaines avec des enregistrements wildcard, observé comment les scans standards produisent des faux positifs, et surtout, maîtrisé l'utilisation du drapeau --wildcard pour filtrer ces résultats trompeurs. Cette compétence est cruciale pour toute personne effectuant de la reconnaissance ou des tests d'intrusion, car elle garantit l'exactitude et l'efficacité de votre processus de découverte de sous-domaines. En appliquant le drapeau --wildcard, vous pouvez vous concentrer sur les sous-domaines légitimes, économisant ainsi un temps et des ressources précieux.
