go-dnsbrute is a fast and lightweight DNS brute-forcing tool written in Go. It helps identify valid subdomains under a given domain by leveraging a wordlist and multi-threading. This utility is designed for security researchers and penetration testers who need to map out subdomains efficiently. With no extra frills, it is very easy to use in any automation script.
- Multi-threaded Execution: Use a configurable number of threads to maximize performance.
- Wordlist Support: Specify your own wordlist for flexible brute-forcing.
- Recursive Discovery: Automatically finds subdomains of discovered subdomains.
- Lightweight: Built with Go for speed and simplicity.
docker pull docker.io/raj77in/go-dnsbrute
## Example
docker run -it -v $PWD:/wl docker.io/raj77in/go-dnsbrute <domain> wl/wordlist.txt 10
-
Clone the Repository:
git clone https://github.com/yourusername/go-dnsbrute.git cd go-dnsbrute
-
Build the Binary:
go build -o go-dnsbrute
-
Verify Installation: Run the tool to see the usage instructions:
./go-dnsbrute -h
-
Optionally, copy the binary to
/usr/local/bin
.cp ./go-dnsbrute /usr/local/bin
./go-dnsbrute <domain> <wordlist> <threads>
./go-dnsbrute example[.]com subdomains.txt 10
- Parameters:
<domain>
: The target domain for brute-forcing.<wordlist>
: Path to the file containing potential subdomain names (one per line).<threads>
: Number of threads to use for concurrent requests.
The tool will display discovered subdomains in real-time.
The wordlist should be a plain text file with one potential subdomain per line:
www
mail
ftp
admin
test
Contributions are welcome! If you find a bug or have an idea for a feature, feel free to open an issue or submit a pull request.
This tool is intended for educational and authorized security testing purposes only. Unauthorized use of this tool is prohibited and may violate local, state, or federal laws.
I like using the following dictionaries:'
- httparchive_subdomains_2024_05_28
- 2m-subdomains
- best-dns-wordlist
- sorted_knock_dnsrecon_fierce_recon-ng
You can download all these wordlists and then cat
them all to single file and run it through sort|uniq
to use as
wordlist.