Information Gatheringdnssubdomainbruteforceenumerationpentesting

dnsmap

DNS domain name brute forcing tool that scans for common subdomains using built-in or external wordlists. Results can be saved in CSV and human-readable formats for further processing.

Description

dnsmap is a DNS subdomain enumeration tool designed for pentesters during the information gathering phase of security assessments. It brute-forces common subdomains using a built-in wordlist of around 1000 English and Spanish words or an external wordlist. The tool helps discover hidden infrastructure like remote access servers, unpatched systems, internal IP addresses, and embedded devices via Dynamic DNS services.

Subdomain bruteforcing is particularly useful when traditional techniques like zone transfers fail, which are rarely allowed publicly. dnsmap reveals non-obvious netblocks, RFC 1918 internal addresses, and new domain names through standard DNS resolving. It does not require root privileges and should not be run with them for security reasons.

The package includes dnsmap for single domain scanning and dnsmap-bulk for mass scanning multiple domains from a file. Originally released in 2006, it's maintained for ethical hacking, forensics, and security testing.

How It Works

dnsmap performs DNS lookups by appending words from its built-in wordlist (defined in src/dnsmap.h) or a user-specified external wordlist to the target domain (e.g., smtp.example.com). It introduces random delays between queries (default max 10ms) to avoid bandwidth issues. Results are filtered optionally by ignoring specified IPs and saved in timestamped plain text or CSV files. dnsmap-bulk automates this process across multiple domains using dnsmap with default settings as backend.

Installation

bash
sudo apt install dnsmap

Flags

-w <wordlist-file>Use an external wordlist instead of the built-in one
-r <regular-results-file>Save results to a plain text file
-c <csv-results-file>Save results in CSV format in a file
-d <delay-millisecs>Limit of random delay in milliseconds between successive queries
-i <ips-to-ignore>IP addresses to ignore in the results (comma-separated, max 5)

Examples

Scan example.com using a wordlist
dnsmap example.com -w /usr/share/wordlists/dnsmap.txt
Subdomain bruteforcing using dnsmap's built-in wordlist
dnsmap example.com
Subdomain bruteforcing using a user-supplied wordlist
dnsmap example.com -w wordlist.txt
Subdomain bruteforcing using the built-in wordlist and saving results to /tmp/
dnsmap example.com -r /tmp
Subdomain bruteforcing with max 300ms delay between requests, saving to /tmp/
dnsmap example.com -r /tmp/ -d 300
Bruteforcing with 0.8s delay, saving regular and CSV results, filtering 2 IPs, using custom wordlist
dnsmap example.com -d 800 -r /tmp/ -c /tmp/ -i 10.55.206.154,10.55.24.100 -w ./wordlist_TLAs.txt
Mass scan domains from domains.txt file using dnsmap-bulk
dnsmap-bulk.sh domains.txt
Bruteforcing multiple target domains, saving results in /tmp/results/
dnsmap-bulk domains.txt /tmp/results/
Updated 2026-04-16kali.org ↗