DNS resolution and enumeration
shuffleDNS
Go wrapper around massdns that brute forces or resolves subdomains at high volume and filters wildcard DNS.
1.7k stars · last push November 9, 2026 · v1.2.1 · GPL-3.0
What it finds
shuffleDNS drives massdns to resolve a supplied subdomain list or to brute force names from a wordlist, using a resolver list you provide. Its main addition is wildcard handling: it tracks how many names point at one IP and checks each level for wildcards.
- live subdomains
- wildcard IPs
Does it touch the target?
Sends traffic to the target's systems. Use only with the owner's permission.
README: "allows you to enumerate valid subdomains using active bruteforce, as well as resolve subdomains with wildcard handling." The -mode flag selects bruteforce, resolve or filter; both send DNS queries through massdns.
API keys: The README requires massdns, a list of valid resolvers and a wordlist, and mentions no API keys.
Install
go install -v github.com/projectdiscovery/shuffledns/cmd/shuffledns@latestFrom the project's documentation
How to run it
Examples use reserved documentation hosts such as example.com. Replace them with a domain you own or are authorised to test.
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt -mode resolveFrom the project's documentation
subfinder -d example.com | shuffledns -d example.com -r resolvers.txt -mode resolveFrom the project's documentation
shuffledns -d example.com -w wordlist.txt -r resolvers.txt -mode bruteforceFrom the project's documentation
Output formats: ndjson, txt
Limits the project documents
- Requires massdns installed; on Windows you must supply the binary path.
- Needs a list of valid resolvers and a wordlist that you supply.
- Wildcard filtering works with domain (-d) input only.
- Only one of resolving or brute forcing can run at a time.
Deepak's take
Analysis, not documentation
- Use it when
- Use it when you brute force large wordlists against your domain and need wildcard DNS filtered out of massdns results.
- Skip it when
- Skip it for small lists or record lookups, where dnsx needs no external massdns binary or resolver file.
- What it will miss
- It will not find names that are absent from your wordlist or input list.
Facts read from the project's README and docs on November 10, 2026. Repository data as of November 11, 2026. Listed under GitHub's reconnaissance topic. Licence: GPL-3.0. shuffleDNS is a trademark or project name of its owners; this library is not affiliated with it.