dnsrecon

Outil complet d'énumération DNS. Effectue des transferts de zone, des résolutions inverses, une énumération d'enregistrements SRV, du brute-force de sous-domaines et du cache snooping. Comprehensive DNS enumeration tool. Performs zone transfers, reverse lookups, SRV record enumeration, subdomain brute-forcing, and cache snooping.

↗ https://github.com/darkoperator/dnsrecon

Overview

dnsrecon is a Python-based DNS reconnaissance tool that automates DNS enumeration tasks. It covers zone transfers, reverse lookups, standard record enumeration (A, AAAA, NS, MX, SOA, TXT), SRV records, and subdomain brute-forcing. A staple for early recon phases.

Basic Usage

Standard enumeration of a domain

dnsrecon -d example.com

Zone transfer attempt

dnsrecon -d example.com -t axfr

Brute-force subdomains with a wordlist

dnsrecon -d example.com -D /usr/share/wordlists/dnsmap.txt -t brt

Reverse lookup on a CIDR range

dnsrecon -r 192.168.1.0/24

Google lookup for subdomains

dnsrecon -d example.com -t goo

Cache snooping against a nameserver

dnsrecon -t snoop -n 8.8.8.8 -D /usr/share/wordlists/dnsmap.txt

Enumeration Types (-t)

std — standard record enum (default)

dnsrecon -d example.com -t std

axfr — zone transfer

dnsrecon -d example.com -t axfr

brt — subdomain brute-force

dnsrecon -d example.com -t brt -D /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

srv — SRV record enumeration

dnsrecon -d example.com -t srv

rvl — reverse lookup

dnsrecon -r 10.10.10.0/24 -t rvl

zonewalk — NSEC zone walk (DNSSEC)

dnsrecon -d example.com -t zonewalk

tld — TLD expansion

dnsrecon -d example -t tld

Output Options

JSON output

dnsrecon -d example.com -j output.json

XML output

dnsrecon -d example.com -x output.xml

SQLite database

dnsrecon -d example.com --db output.db

Verbose

dnsrecon -d example.com -v

Tips

  • Always try zone transfer (-t axfr) first — misconfigured DNS servers leak the full zone
  • Use -n to specify a custom nameserver to avoid rate limiting from public resolvers
  • Combine brute-force with dnsx or massdns for large-scale resolution
  • Output to JSON and parse with jq for integration into recon pipelines
Help / Man page
dnsrecon [options]

-d DOMAIN       Target domain
-n NS           Nameserver to query
-r RANGE        IP range for reverse lookup (CIDR)
-D FILE         Dictionary for brute-force
-t TYPE         Type: std, axfr, brt, srv, rvl, tld, snoop, zonewalk, goo
-j FILE         JSON output
-x FILE         XML output
--db FILE       SQLite DB output
-v              Verbose
-c              CSV output
-f              Filter unresolvable wildcards
-a              Perform AXFR with standard enumeration

Vue d’ensemble

dnsrecon est un outil de reconnaissance DNS en Python qui automatise les tâches d’énumération DNS. Il couvre les transferts de zone, les résolutions inverses, l’énumération d’enregistrements standards (A, AAAA, NS, MX, SOA, TXT), les enregistrements SRV, et le brute-force de sous-domaines. Un incontournable des premières phases de reconnaissance.

Utilisation de base

# Énumération standard d'un domaine
dnsrecon -d example.com

# Tentative de transfert de zone
dnsrecon -d example.com -t axfr

# Brute-force de sous-domaines avec une wordlist
dnsrecon -d example.com -D /usr/share/wordlists/dnsmap.txt -t brt

# Résolution inverse sur une plage CIDR
dnsrecon -r 192.168.1.0/24

# Recherche Google pour les sous-domaines
dnsrecon -d example.com -t goo

# Cache snooping contre un serveur de noms
dnsrecon -t snoop -n 8.8.8.8 -D /usr/share/wordlists/dnsmap.txt

Types d’énumération (-t)

# std : énumération d'enregistrements standards (par défaut)
dnsrecon -d example.com -t std

# axfr : transfert de zone
dnsrecon -d example.com -t axfr

# brt : brute-force de sous-domaines
dnsrecon -d example.com -t brt -D /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

# srv : énumération d'enregistrements SRV
dnsrecon -d example.com -t srv

# rvl : résolution inverse
dnsrecon -r 10.10.10.0/24 -t rvl

# zonewalk : parcours de zone NSEC (DNSSEC)
dnsrecon -d example.com -t zonewalk

# tld : expansion de TLD
dnsrecon -d example -t tld

Options de sortie

# Sortie JSON
dnsrecon -d example.com -j output.json

# Sortie XML
dnsrecon -d example.com -x output.xml

# Base de données SQLite
dnsrecon -d example.com --db output.db

# Verbeux
dnsrecon -d example.com -v

Conseils

  • Essayez toujours le transfert de zone (-t axfr) en premier : les serveurs DNS mal configurés fuitent la zone complète
  • Utilisez -n pour spécifier un serveur de noms personnalisé afin d’éviter la limitation de débit des résolveurs publics
  • Combinez le brute-force avec dnsx ou massdns pour une résolution à grande échelle
  • Exportez en JSON et parsez avec jq pour l’intégration dans des pipelines de recon
Aide / Page de manuel
dnsrecon [options]

-d DOMAIN       Target domain
-n NS           Nameserver to query
-r RANGE        IP range for reverse lookup (CIDR)
-D FILE         Dictionary for brute-force
-t TYPE         Type: std, axfr, brt, srv, rvl, tld, snoop, zonewalk, goo
-j FILE         JSON output
-x FILE         XML output
--db FILE       SQLite DB output
-v              Verbose
-c              CSV output
-f              Filter unresolvable wildcards
-a              Perform AXFR with standard enumeration