dnsx

Boîte à outils DNS rapide de ProjectDiscovery. Résout des listes de domaines, interroge plusieurs types d'enregistrements, effectue du brute-force de sous-domaines et valide les réponses DNS à grande échelle. Fast DNS toolkit from ProjectDiscovery. Resolves domain lists, runs multiple record types, brute-forces subdomains, and validates DNS responses at scale.

↗ https://github.com/projectdiscovery/dnsx

Overview

dnsx is a fast, multi-purpose DNS resolver from ProjectDiscovery. It resolves large domain lists, queries multiple record types (A, AAAA, CNAME, MX, TXT, NS), performs wildcard filtering, and integrates cleanly into the subfinder → dnsx → httpx pipeline.

Basic Resolution

Resolve a list of domains

cat subdomains.txt | dnsx

Resolve a single domain

echo "target.com" | dnsx
cat domains.txt | dnsx -a       # A records
cat domains.txt | dnsx -aaaa    # AAAA records
cat domains.txt | dnsx -cname   # CNAME records
cat domains.txt | dnsx -mx      # MX records
cat domains.txt | dnsx -txt     # TXT records
cat domains.txt | dnsx -ns      # NS records
cat domains.txt | dnsx -soa     # SOA records
cat domains.txt | dnsx -any     # All record types

Pipeline Integration

Subfinder → resolve → probe with httpx

subfinder -d target.com -silent | dnsx -silent | httpx -silent

Resolve and show IPs

subfinder -d target.com | dnsx -a -resp

Filter only domains that resolve

cat large_list.txt | dnsx -silent -o resolved.txt

Check which subdomains have MX records (email targets)

cat subdomains.txt | dnsx -mx -resp

Brute-Force Mode

Subdomain brute-force with built-in wordlist

dnsx -d target.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

Brute-force with domain list

dnsx -d domains.txt -w wordlist.txt

Brute-force and filter wildcards

dnsx -d target.com -w wordlist.txt -wd target.com

Wildcard Detection & Filtering

Detect wildcard domains (important for accurate brute-force)

dnsx -d target.com -wd target.com -w wordlist.txt
# Wildcard filtering is automatic when using -wd

Output Options

JSON output

cat domains.txt | dnsx -json -o results.json

Show only resolved IPs

cat domains.txt | dnsx -a -resp-only

Show domain + IP

cat domains.txt | dnsx -a -resp

Verbose

cat domains.txt | dnsx -v

Silent (clean output for piping)

cat domains.txt | dnsx -silent

Custom Resolvers

Use specific DNS resolvers

cat domains.txt | dnsx -r 8.8.8.8,1.1.1.1

Use resolver list from file

cat domains.txt | dnsx -r resolvers.txt

Rate limiting

cat domains.txt | dnsx -rl 100   # 100 queries per second

Tips

  • dnsx -silent in pipelines keeps output clean — only resolved domains
  • -resp shows the actual DNS response value (IP, CNAME, etc.) alongside the domain
  • Wildcard filtering (-wd) is essential for accurate brute-force results
  • dnsx is much faster than sequential dig or host commands for large domain lists
Help / Man page
dnsx [flags]

Input:
  -l FILE         File of domains to resolve
  -d DOMAIN       Target domain(s)
  -w WORDLIST     Wordlist for brute-force

DNS Record Types:
  -a              A records
  -aaaa           AAAA records
  -cname          CNAME records
  -ns             NS records
  -txt            TXT records
  -mx             MX records
  -soa            SOA records
  -any            All record types

Output:
  -resp           Show DNS response value
  -resp-only      Show only response values
  -json           JSON output
  -o FILE         Output file
  -silent         Silent mode
  -v              Verbose

Performance:
  -t N            Threads (default: 100)
  -rl N           Rate limit (queries/sec)
  -r RESOLVERS    Custom DNS resolvers
  -wd DOMAIN      Wildcard domain to filter
  -timeout N      Query timeout
  -retry N        Retries per query

Vue d’ensemble

dnsx est un résolveur DNS rapide et polyvalent de ProjectDiscovery. Il résout de grandes listes de domaines, interroge plusieurs types d’enregistrements (A, AAAA, CNAME, MX, TXT, NS), effectue un filtrage des wildcards, et s’intègre proprement dans le pipeline subfinder → dnsx → httpx.

Résolution de base

# Résoudre une liste de domaines
cat subdomains.txt | dnsx

# Résoudre un seul domaine
echo "target.com" | dnsx

cat domains.txt | dnsx -a       # Enregistrements A
cat domains.txt | dnsx -aaaa    # Enregistrements AAAA
cat domains.txt | dnsx -cname   # Enregistrements CNAME
cat domains.txt | dnsx -mx      # Enregistrements MX
cat domains.txt | dnsx -txt     # Enregistrements TXT
cat domains.txt | dnsx -ns      # Enregistrements NS
cat domains.txt | dnsx -soa     # Enregistrements SOA
cat domains.txt | dnsx -any     # Tous les types d'enregistrements

Intégration en pipeline

# Subfinder → résolution → sondage avec httpx
subfinder -d target.com -silent | dnsx -silent | httpx -silent

# Résoudre et afficher les IP
subfinder -d target.com | dnsx -a -resp

# Filtrer uniquement les domaines qui résolvent
cat large_list.txt | dnsx -silent -o resolved.txt

# Vérifier quels sous-domaines ont des enregistrements MX (cibles e-mail)
cat subdomains.txt | dnsx -mx -resp

Mode brute-force

# Brute-force de sous-domaines avec la wordlist intégrée
dnsx -d target.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

# Brute-force avec une liste de domaines
dnsx -d domains.txt -w wordlist.txt

# Brute-force et filtrage des wildcards
dnsx -d target.com -w wordlist.txt -wd target.com

Détection et filtrage des wildcards

# Détecter les domaines wildcard (important pour un brute-force précis)
dnsx -d target.com -wd target.com -w wordlist.txt
# Le filtrage des wildcards est automatique lors de l'utilisation de -wd

Options de sortie

# Sortie JSON
cat domains.txt | dnsx -json -o results.json

# Afficher uniquement les IP résolues
cat domains.txt | dnsx -a -resp-only

# Afficher domaine + IP
cat domains.txt | dnsx -a -resp

# Verbeux
cat domains.txt | dnsx -v

# Silencieux (sortie propre pour le chaînage)
cat domains.txt | dnsx -silent

Résolveurs personnalisés

# Utiliser des résolveurs DNS spécifiques
cat domains.txt | dnsx -r 8.8.8.8,1.1.1.1

# Utiliser une liste de résolveurs depuis un fichier
cat domains.txt | dnsx -r resolvers.txt

# Limitation de débit
cat domains.txt | dnsx -rl 100   # 100 requêtes par seconde

Conseils

  • dnsx -silent dans les pipelines garde une sortie propre : uniquement les domaines résolus
  • -resp affiche la valeur réelle de la réponse DNS (IP, CNAME, etc.) à côté du domaine
  • Le filtrage des wildcards (-wd) est essentiel pour des résultats de brute-force précis
  • dnsx est bien plus rapide que des commandes dig ou host séquentielles pour de grandes listes de domaines
Aide / Page de manuel
dnsx [flags]

Input:
  -l FILE         File of domains to resolve
  -d DOMAIN       Target domain(s)
  -w WORDLIST     Wordlist for brute-force

DNS Record Types:
  -a              A records
  -aaaa           AAAA records
  -cname          CNAME records
  -ns             NS records
  -txt            TXT records
  -mx             MX records
  -soa            SOA records
  -any            All record types

Output:
  -resp           Show DNS response value
  -resp-only      Show only response values
  -json           JSON output
  -o FILE         Output file
  -silent         Silent mode
  -v              Verbose

Performance:
  -t N            Threads (default: 100)
  -rl N           Rate limit (queries/sec)
  -r RESOLVERS    Custom DNS resolvers
  -wd DOMAIN      Wildcard domain to filter
  -timeout N      Query timeout
  -retry N        Retries per query