← retour aux outils back to tools

# 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