DNSRECON
Authorized use only. Offensive reference for systems you own or are explicitly permitted to test. You are responsible for staying within the law.
OVERVIEW#
dnsrecon is a powerful DNS enumeration and reconnaissance tool written in Python. It performs zone transfers, brute force, SRV record enumeration, Google lookup, and cache snooping.
BASIC USAGE#
dnsrecon -d <domain> # Standard DNS enumeration dnsrecon -d <domain> -a # Perform zone transfer dnsrecon -d <domain> -t std # Standard record enumeration
ENUMERATION TYPES (-t)#
dnsrecon -d <domain> -t std # SOA, NS, A, AAAA, MX, SRV records dnsrecon -d <domain> -t rvl # Reverse lookup of IP range dnsrecon -d <domain> -t brt # Brute force subdomains dnsrecon -d <domain> -t srv # SRV record enumeration dnsrecon -d <domain> -t axfr # Zone transfer dnsrecon -d <domain> -t bing # Bing search for subdomains dnsrecon -d <domain> -t yand # Yandex search for subdomains dnsrecon -d <domain> -t crt # Certificate transparency lookup dnsrecon -d <domain> -t snoop # DNS cache snooping dnsrecon -d <domain> -t tld # TLD expansion dnsrecon -d <domain> -t zonewalk # DNSSEC zone walking
BRUTE FORCE#
dnsrecon -d <domain> -t brt -D /path/wordlist.txt
# Brute force with wordlist
dnsrecon -d <domain> -t brt --threads 10
# Threaded brute force
dnsrecon -d <domain> -t brt -f # Filter wildcard records
dnsrecon -d <domain> -t brt --iw # Continue on wildcard detection
REVERSE LOOKUP#
dnsrecon -r 192.168.1.0/24 # Reverse lookup on CIDR range
dnsrecon -r 192.168.1.1-192.168.1.50
# Reverse lookup on IP range
DNS SERVER OPTIONS#
dnsrecon -d <domain> -n 8.8.8.8 # Use specific nameserver dnsrecon -d <domain> --tcp # Use TCP for queries
CACHE SNOOPING#
dnsrecon -t snoop -n <ns_server> -D /path/domains.txt
# Check if NS has cached domains
ZONE WALKING (DNSSEC)#
dnsrecon -d <domain> -t zonewalk # Walk DNSSEC-enabled zone (NSEC)
OUTPUT OPTIONS#
dnsrecon -d <domain> --xml out.xml # XML output dnsrecon -d <domain> --json out.json # JSON output dnsrecon -d <domain> --csv out.csv # CSV output dnsrecon -d <domain> --db out.db # SQLite database output dnsrecon -d <domain> -c out.csv # CSV output (alt)
COMBINED EXAMPLES#
# Full enumeration with brute force and output dnsrecon -d example.com -t std,brt -D /usr/share/wordlists/dns.txt --json results.json # Zone transfer with specific nameserver dnsrecon -d example.com -t axfr -n ns1.example.com # DNSSEC zone walking dnsrecon -d example.com -t zonewalk --json zone_records.json # Reverse lookup of a /24 subnet dnsrecon -r 10.0.0.0/24 --csv reverse_results.csv # Cache snooping against DNS server dnsrecon -t snoop -n 10.0.0.1 -D /usr/share/seclists/Discovery/DNS/top-1000.txt # Certificate transparency + standard enum dnsrecon -d example.com -t std,crt
WORDLISTS#
/usr/share/dnsrecon/namelist.txt # Default wordlist /usr/share/seclists/Discovery/DNS/ # SecLists DNS wordlists /usr/share/wordlists/dnsmap.txt # Alternative wordlist
NOTES#
- Supports DNSSEC zone walking (NSEC/NSEC3) - Can detect wildcard DNS entries - Certificate transparency provides passive subdomain discovery - Database output allows later querying with SQL - Use --threads to speed up brute force scans