DNS (Domain Name System)
🧠 Qu'est-ce que le DNS ?
Le Domain Name System (DNS) est un système distribué dont le rôle est de traduire les noms de domaines en adresses IP. Il permet ainsi à un utilisateur de taper www.hackthebox.com dans son navigateur au lieu d’une adresse IP comme 10.129.14.5. DNS est souvent comparé à un annuaire téléphonique de l’internet.
Il n’existe pas de base de données centrale. À la place, des milliers de serveurs DNS interconnectés maintiennent collectivement l’ensemble des informations de résolution.
🏗️ Types de serveurs DNS
🏛️ DNS Root Server
Serveurs racine pour les TLDs (.com, .org, etc.). Il en existe 13 dans le monde, coordonnés par l’ICANN.
📘 Authoritative Name Server
Répond avec autorité pour un domaine spécifique.
📗 Non-Authoritative Server
Sert des réponses en cache ou obtenues via d'autres serveurs.
🗂️ Caching Server
Conserve temporairement les réponses DNS pour améliorer la vitesse.
🚀 Forwarding Server
Transmet les requêtes à un autre serveur DNS.
💻 Resolver
Souvent local (machine ou box), effectue la résolution initiale.
🔐 Sécurité & Confidentialité
Traditionnellement, DNS est non chiffré, ce qui permet à des acteurs malveillants ou à des FAI d’intercepter les requêtes. Des protocoles comme DNS over TLS (DoT), DNS over HTTPS (DoH) ou encore DNSCrypt permettent désormais de chiffrer les échanges.
📄 Types d’enregistrements DNS
Voici les enregistrements les plus courants et leur rôle :
A
Associe un domaine à une adresse IPv4.
AAAA
Associe un domaine à une adresse IPv6.
MX
Indique les serveurs de messagerie.
NS
Spécifie les nameservers du domaine.
TXT
Contient des données diverses : vérification Google, SPF, DMARC…
CNAME
Alias vers un autre domaine (Canonical Name).
PTR
Résolution inverse d’une IP vers un nom.
SOA
Donne des infos sur la zone DNS (admin, serial, etc.).
🧩 Hiérarchie DNS
Exemple hiérarchique pour WS01.dev.inlanefreight.com :
⚙️ Configuration DNS (BIND9)
BIND9 est une des implémentations les plus utilisées sous Linux. Elle repose sur trois fichiers principaux :
named.conf(configuration générale)Zone files (résolution directe)
Reverse files (résolution inverse)
🗃️ Exemple : named.conf.local
📁 Exemple : fichier de zone directe
🔁 Exemple : fichier de zone inverse
⚠️ Paramètres sensibles & erreurs courantes
allow-query { any; };
Le serveur peut répondre à tout le monde, même sur Internet.
allow-transfer { any; };
Permet des transferts de zone non autorisés (AXFR).
allow-recursion { any; };
Peut être utilisé pour des attaques de type DNS Amplification.
zone-statistics yes;
Peut révéler des métadonnées sensibles.
🧭 Techniques d’énumération DNS
Voici quelques exemples d’énumération possibles :
🔍 Obtenir les nameservers :
dig ns domain.com @<IP>🔁 Transfert de zone (AXFR) :
dig axfr domain.com @<IP>🕵️ Brute force des sous-domaines : boucle Bash ou
dnsenum📦 Voir tous les enregistrements publics :
dig any domain.com @<IP>💬 Voir la version du serveur DNS :
dig CH TXT version.bind @<IP>
📚 Ressources utiles
Interact with the target DNS using its IP address and enumerate the FQDN of it for the "inlanefreight.htb" domain.
Nous interagissons comme demandé :
Nous obtenons ainsi le FQDN souhaité : ns.inlanefreight.htb.
Identify if its possible to perform a zone transfer and submit the TXT record as the answer. (Format: HTB{...})
Nous dressons dans un premier temps les zones de transfers de inlanefreight.htb :
Certains sous-domaines nous sont alors remontés :
app.inlanefreight.htb
dev.inlanefreight.htb
internal.inlanefreight.htb
mail1.inlanefreight.htb
ns.inlanefreight.htb
Nous utilisons alors dig pour checker les zones de transfert sur chacun des sous-domaines jusqu'a tomber sur ce résultat :
Nous pouvons relevé la ligne suivante :
Cette ligne nous permet d'obtenir le flag :
What is the IPv4 address of the hostname DC1?
Grâce à la commande effectuée précédemment, nous savons que l'IP associée au DC1 est 10.129.34.16.
What is the FQDN of the host where the last octet ends with "x.x.x.203"?
Afin de résoudre cette question, j'effectue donc dans un premier temps une recherche des sous-domaines liés à inlanefreight.htb :
Nous observons alors la présence du sous-domaine dev.inlanefreight.htb.
Maintenant, nous effectuons une recherche des sous-domaines liés à ce dernier, ceci à l'aide de la liste :
Cette énumération nous permet alors de relever ceci :
Le FQDN lié à l'IP terminant par 203 est donc win2k.dev.inlanefreight.htb.
Last updated