Subdomain Bruteforcing

Le bruteforce de sous-domaines est une technique puissante d'énumération active visant à découvrir des sous-domaines d'un domaine principal, en testant systématiquement des noms issus d'une wordlist. Cette méthode permet de mettre en évidence des hôtes actifs souvent oubliés ou non documentés, tels que des environnements de développement, de test ou encore des portails d'administration.

⚖️ Méthodologie en 4 étapes

  1. Sélection de la wordlist Le processus commence par le choix d'une wordlist adaptée :

    • Générique : contient des noms fréquents comme admin, dev, mail, blog, test.

    • Ciblée : spécifique à une industrie, technologie ou entreprise.

    • Personnalisée : créée manuellement à partir de mots-clés issus d'une collecte d'informations préalable.

  2. Génération des noms de sous-domaines Chaque mot de la wordlist est préfixé au domaine principal :

    • dev.inlanefreight.com

    • staging.inlanefreight.com

  3. Résolution DNS Chaque sous-domaine généré est soumis à une requête DNS pour vérifier s'il pointe vers une adresse IP (via un enregistrement A ou AAAA).

  4. Filtrage et validation Les sous-domaines résolus sont stockés. Ils peuvent être testés via un navigateur, un scan de ports, ou être analysés pour déterminer les services accessibles.

🛠️ Outils couramment utilisés

Outil
Description

dnsenum

Outil Perl complet : brute-force, transfert de zone, WHOIS.

fierce

Interface intuitive, bonne détection des wildcards.

dnsrecon

Outil Python multifonction. Export JSON/CSV possible.

amass

Excellent pour les campagnes à grande échelle. Supporte les sources OSINT.

assetfinder

Simple, rapide, idéal pour reconnaissance passive.

puredns

Très rapide, utile pour nettoyer les faux positifs.

⚙️ Exemple avec dnsenum

dnsenum est un outil très complet écrit en Perl. Il permet, entre autres :

  • Récupération des enregistrements DNS (A, MX, NS, TXT...)

  • Tentatives de transfert de zone

  • Brute-force de sous-domaines via wordlist

  • Scraping Google pour des sous-domaines

  • Reverse DNS

  • Requêtes WHOIS

⚡️ Commande de démonstration

0xH4shDumb@htb[/htb]$ dnsenum --enum inlanefreight.com -f /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt -r
  • --enum : active plusieurs fonctions automatiquement

  • -f : spécifie la wordlist

  • -r : active la récursivité (si dev.example.com est trouvé, il tente sub.dev.example.com, etc.)

📂 Exemple de sortie

[...] Brute forcing with subdomains-top1million-20000.txt:

www.inlanefreight.com.       A   134.209.24.248
support.inlanefreight.com.   A   134.209.24.248
mail.inlanefreight.com.      A   134.209.24.248

⚠️ Bonnes pratiques et limites

  • ✅ Combinez approches actives et passives pour une couverture maximale.

  • ⚠️ Ne testez pas un domaine sans autorisation préalable.

  • 🌐 Filtrez les wildcards DNS (certains domaines répondent à tout sous-domaine).

  • 🎓 Surveillez les comportements réseaux pour éviter les détections.


Le bruteforce de sous-domaines est un levier essentiel pour révéler des points d'entrée insoupçonnés, des environnements de test non sécurisés ou des services internes mal protégés. Dans le cadre d'un test d'intrusion, il s'agit souvent d'une première étape vers la compromission de l'infrastructure cible.


Using the known subdomains for inlanefreight.com (www, ns1, ns2, ns3, blog, support, customer), find any missing subdomains by brute-forcing possible domain names. Provide your answer with the complete subdomain, e.g., www.inlanefreight.com.

Nous utilisons dnsenum afin d'effectuer l'énumération des sous-domaines :

$ dnsenum --enum inlanefreight.com -f  /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt 
dnsenum VERSION:1.2.6

-----   inlanefreight.com   -----

Host's addresses:
__________________
inlanefreight.com.                       300      IN    A        134.209.24.248
[...]

Brute forcing with /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt:
_______________________________________________________________________________________

www.inlanefreight.com.                   252      IN    A        134.209.24.248
ns2.inlanefreight.com.                   300      IN    A        206.189.119.186
ns1.inlanefreight.com.                   300      IN    A        178.128.39.165
ns3.inlanefreight.com.                   300      IN    A        134.209.24.248
support.inlanefreight.com.               300      IN    A        134.209.24.248
my.inlanefreight.com.                    300      IN    A        134.209.24.248
customer.inlanefreight.com.              300      IN    A        134.209.24.248

Nous observons ainsi le sous domaine manquant : my.inlanefreight.com.


Mis à jour