---
title: "Enumération DNS"
domain: security
subdomain: pentest
phase: 03-enumeration
type: snippet
tags: [dns, enumeration, pentest, zone-transfer, subdomain]
difficulty: beginner
status: stable
updated: "Sun May 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)"
---
## Objectifs

Identifier les enregistrements DNS, tenter un transfert de zone, et énumérer les sous-domaines actifs.

## Records essentiels

```bash vars=TARGET_DOMAIN,OUTPUT_DIR
# Records de base
dig {{TARGET_DOMAIN}} A
dig {{TARGET_DOMAIN}} AAAA
dig {{TARGET_DOMAIN}} MX
dig {{TARGET_DOMAIN}} NS
dig {{TARGET_DOMAIN}} TXT
dig {{TARGET_DOMAIN}} SOA
dig {{TARGET_DOMAIN}} ANY

# Reverse lookup
dig -x IP_ADDRESS

# Serveurs de noms autoritaires
host -t NS {{TARGET_DOMAIN}}
```

## Zone Transfer (AXFR)

```bash vars=TARGET_DOMAIN,OUTPUT_DIR
# Identifier les serveurs DNS
dig NS {{TARGET_DOMAIN}} +short

# Tenter le zone transfer sur chaque NS
dig AXFR {{TARGET_DOMAIN}} @ns1.{{TARGET_DOMAIN}} | tee {{OUTPUT_DIR}}/axfr.txt
dig AXFR {{TARGET_DOMAIN}} @ns2.{{TARGET_DOMAIN}} | tee -a {{OUTPUT_DIR}}/axfr.txt

# Avec host
host -l {{TARGET_DOMAIN}} ns1.{{TARGET_DOMAIN}}
```

## Brute-force sous-domaines

```bash vars=TARGET_DOMAIN,OUTPUT_DIR
# DNSenum (actif + brute-force)
dnsenum --dnsserver 8.8.8.8 --enum -p 0 -s 0 -o {{OUTPUT_DIR}}/dnsenum.xml \
  -f /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
  {{TARGET_DOMAIN}}

# Dnsrecon
dnsrecon -d {{TARGET_DOMAIN}} -t std,brt,axfr \
  -D /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
  -j {{OUTPUT_DIR}}/dnsrecon.json

# Fierce
fierce --domain {{TARGET_DOMAIN}} --subdomains-only \
  --wordlist /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
  | tee {{OUTPUT_DIR}}/fierce.txt

# Subfinder (passif + actif)
subfinder -d {{TARGET_DOMAIN}} -o {{OUTPUT_DIR}}/subfinder.txt -all
```

<Checklist
  title="Checklist DNS"
  storageKey="pentest-dns-enum"
  items={[
    { id: "records", label: "Records A, MX, NS, TXT, SOA collectés" },
    { id: "axfr", label: "Zone transfer tenté sur tous les NS", critical: true },
    { id: "brute", label: "Brute-force sous-domaines effectué" },
    { id: "reverse", label: "Reverse lookup sur les IPs identifiées" },
    { id: "wildcard", label: "Wildcard DNS vérifié (faux positifs)" },
    { id: "dnssec", label: "DNSSEC activé ou non noté" },
  ]}
/>

## Pièges fréquents

- **Wildcard DNS** : `*.domain.com` → tout résout, attention aux faux positifs en brute-force
- **Rate limiting DNS** : ralentir le brute-force si les résultats semblent tronqués
- **Zone transfer** : souvent désactivé mais toujours tester — grosse victoire si disponible
- **DNS interne** : utiliser le DNS du DC comme resolver si on est sur le réseau interne
