2.5 KiB
2.5 KiB
name, description
| name | description |
|---|---|
| subfinder | Subfinder passive subdomain enumeration syntax, source controls, and pipeline-ready output patterns. |
Subfinder CLI Playbook
Official docs:
- https://docs.projectdiscovery.io/opensource/subfinder/usage
- https://docs.projectdiscovery.io/opensource/subfinder/running
- https://github.com/projectdiscovery/subfinder
Canonical syntax:
subfinder [flags]
High-signal flags:
-d <domain>single domain-dL <file>domain list-allinclude all sources-recursiveuse recursive-capable sources-s <sources>include specific sources-es <sources>exclude specific sources-rl <n>global rate limit-rls <source=n/s,...>per-source rate limits-proxy <http://host:port>proxy outbound source requests-silentcompact output-o <file>output file-oJ, -jsonJSONL output-cs, -collect-sourcesinclude source metadata (-oJoutput)-nW, -activeshow only active subdomains-timeout <seconds>request timeout-max-time <minutes>overall enumeration cap
Agent-safe baseline for automation:
subfinder -d example.com -all -recursive -rl 20 -timeout 30 -silent -oJ -o subfinder.jsonl
Common patterns:
- Standard passive enum:
subfinder -d example.com -silent -o subs.txt - Broad-source passive enum:
subfinder -d example.com -all -recursive -silent -o subs_all.txt - Multi-domain run:
subfinder -dL domains.txt -all -recursive -rl 20 -silent -o subfinder_out.txt - Source-attributed JSONL output:
subfinder -d example.com -all -oJ -cs -o subfinder_sources.jsonl - Passive enum via explicit proxy:
subfinder -d example.com -all -recursive -proxy http://127.0.0.1:48080 -silent -oJ -o subfinder_proxy.jsonl
Critical correctness rules:
-csis useful only with JSON output (-oJ).- Many sources require API keys in provider config; low results can be config-related, not target-related.
-nWperforms active resolution/filtering and can drop passive-only hits.- Keep passive enum first, then validate with
httpx.
Usage rules:
- Keep output files explicit when chaining to
httpx/nuclei. - Use
-rl/-rlswhen providers throttle aggressively. - Do not use
-h/--helpfor routine tasks unless absolutely necessary.
Failure recovery:
- If results are unexpectedly low, rerun with
-alland verify provider config/API keys. - If provider errors appear, lower
-rland apply-rlsper source. - If runs take too long, lower scope or split domain batches.
If uncertain, query web_search with:
site:docs.projectdiscovery.io subfinder <flag> usage