A curated awesome-list of tools, bookmarklets, browser addons and Burp/Caido/ZAP extensions used by web hackers and bug bounty hunters.
projectdiscovery/subfinder
Fast passive subdomain enumeration tool that finds subdomains of a domain using online sources, without sending traffic to the target.
- Stars
- 14,737
- Forks
- 1,646
- Open issues
- 3
- Last commit
- 22 hours ago
What is it?
subfinder discovers subdomains for a given domain by querying passive online sources such as certificate transparency logs and search or DNS data providers. Because it does not probe the target directly, enumeration is quick and low-profile, which suits reconnaissance work in penetration testing and bug bounty programs.
The tool is a single Go binary with a modular design and is built to do one task: passive subdomain enumeration. It includes optional wildcard elimination and resolution modules, rate limiting per provider, and filtering by exact names or regular expressions. Results can be written as plain text or JSONL, to a file, or to stdout, and it accepts input from stdin so it can be chained with other tools. Many sources require API keys, which are configured in a provider config file.
subfinder can also be imported as a Go library, allowing other programs to run enumeration through its SDK.
Key features
- 01Enumerates subdomains using curated passive online sources.
- 02Supports wildcard elimination and DNS resolution modules.
- 03Filters results by exact names or regular expressions.
- 04Applies rate limits per provider.
- 05Outputs plain text or JSONL to a file or stdout, and reads domains from stdin.
Use cases
- Mapping the attack surface of a domain during a penetration test.
- Collecting in-scope subdomains for a bug bounty target.
- Feeding discovered hosts into other scanning tools via pipes.
- Embedding subdomain enumeration in custom security tooling through the Go library.
Quick start
- 1
Install subfinder with Go (requires go1.26.10)
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest - 2
Run subfinder against a domain
subfinder -d example.com
Things to know
- Many passive sources need API keys before they return results.
- Requires go1.26.10 to install from source.
In collections
Topics
FAQ
- What is subfinder?
- Fast passive subdomain enumeration tool that finds subdomains of a domain using online sources, without sending traffic to the target. subfinder discovers subdomains for a given domain by querying passive online sources such as certificate transparency logs and search or DNS data providers. Because it does not probe the target directly, enumeration is quick and low-profile, which suits reconnaissance work in penetration testing and bug bounty programs.
- Is subfinder free to use? What license does it have?
- subfinder is open source under the MIT license. Check the license terms before using it in commercial products.
- Is subfinder still maintained?
- Actively maintained. The last commit to subfinder was on Nov 6, 2026.
- What can I use subfinder for?
- Mapping the attack surface of a domain during a penetration test. Collecting in-scope subdomains for a bug bounty target. Feeding discovered hosts into other scanning tools via pipes. Embedding subdomain enumeration in custom security tooling through the Go library.
- How do I install subfinder?
- Install subfinder with Go (requires go1.26.10): go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest Run subfinder against a domain: subfinder -d example.com
- Where can I get subfinder?
- The source code and installation instructions are on GitHub: https://github.com/projectdiscovery/subfinder
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Go CLI that queries multiple internet search engines (Shodan, Censys, FOFA, ZoomEye and more) to find exposed hosts, with output designed for piping into other tools.
A fast, multi-purpose HTTP toolkit CLI that probes lists of hosts, URLs and CIDRs for status codes, titles, tech stack, TLS certificates and more.
A command-line OSINT tool that searches for a username across 400+ social networks and reports where accounts exist.
A fast port scanner written in Rust that finds open ports quickly and can pipe results into Nmap or custom scripts.