Subdomain discovery
OWASP Amass
Maps an organization's external attack surface from open sources, with optional zone transfers, certificate grabs and DNS brute force.
15k stars · last push November 11, 2026 · v5.1.3 · Apache-2.0
What it finds
Amass maps external assets such as subdomains, IP ranges and ASNs, storing them in an asset database built on the Open Asset Model. It draws on data source plugins (API integrations, web scrapers, WHOIS/RDAP lookups) and can add active techniques. Version 5 splits work between the amass client and a collection engine.
- subdomains
- IP addresses
- ASNs
- netblocks
Does it touch the target?
Has a passive mode and active modes. The active modes need the owner's permission.
README: "performs network mapping of attack surfaces and external asset discovery using open source information gathering and active reconnaissance techniques." In the enum CLI source, -passive is "Deprecated since passive is the default setting"; -active will "Attempt zone transfers and certificate name grabs"; -brute will "Execute brute forcing after searches".
API keys: Docs: credentialed sources are configured in datasources.yaml, and "Some data sources require a paid subscription or API key to access advanced features"; 38 listed sources need credentials.
Install
CGO_ENABLED=0 go install -v github.com/owasp-amass/amass/v5/cmd/amass@mainFrom the project's documentation
brew tap owasp-amass/homebrew-amass
brew install amassFrom the project's documentation
docker pull owaspamass/amass: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.
docker run --rm -it -v ~/.config/amass:/.config/amass amass:latest enum -d example.comFrom the project's documentation
docker compose run --rm enum -active -d example.comFrom the project's documentation
Limits the project documents
- 38 of the documented data sources require credentials (docs, Available Data Sources).
- The enum CLI reports that ports can only be scanned in active mode.
- Street address parsing requires building with libpostal and CGO enabled (docs, Getting Started).
Deepak's take
Analysis, not documentation
- Use it when
- Use it when you want a persistent, queryable map of your domains, IP ranges and ASNs that you track over time, not a one-off list.
- Skip it when
- Skip it for a fast single-domain subdomain pass, where subfinder is lighter. The engine and database setup is heavier than a single binary.
- What it will miss
- In default passive mode it will not find names absent from its data sources unless you enable brute forcing or alterations.
Facts read from the project's README and docs on November 10, 2026. Repository data as of November 11, 2026. Licence: Apache-2.0. OWASP Amass is a trademark or project name of its owners; this library is not affiliated with it.