← retour aux outils back to tools

# 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