Skip to main content

Want to Practice These Techniques?

Try Hackviser's interactive cyber security upskilling platform - Learn by doing!

Start Practicing Now

Amass

What is the purpose of Amass?

OWASP Amass is an open-source attack surface intelligence framework for external asset discovery, DNS enumeration, OSINT collection, and network mapping. It helps security teams discover domains, subdomains, IP addresses, netblocks, autonomous systems, and relationships that describe an organization's exposed footprint.

Amass is more than a simple subdomain enumeration tool. It stores discovered assets in an asset database, models relationships through the Open Asset Model, and can present, track, and visualize findings across repeated reconnaissance runs.

Note: Amass has changed across major versions. The commands below follow the current OWASP Amass v5 command structure. If a packaged version behaves differently, check it with amass --version and amass -h.

Here are the primary uses of Amass:

  • Subdomain Enumeration: Amass discovers subdomains using public data sources, DNS techniques, brute forcing, alterations, and recursive discovery.

  • Attack Surface Mapping: The tool maps DNS names, IP addresses, netblocks, ASNs, ports, and related assets to help teams understand external exposure.

  • Passive Reconnaissance: Amass can collect information from OSINT and API-backed sources without directly probing the target infrastructure. Passive collection is the default behavior in current versions.

  • Active Reconnaissance: When explicitly enabled, Amass can perform active techniques such as certificate name grabs, DNS zone transfer attempts, and port-aware network mapping.

  • Data Source Integration: Amass can use API-backed sources such as Shodan and CIRCL through datasources.yaml, making it stronger when authenticated data sources are configured.

  • Asset Database Workflows: The tool stores results in an asset database so users can query discovered subdomains, show IP relationships, track new assets, and generate visualizations.

  • Long-Term Monitoring: Amass supports repeated discovery workflows where new findings can be compared against historical data.

Core Features

  • External Asset Discovery
  • DNS Enumeration
  • Passive OSINT Collection
  • Active Reconnaissance
  • Subdomain Discovery
  • Recursive Subdomain Discovery
  • DNS Brute Forcing
  • Hashcat-Style DNS Wordlist Masks
  • Name Alterations
  • Data Source Include and Exclude Controls
  • YAML Configuration
  • Data Source Credential Configuration
  • Custom DNS Resolvers
  • Trusted and Untrusted Resolver Support
  • Scope Control
  • Blacklist Support
  • Asset Database Storage
  • Open Asset Model Support
  • Subdomain Result Presentation
  • IP, IPv4, and IPv6 Output
  • ASN Summary Output
  • New Asset Tracking
  • D3, DOT, and GEXF Visualizations
  • Docker Execution
  • Homebrew Installation
  • Collection Engine Support

Data sources

  • DNS Records
  • DNS Resolvers
  • Certificate Transparency Data
  • Passive DNS Sources
  • OSINT APIs
  • Search Engines
  • Web Archives
  • Shodan
  • CIRCL
  • WHOIS and RDAP Data
  • Autonomous System Numbers
  • Netblocks
  • IP Addresses
  • Root Domains
  • Known Subdomain Lists
  • Wordlists
  • Alteration Wordlists
  • Data Source Credentials
  • datasources.yaml
  • config.yaml
  • Amass Asset Database
  • Open Asset Model Entities

Common Amass Commands

1. Install Amass with Homebrew

  • This command installs Amass on macOS using the official OWASP Amass Homebrew tap.
brew tap owasp-amass/homebrew-amass
brew install amass

2. Install Amass from Source

  • This command installs the current Amass v5 command-line binary with Go.
CGO_ENABLED=0 go install -v github.com/owasp-amass/amass/v5/cmd/amass@main

3. Pull the Official Docker Image

  • This command downloads the official Amass Docker image.
docker pull owaspamass/amass:latest

4. Run Amass with Docker

  • This command runs Amass in a container and mounts the local Amass configuration directory so results and configuration persist.
docker run --rm -it -v ~/.config/amass:/.config/amass owaspamass/amass:latest enum -d example.com

5. Show Global Help

  • This command displays the main Amass help menu and available subcommands.
amass -h

6. Show Version

  • This command prints the installed Amass version.
amass --version

7. Show Enumeration Help

  • This command displays options for the enum subcommand.
amass enum -h

8. Basic Domain Enumeration

  • This command starts an enumeration for a single root domain.
amass enum -d example.com

9. Enumerate Multiple Domains

  • This command enumerates multiple domains in one run.
amass enum -d example.com,example.org

10. Enumerate Domains from a File

  • This command reads root domains from a file and starts enumeration for each one.
amass enum -df domains.txt

11. Enable Verbose Output

  • This command prints status, debug, and troubleshooting information during enumeration.
amass enum -v -d example.com

12. List Available Data Sources

  • This command prints the data source names available to the installed Amass version.
amass enum -list

13. Include Specific Data Sources

  • This command limits collection to selected data sources.
amass enum -d example.com -include Shodan,Crtsh

14. Exclude Specific Data Sources

  • This command excludes selected data sources from the enumeration workflow.
amass enum -d example.com -exclude Shodan

15. Use a Configuration File

  • This command runs enumeration with a selected YAML configuration file.
amass enum -d example.com -config config.yaml

16. Use a Custom Output Directory

  • This command stores output files, logs, and database data in a selected directory.
amass enum -d example.com -dir amass-output

17. Set an Output File Prefix

  • This command sets the prefix used when Amass creates output files.
amass enum -d example.com -oA amass-output/example

18. Write Enumeration Logs

  • This command writes enumeration errors and log messages to a chosen file.
amass enum -d example.com -log amass.log

19. Enable Active Reconnaissance

  • This command enables active techniques such as certificate name grabs and zone transfer attempts.
amass enum -active -d example.com

20. Active Reconnaissance with Ports

  • This command uses active mode and checks selected ports during network mapping.
amass enum -active -d example.com -p 80,443,8080

21. DNS Brute Force

  • This command performs DNS brute forcing after data source searches.
amass enum -d example.com -brute -w subdomains.txt

22. DNS Brute Force with a Mask

  • This command uses a hashcat-style mask for DNS brute forcing.
amass enum -d example.com -brute -wm "?l?l?l"

23. Enable Name Alterations

  • This command generates altered names during enumeration.
amass enum -d example.com -alts

24. Use an Alteration Wordlist

  • This command uses a custom wordlist for name alterations.
amass enum -d example.com -alts -aw alterations.txt

25. Set Recursive Brute Force Threshold

  • This command requires a subdomain pattern to be seen at least twice before recursive brute forcing is attempted.
amass enum -d example.com -brute -min-for-recursive 2

26. Set Maximum Brute Force Depth

  • This command limits the maximum number of subdomain labels used during brute forcing.
amass enum -d example.com -brute -max-depth 3

27. Disable Recursive Brute Forcing

  • This command turns off recursive brute forcing behavior.
amass enum -d example.com -brute -norecursive

28. Use Custom DNS Resolvers

  • This command uses selected untrusted DNS resolvers.
amass enum -d example.com -r 1.1.1.1,8.8.8.8

29. Load DNS Resolvers from a File

  • This command loads resolver IP addresses from a file.
amass enum -d example.com -rf resolvers.txt

30. Use Trusted DNS Resolvers

  • This command adds trusted DNS resolvers for enumeration.
amass enum -d example.com -tr 9.9.9.9

31. Blacklist a Subdomain

  • This command prevents a selected subdomain from being investigated.
amass enum -d example.com -bl test.example.com

32. Load a Blacklist File

  • This command loads blacklisted subdomain names from a file.
amass enum -d example.com -blf blacklist.txt

33. Disable Scope Expansion

  • This command keeps enumeration within stricter scope boundaries.
amass enum -d example.com -rigid

34. Demo Mode

  • This command censors output so it can be shown in demonstrations or screenshots.
amass enum -d example.com -demo

35. Run Silent Enumeration

  • This command disables terminal output during execution, which is useful for automation.
amass enum -d example.com -silent

36. Show Discovered Subdomains

  • This command reads the asset database and prints discovered names for a domain.
amass subs -d example.com -names

37. Show Discovered Subdomains with IP Addresses

  • This command prints discovered names with associated IP addresses.
amass subs -d example.com -names -ip

38. Show IPv4 Results Only

  • This command prints discovered names that have IPv4 addresses.
amass subs -d example.com -names -ipv4

39. Show ASN Summary

  • This command prints an ASN summary table for discovered infrastructure.
amass subs -d example.com -summary

40. Show Names and Summary Together

  • This command prints both discovered names and the ASN summary.
amass subs -d example.com -show

41. Save Subdomain Output

  • This command writes subdomain output to a selected file.
amass subs -d example.com -names -o subdomains.txt

42. Track Newly Discovered Assets

  • This command identifies newly discovered assets for a domain using the asset database.
amass track -d example.com

43. Track Assets Since a Date

  • This command shows assets discovered after the selected timestamp.
amass track -d example.com -since "01/02 15:04:05 2026 UTC"

44. Generate a D3 Visualization

  • This command generates a D3 force graph HTML file from the asset database.
amass viz -d3 -d example.com

45. Generate a DOT Graph

  • This command generates a DOT graph file for graph analysis tools.
amass viz -dot -d example.com

46. Generate a GEXF Graph

  • This command generates a GEXF file for tools such as Gephi.
amass viz -gexf -d example.com

47. Set Visualization Output Directory and Prefix

  • This command writes visualization files to a selected directory with a custom prefix.
amass viz -d3 -d example.com -o graphs -oA example

48. Start the Collection Engine

  • This command starts the Amass collection engine as a standalone service.
amass engine -log-dir ./logs

49. Use a Remote Collection Engine

  • This command directs enumeration to a selected Amass engine URL.
amass enum -engine http://127.0.0.1:4000 -d example.com

Output Examples of Amass Commands

CommandExample UsageFunctionOutput Example
Global Helpamass -hShows Amass help and subcommands.Subcommands: assoc, engine, enum, subs, track, viz
Versionamass --versionPrints the installed version.v5.1.1
Enum Helpamass enum -hShows enumeration options.Usage: amass enum [options] -d DOMAIN
Basic Enumerationamass enum -d example.comStarts discovery for one domain.Session Scope FQDN: example.com
Multiple Domainsamass enum -d example.com,example.orgEnumerates multiple root domains.example.com and example.org added to scope
Domain Fileamass enum -df domains.txtReads root domains from a file.Loaded domains from domains.txt
Verbose Modeamass enum -v -d example.comPrints troubleshooting information.Output status and debug information enabled
List Sourcesamass enum -listLists available data source names.Shodan, CIRCL, Crtsh, ...
Include Sourcesamass enum -d example.com -include Shodan,CrtshUses selected data sources.Included data sources: Shodan, Crtsh
Exclude Sourcesamass enum -d example.com -exclude ShodanExcludes selected data sources.Excluded data source: Shodan
Config Fileamass enum -d example.com -config config.yamlLoads YAML configuration.Using configuration file: config.yaml
Output Directoryamass enum -d example.com -dir amass-outputStores results in a chosen directory.Output directory: amass-output
Output Prefixamass enum -d example.com -oA amass-output/exampleSets output file prefix.Output prefix: amass-output/example
Active Reconamass enum -active -d example.comEnables active recon methods.Active reconnaissance enabled
Active Portsamass enum -active -d example.com -p 80,443Includes selected ports in active mapping.Ports: 80,443
Brute Forceamass enum -d example.com -brute -w subdomains.txtPerforms DNS brute forcing.DNS brute forcing enabled
Brute Maskamass enum -d example.com -brute -wm "?l?l?l"Uses a hashcat-style DNS mask.Loaded brute force mask
Alterationsamass enum -d example.com -altsGenerates altered names.Name alterations enabled
Alteration Wordlistamass enum -d example.com -alts -aw alterations.txtUses an alteration wordlist.Loaded alteration wordlist
Recursive Thresholdamass enum -d example.com -brute -min-for-recursive 2Controls recursive brute forcing.Minimum for recursive brute forcing: 2
Max Depthamass enum -d example.com -brute -max-depth 3Limits brute force depth.Maximum depth: 3
No Recursiveamass enum -d example.com -brute -norecursiveDisables recursive brute forcing.Recursive brute forcing disabled
Custom Resolversamass enum -d example.com -r 1.1.1.1,8.8.8.8Uses selected DNS resolvers.Resolvers configured
Resolver Fileamass enum -d example.com -rf resolvers.txtLoads resolvers from a file.Loaded resolvers from resolvers.txt
Trusted Resolveramass enum -d example.com -tr 9.9.9.9Adds trusted DNS resolvers.Trusted resolver configured
Blacklistamass enum -d example.com -bl test.example.comBlocks a subdomain from investigation.Blacklisted: test.example.com
Rigid Scopeamass enum -d example.com -rigidDisables scope expansion.Rigid scope enabled
Demo Modeamass enum -d example.com -demoCensors output for demonstrations.Demo mode enabled
Silent Modeamass enum -d example.com -silentDisables terminal output.No terminal output shown
Show Namesamass subs -d example.com -namesPrints discovered subdomains.app.example.com
Show Names and IPsamass subs -d example.com -names -ipPrints discovered names with IPs.app.example.com 192.0.2.10
IPv4 Onlyamass subs -d example.com -names -ipv4Shows names with IPv4 addresses.api.example.com 192.0.2.20
ASN Summaryamass subs -d example.com -summaryPrints ASN summary data.ASN 64500 Example Network
Save Namesamass subs -d example.com -names -o subdomains.txtWrites names to a file.Output written to subdomains.txt
Track New Assetsamass track -d example.comShows newly discovered assets.new.example.com
Track Sinceamass track -d example.com -since "01/02 15:04:05 2026 UTC"Filters new assets by timestamp.Assets discovered after timestamp
D3 Visualizationamass viz -d3 -d example.comGenerates an HTML graph.amass.html created
DOT Visualizationamass viz -dot -d example.comGenerates a DOT graph file.amass.dot created
GEXF Visualizationamass viz -gexf -d example.comGenerates a GEXF graph file.amass.gexf created
Start Engineamass engine -log-dir ./logsRuns the collection engine service.Amass engine started
Remote Engineamass enum -engine http://127.0.0.1:4000 -d example.comUses a selected engine API URL.Connected to engine API