Top Related Projects
Fast passive subdomain enumeration tool.
Find domains and subdomains related to a given domain
Fast subdomains enumeration tool for penetration testers
A Tool for Domain Flyovers
E-mails, subdomains and names Harvester - OSINT
Quick Overview
OWASP Amass is an open-source intelligence (OSINT) tool designed for network mapping and external asset discovery. It performs DNS enumeration, scraping of web archives, and utilizes various data sources to build a comprehensive map of an organization's external-facing digital infrastructure.
Pros
- Comprehensive data collection from numerous sources
- Highly customizable and extensible through configuration files
- Active community support and regular updates
- Integration capabilities with other security tools
Cons
- Steep learning curve for beginners
- Can be resource-intensive for large-scale scans
- Potential for false positives in results
- May require additional API keys for full functionality
Code Examples
# Basic subdomain enumeration
amass enum -d example.com
# Passive enumeration with specific data sources
amass enum -passive -d example.com -src virustotal,dnsdumpster
# Advanced enumeration with output to a database
amass db -d example.com -config config.ini -o results.txt
Getting Started
-
Install Amass:
go install -v github.com/owasp-amass/amass/v3/...@master
-
Run a basic enumeration:
amass enum -d example.com
-
For more advanced usage, create a configuration file (config.ini) with API keys and custom settings.
-
Run Amass with the configuration:
amass enum -config config.ini -d example.com
For detailed documentation and advanced features, refer to the official OWASP Amass GitHub repository.
Competitor Comparisons
Fast passive subdomain enumeration tool.
Pros of Subfinder
- Faster execution time for subdomain enumeration
- Simpler setup and usage, with fewer dependencies
- More focused on subdomain discovery, making it easier to integrate into specific workflows
Cons of Subfinder
- Less comprehensive feature set compared to Amass
- Limited active enumeration techniques
- Fewer data sources and integrations for information gathering
Code Comparison
Subfinder (main subdomain enumeration function):
func (s *Session) EnumerateSubdomains(domain string, config *Config) chan *Result {
results := make(chan *Result)
go func() {
defer close(results)
// Enumeration logic here
}()
return results
}
Amass (main enumeration function):
func (e *Enumeration) Start() error {
if err := e.Config.CheckSettings(); err != nil {
return err
}
e.dataSources = datasrcs.GetAllSources(e.Config)
e.startAddressRanges()
e.startRootDomains()
return nil
}
The code snippets show that Subfinder focuses on a single function for subdomain enumeration, while Amass has a more complex structure with multiple components and data sources involved in the enumeration process.
Find domains and subdomains related to a given domain
Pros of assetfinder
- Lightweight and fast, focusing solely on subdomain enumeration
- Simple to use with minimal configuration required
- Easily integrable into scripts and automation workflows
Cons of assetfinder
- Limited feature set compared to Amass
- Fewer data sources for subdomain discovery
- Less active development and community support
Code Comparison
assetfinder:
func main() {
domains := make(chan string)
go func() {
sc := bufio.NewScanner(os.Stdin)
for sc.Scan() {
domains <- sc.Text()
}
close(domains)
}()
// ... (processing logic)
}
Amass:
func main() {
// ... (configuration and setup)
enum := enumeration.NewEnumeration(cfg)
if err := enum.Start(); err != nil {
r.Fprintf(color.Error, "%v\n", err)
os.Exit(1)
}
// ... (result processing)
}
assetfinder is more straightforward, focusing on reading domains from stdin and processing them. Amass has a more complex structure, involving configuration, enumeration setup, and extensive processing logic.
Fast subdomains enumeration tool for penetration testers
Pros of Sublist3r
- Lightweight and easy to use, with a simple command-line interface
- Fast execution for quick subdomain enumeration
- Supports multiple search engines and sources for subdomain discovery
Cons of Sublist3r
- Less comprehensive and fewer features compared to Amass
- Not actively maintained, with the last update in 2018
- Limited output formats and reporting options
Code Comparison
Sublist3r:
def main(domain, threads, savefile, ports, silent, verbose, enable_bruteforce, engines):
bruteforce_list = []
subdomains = []
search_list = []
# ... (rest of the code)
Amass:
func (e *Enumeration) Start() error {
if err := e.Config.CheckSettings(); err != nil {
return err
}
// ... (rest of the code)
Sublist3r is written in Python and has a more straightforward codebase, while Amass is written in Go and offers a more complex and feature-rich implementation. Amass provides a more robust and extensible architecture, allowing for greater customization and integration with other tools.
A Tool for Domain Flyovers
Pros of Aquatone
- Focuses on visual reconnaissance with automated screenshots
- Easier to use for quick visual domain enumeration
- Provides a clean HTML report for easy analysis
Cons of Aquatone
- Less comprehensive subdomain enumeration compared to Amass
- Limited active reconnaissance capabilities
- Fewer data sources for information gathering
Code Comparison
Aquatone (Go):
func takeScreenshot(url string, timeout time.Duration) (*[]byte, error) {
ctx, cancel := chromedp.NewContext(context.Background())
defer cancel()
ctx, cancel = context.WithTimeout(ctx, timeout)
defer cancel()
// ... (screenshot capture logic)
}
Amass (Go):
func (e *Enumeration) submitKnownNames(ctx context.Context) {
for _, src := range e.Sys.DataSources() {
if !e.Config.SourceFilter.Include(src.String()) {
continue
}
names := src.KnownNames(ctx, e.Config.Domain)
e.submitNames(ctx, src, names)
}
}
Both projects are written in Go, but they serve different purposes. Aquatone focuses on visual reconnaissance and screenshot capture, while Amass is more oriented towards comprehensive subdomain enumeration and data source integration.
E-mails, subdomains and names Harvester - OSINT
Pros of theHarvester
- Lightweight and easy to use, with a simpler learning curve
- Supports a wide range of data sources, including search engines and social media platforms
- Offers flexible output formats, including HTML and XML
Cons of theHarvester
- Less comprehensive in terms of subdomain enumeration compared to Amass
- Slower performance when dealing with large-scale reconnaissance tasks
- Limited advanced features and customization options
Code Comparison
theHarvester:
from theHarvester.discovery import *
from theHarvester.discovery.constants import *
search = googlesearch.search_google(word, limit, start)
search.process()
Amass:
enum := enum.NewEnumeration()
enum.Config.AddDomains([]string{domain})
enum.Start()
for result := range enum.Output {
// Process the result
}
The code snippets demonstrate the basic usage of both tools. theHarvester uses a more straightforward approach with Python, while Amass employs a more structured and concurrent design in Go, reflecting its more advanced capabilities.
Both tools are valuable for reconnaissance, but Amass generally offers more comprehensive and powerful features for subdomain enumeration and asset discovery, albeit with a steeper learning curve. theHarvester, on the other hand, provides a simpler and more accessible option for quick information gathering from various online sources.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
OWASP Amass Project
The OWASP Amass Project performs network mapping of attack surfaces and external asset discovery using open source information gathering and active reconnaissance techniques.
Installation

You can find additional installation instructions and documentation in the Amass Docs repo.
Corporate Supporters
Contributing

We are always happy to get new contributors on board! Please check CONTRIBUTING.md to learn how to contribute to our codebase, and join our Discord Server to discuss current project goals.
Troubleshooting

If you need help with installation and/or usage of the tool, please join our Discord server where community members can best help you.
:stop_sign: Please avoid opening GitHub issues for support requests or questions!
Licensing 
This program is free software: you can redistribute it and/or modify it under the terms of the Apache license. OWASP Amass and any contributions are Copyright © by Jeff Foley 2017-2025. Some subcomponents have separate licenses.
Top Related Projects
Fast passive subdomain enumeration tool.
Find domains and subdomains related to a given domain
Fast subdomains enumeration tool for penetration testers
A Tool for Domain Flyovers
E-mails, subdomains and names Harvester - OSINT
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot