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
The OWASP Amass Project performs network mapping of attack surfaces and external asset discovery using open source information gathering and active reconnaissance techniques.
Information Gathering Techniques Used:
Technique | Data Sources |
---|---|
APIs | 360PassiveDNS, Ahrefs, AnubisDB, BeVigil, BinaryEdge, BufferOver, BuiltWith, C99, Chaos, CIRCL, DNSDB, DNSRepo, Deepinfo, Detectify, FOFA, FullHunt, GitHub, GitLab, GrepApp, Greynoise, HackerTarget, Hunter, IntelX, LeakIX, Maltiverse, Mnemonic, Netlas, Pastebin, PassiveTotal, PentestTools, Pulsedive, Quake, SOCRadar, Searchcode, Shodan, Spamhaus, Sublist3rAPI, SubdomainCenter, ThreatBook, ThreatMiner, URLScan, VirusTotal, Yandex, ZETAlytics, ZoomEye |
Certificates | Active pulls (optional), Censys, CertCentral, CertSpotter, Crtsh, Digitorus, FacebookCT |
DNS | Brute forcing, Reverse DNS sweeping, NSEC zone walking, Zone transfers, FQDN alterations/permutations, FQDN Similarity-based Guessing |
Routing | ASNLookup, BGPTools, BGPView, BigDataCloud, IPdata, IPinfo, RADb, Robtex, ShadowServer, TeamCymru |
Scraping | AbuseIPDB, Ask, Baidu, Bing, CSP Header, DNSDumpster, DNSHistory, DNSSpy, DuckDuckGo, Gists, Google, HackerOne, HyperStat, PKey, RapidDNS, Riddler, Searx, SiteDossier, Yahoo |
Web Archives | Arquivo, CommonCrawl, HAW, PublicWWW, UKWebArchive, Wayback |
WHOIS | AlienVault, AskDNS, DNSlytics, ONYPHE, SecurityTrails, SpyOnWeb, WhoisXMLAPI |
Installation
You can find some additional installation variations in the Installation Guide.
Prebuilt Packages
- Simply unzip the package
- Put the precompiled binary into your path
- Start using OWASP Amass!
Homebrew
brew tap owasp-amass/amass
brew install amass
Docker Container
- Install Docker
- Pull the Docker image by running
docker pull caffix/amass
- Run
docker run -v OUTPUT_DIR_PATH:/.config/amass/ caffix/amass enum -d example.com
The volume argument allows the Amass graph database to persist between executions and output files to be accessed on the host system. The first field (left of the colon) of the volume option is the amass output directory that is external to Docker, while the second field is the path, internal to Docker, where amass will write the output files.
From Source
- Install Go and setup your Go workspace
- Download OWASP Amass by running
go install -v github.com/owasp-amass/amass/v4/...@master
- At this point, the binary should be in
$GOPATH/bin
Documentation
Use the Installation Guide to get started.
Go to the User's Guide for additional information.
See the Tutorial for example usage.
See the Amass Scripting Engine Manual for greater control over your enumeration process.
Corporate Supporters
Testimonials
Accenture
"Accentureâs adversary simulation team has used Amass as our primary tool suite on a variety of external enumeration projects and attack surface assessments for clients. Itâs been an absolutely invaluable basis for infrastructure enumeration, and weâre really grateful for all the hard work thatâs gone into making and maintaining it â itâs made our job much easier!"
- Max Deighton, Accenture Cyber Defense Manager
Visma
"For an internal red team, the organisational structure of Visma puts us against a unique challenge. Having sufficient, continuous visibility over our external attack surface is an integral part of being able to efficiently carry out our task. When dealing with hundreds of companies with different products and supporting infrastructure we need to always be on top of our game.
For years, OWASP Amass has been a staple in the asset reconnaissance field, and keeps proving its worth time after time. The tool keeps constantly evolving and improving to adapt to the new trends in this area."
- Joona Hoikkala (@joohoi) & Alexis Fernández (@six2dez), Visma Red Team
References
Did you write a blog post, magazine article or do a podcast about OWASP Amass? Or maybe you held or joined a conference talk or meetup session, a hacking workshop or public training where this project was mentioned?
Add it to our ever-growing list of REFERENCES.md by forking and opening a Pull Request!
Top Mentions
- Phillip Wylie | Securing APIs Through External Attack Surface Management (EASM)
- Kento Stewart | Mapping Your External Perimeter during an Incident with OWASP Amass
- WhoisXML API | OWASP Amass and WhoisXML API Are Now Integration Partners
- Intigriti | Hacker tools: Amass â Hunting for Subdomains
- Hakluke | Guide to Amass â How to Use Amass More Effectively for Bug Bounties
- SecurityTrails | OWASP Amass: A Solid Information Gathering Tool
- TrustedSec | Upgrade Your Workflow, Part 1: Building OSINT Checklists
- SANS ISC | Offensive Tools Are For Blue Teams Too
- Jason Haddix | LevelUp 0x02 - The Bug Hunters Methodology v3(ish)
- Daniel Miessler | amass â Automated Attack Surface Mapping
- Dionach | How to Use OWASP Amass: An Extensive Tutorial
- nynan | How to Actually Use Amass More Effectively â Bug Bounty
- ToolWar | Extreme Subdomain Enumeration/Scanning on Windows : OWASP Amass
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-2023. 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