Convert Figma logo to code with AI

owasp-amass logoamass

In-depth attack surface mapping and asset discovery

13,344
2,023
13,344
207

Top Related Projects

12,058

Fast passive subdomain enumeration tool.

Find domains and subdomains related to a given domain

10,505

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

  1. Install Amass:

    go install -v github.com/owasp-amass/amass/v3/...@master
    
  2. Run a basic enumeration:

    amass enum -d example.com
    
  3. For more advanced usage, create a configuration file (config.ini) with API keys and custom settings.

  4. 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

12,058

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.

10,505

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

OWASP Logo OWASP Amass Project

OWASP Flagship GitHub Release Go Report CodeFactor Follow on Twitter Chat on Discord

The OWASP Amass Project performs network mapping of attack surfaces and external asset discovery using open source information gathering and active reconnaissance techniques.

Installation Go Version Docker Image GitHub Downloads

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

Corporate Supporters

WhoisXML API Logo

Contributing Contribute Yes Chat on Discord

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 GitHub Test Status codecov Chat on Discord

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 License

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.

Network graph