Zum Inhalt

OWASP Amass Network Mapping Tool Cheat Sheet

generieren

Überblick

OWASP Amass ist ein Open-Source-Netzwerk Mapping und externe Asset Discovery-Tool, das hilft, Informationssicherheit Fachleute entdecken Vermögenswerte ihrer Organisation. Es führt DNS-Enumeration, Subdomain-Erkennung und Netzwerk-Erklärung, um eine Organisation Angriffsfläche durch verschiedene Datenquellen und Techniken.

ZEIT Warnung: Dieses Tool ist nur für autorisierte Penetrationstests und Sicherheitsbewertungen gedacht. Stellen Sie sicher, dass Sie eine ordnungsgemäße Autorisierung vor der Verwendung gegen jedes Ziel haben.

Installation

Zur Installation

```bash

Install via Go

go install -v github.com/owasp-amass/amass/v4/...@master

Verify installation

amass version ```_

Installation des Paketmanagers

```bash

Ubuntu/Debian

sudo apt update sudo apt install amass

Arch Linux

sudo pacman -S amass

macOS with Homebrew

brew install amass

Kali Linux (pre-installed)

amass -h ```_

Docker Installation

```bash

Pull Docker image

docker pull caffix/amass

Run with Docker

docker run -v OUTPUT_DIR_PATH:/.config/amass/ caffix/amass enum -d example.com ```_

Manuelle Installation

```bash

Download latest release

wget https://github.com/OWASP/Amass/releases/download/v4.2.0/amass_Linux_amd64.zip unzip amass_Linux_amd64.zip sudo mv amass_Linux_amd64/amass /usr/local/bin/

Make executable

sudo chmod +x /usr/local/bin/amass ```_

Basisnutzung

Befehlsstruktur

```bash

Basic syntax

amass [subcommand] [options]

Get help

amass -h amass [subcommand] -h

Check version

amass -version ```_

Verfügbare Unterbefehle

Subcommand Description
enum Perform DNS enumeration and network mapping
intel Collect intelligence on the target organization
viz Generate visualizations of enumeration results
track Compare results across multiple enumerations
db Manage the graph database

DNS Aufzählung

Grundaufzählung

```bash

Basic subdomain enumeration

amass enum -d example.com

Multiple domains

amass enum -d example.com,target.org

Domain list from file

amass enum -df domains.txt

Passive enumeration only

amass enum -passive -d example.com

Active enumeration (includes DNS brute force)

amass enum -active -d example.com ```_

Erweiterte Enumerationsoptionen

```bash

Increase verbosity

amass enum -v -d example.com

Set maximum DNS queries per minute

amass enum -d example.com -max-dns-queries 1000

Set timeout for DNS queries

amass enum -d example.com -timeout 30

Include IP addresses in output

amass enum -ip -d example.com

Include CIDR ranges

amass enum -cidr 192.168.1.0/24 -d example.com ```_

Ausgabeoptionen

```bash

Save results to file

amass enum -d example.com -o results.txt

JSON output format

amass enum -d example.com -json results.json

Directory for all output files

amass enum -d example.com -dir ./amass_output

Log file location

amass enum -d example.com -log amass.log ```_

Datenquellen Konfiguration

API Keys Konfiguration

```bash

Create config file

mkdir ~/.config/amass nano ~/.config/amass/config.ini

Example config.ini content:

[data_sources] [data_sources.AlienVault] [data_sources.AlienVault.Credentials] apikey = your_api_key_here

[data_sources.Censys] [data_sources.Censys.Credentials] api_id = your_api_id secret = your_secret

[data_sources.Shodan] [data_sources.Shodan.Credentials] apikey = your_shodan_api_key

[data_sources.SecurityTrails] [data_sources.SecurityTrails.Credentials] apikey = your_securitytrails_api_key

[data_sources.VirusTotal] [data_sources.VirusTotal.Credentials] apikey = your_virustotal_api_key ```_

Datenquellenverwaltung

```bash

List available data sources

amass enum -list

Exclude specific data sources

amass enum -d example.com -exclude censys,shodan

Include only specific data sources

amass enum -d example.com -include virustotal,securitytrails

Show data source usage

amass enum -d example.com -src ```_

Nachrichten sammeln

Organisation Intelligenz

```bash

Gather intelligence on organization

amass intel -org "Example Corporation"

Search by autonomous system number

amass intel -asn 12345

Search by IP address

amass intel -addr 192.168.1.1

Search by CIDR range

amass intel -cidr 192.168.1.0/24

Reverse WHOIS lookup

amass intel -whois -d example.com ```_

Erweiterte Nachrichtenoptionen

```bash

Include related domains

amass intel -org "Example Corporation" -max-depth 3

Active intelligence gathering

amass intel -active -org "Example Corporation"

Passive intelligence only

amass intel -passive -org "Example Corporation"

Output to file

amass intel -org "Example Corporation" -o intel_results.txt ```_

Brute Force und Wordlists

DNS Brute Kraft

```bash

Enable brute force with default wordlist

amass enum -brute -d example.com

Custom wordlist

amass enum -brute -w custom_wordlist.txt -d example.com

Multiple wordlists

amass enum -brute -w wordlist1.txt,wordlist2.txt -d example.com

Minimum word length for brute force

amass enum -brute -min-for-recursive 3 -d example.com ```_

Englische Sprache

```bash

Common wordlist locations

/usr/share/amass/wordlists/ /usr/share/wordlists/amass/ ~/.config/amass/wordlists/

Create custom wordlist

echo -e "api\ndev\ntest\nstaging\nwww\nmail\nftp" > custom_subs.txt

Use SecLists wordlists

amass enum -brute -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -d example.com ```_

Netzwerk Mapping und Visualisierung

Network Discovery

```bash

Discover network infrastructure

amass enum -d example.com -ip -cidr 192.168.1.0/24

Include ASN information

amass enum -d example.com -asn

Discover related networks

amass intel -org "Example Corporation" -cidr 10.0.0.0/8

Map network relationships

amass enum -d example.com -ip -asn -cidr 192.168.0.0/16 ```_

Visualisierung

```bash

Generate DOT file for Graphviz

amass viz -d3 -d example.com

Generate Gephi file

amass viz -gephi -d example.com

Generate Maltego file

amass viz -maltego -d example.com

Generate visualization from database

amass viz -d3 -d example.com -db amass.db ```_

Datenbank-Betriebe

```bash

Import previous results

amass db -import results.json

Export database results

amass db -export results.json -d example.com

Show database statistics

amass db -show -d example.com

List domains in database

amass db -list

Delete domain from database

amass db -delete -d example.com ```_

Erweiterte Techniken

Wiederkehrende Zählung

```bash

Recursive subdomain discovery

amass enum -d example.com -recursive

Set recursion depth

amass enum -d example.com -recursive -max-depth 5

Minimum subdomain length for recursion

amass enum -d example.com -recursive -min-for-recursive 2 ```_

Grenzwerte und Leistung

```bash

Limit DNS queries per minute

amass enum -d example.com -max-dns-queries 500

Set number of concurrent goroutines

amass enum -d example.com -max-flow 1000

Adjust timing between requests

amass enum -d example.com -freq 100ms

Set overall timeout

amass enum -d example.com -timeout 60 ```_

Filter und Anwendungsbereich

```bash

Include subdomains matching pattern

amass enum -d example.com -include "..prod.."

Exclude subdomains matching pattern

amass enum -d example.com -exclude "..test.."

Blacklist specific subdomains

echo -e "test.example.com\ndev.example.com" > blacklist.txt amass enum -d example.com -blacklist blacklist.txt

Include only specific TLDs

amass enum -d example.com -include ".*.com$" ```_

Integration mit anderen Tools

Nmap Integration

```bash

Export subdomains for Nmap scanning

amass enum -d example.com -o subdomains.txt nmap -iL subdomains.txt -p 80,443,8080,8443 --open

Combine with Nmap for service discovery

amass enum -d example.com -ip|grep -oE "\b([0-9]\\{1,3\\}.)\\{3\\}[0-9]\\{1,3\\}\b"|sort -u > ips.txt nmap -iL ips.txt -sV -sC ```_

Nucles Integration

```bash

Use Amass results with Nuclei

amass enum -d example.com -o subdomains.txt nuclei -l subdomains.txt -t /path/to/nuclei-templates/

Combine with httpx for live subdomain detection

amass enum -d example.com|httpx -silent|nuclei -t /path/to/nuclei-templates/ ```_

Subfinder Integration

```bash

Combine Amass with Subfinder

amass enum -passive -d example.com -o amass_results.txt subfinder -d example.com -o subfinder_results.txt cat amass_results.txt subfinder_results.txt|sort -u > combined_results.txt ```_

Automatisierungsskripte

Umfassendes Reconnaissance Script

```bash

!/bin/bash

DOMAIN=\(1 OUTPUT_DIR="amass_recon_\)(date +%Y%m%d_%H%M%S)"

if [ -z "$DOMAIN" ]; then echo "Usage: $0 " exit 1 fi

mkdir -p $OUTPUT_DIR

echo "[+] Starting comprehensive reconnaissance for $DOMAIN"

Passive enumeration

echo "[+] Running passive enumeration..." amass enum -passive -d \(DOMAIN -o "\)OUTPUT_DIR/passive_subdomains.txt"

Active enumeration with brute force

echo "[+] Running active enumeration with brute force..." amass enum -active -brute -d \(DOMAIN -o "\)OUTPUT_DIR/active_subdomains.txt"

Intelligence gathering

echo "[+] Gathering intelligence..." amass intel -d \(DOMAIN -o "\)OUTPUT_DIR/intelligence.txt"

Combine results

echo "[+] Combining results..." cat "\(OUTPUT_DIR/passive_subdomains.txt" "\)OUTPUT_DIR/active_subdomains.txt"|sort -u > "$OUTPUT_DIR/all_subdomains.txt"

Generate visualization

echo "[+] Generating visualization..." amass viz -d3 -d \(DOMAIN -o "\)OUTPUT_DIR/visualization.html"

Extract IP addresses

echo "[+] Extracting IP addresses..." grep -oE "\b([0-9]\\{1,3\\}.)\\{3\\}[0-9]\\{1,3\\}\b" "\(OUTPUT_DIR/all_subdomains.txt"|sort -u > "\)OUTPUT_DIR/ip_addresses.txt"

echo "[+] Reconnaissance complete. Results saved in $OUTPUT_DIR/" echo "[+] Found \((wc -l ``< "\)OUTPUT_DIR/all_subdomains.txt") unique subdomains" echo "[+] Found \((wc -l < "\)OUTPUT_DIR/ip_addresses.txt") unique IP addresses" ```_

Continuous Monitoring Script

```bash

!/bin/bash

DOMAIN=\(1 INTERVAL=3600 # 1 hour BASELINE_FILE="baseline_\)DOMAIN.txt" ALERT_EMAIL="security@company.com"

if [ -z "$DOMAIN" ]; then echo "Usage: $0 ``" exit 1 fi

Create baseline if it doesn't exist

if [ ! -f "$BASELINE_FILE" ]; then echo "[+] Creating baseline for $DOMAIN" amass enum -passive -d $DOMAIN -o $BASELINE_FILE fi

while true; do TIMESTAMP=\((date +%Y%m%d_%H%M%S) CURRENT_FILE="current_\)\\{DOMAIN\\}_$\\{TIMESTAMP\\}.txt"

echo "[+] Running enumeration at $(date)"
amass enum -passive -d $DOMAIN -o $CURRENT_FILE

# Compare with baseline
NEW_SUBDOMAINS=$(comm -13 <(sort $BASELINE_FILE) <(sort $CURRENT_FILE))

if [ ! -z "$NEW_SUBDOMAINS" ]; then
    echo "[!] New subdomains discovered:"
    echo "$NEW_SUBDOMAINS"

    # Send alert email
    echo "New subdomains discovered for $DOMAIN: $NEW_SUBDOMAINS"|\
    mail -s "Amass Alert: New Subdomains for $DOMAIN" $ALERT_EMAIL

    # Update baseline
    cat $BASELINE_FILE $CURRENT_FILE|sort -u > temp_baseline.txt
    mv temp_baseline.txt $BASELINE_FILE
fi

# Clean up
rm $CURRENT_FILE

echo "[+] Sleeping for $INTERVAL seconds..."
sleep $INTERVAL

done ```_

Multi-Domain-Bewertung

```bash

!/bin/bash

DOMAINS_FILE=\(1 OUTPUT_BASE="multi_domain_\)(date +%Y%m%d_%H%M%S)"

if [ -z "$DOMAINS_FILE" ]; then echo "Usage: $0 " exit 1 fi

mkdir -p $OUTPUT_BASE

echo "[+] Starting multi-domain assessment"

while read domain; do if [ ! -z "\(domain" ]; then echo "[+] Processing \(domain" domain_dir="\)OUTPUT_BASE/\)domain" mkdir -p "$domain_dir"

    # Passive enumeration
    amass enum -passive -d $domain -o "$domain_dir/passive.txt"

    # Active enumeration
    amass enum -active -d $domain -o "$domain_dir/active.txt"

    # Intelligence gathering
    amass intel -d $domain -o "$domain_dir/intel.txt"

    # Combine results
    cat "$domain_dir/passive.txt" "$domain_dir/active.txt"|sort -u > "$domain_dir/all_subdomains.txt"

    echo "[+] Found $(wc -l < "$domain_dir/all_subdomains.txt") subdomains for $domain"
fi

done < $DOMAINS_FILE

Generate summary report

echo "[+] Generating summary report..." echo "Multi-Domain Assessment Summary" > "\(OUTPUT_BASE/summary.txt" echo "===============================" >> "\)OUTPUT_BASE/summary.txt" echo "" >> "$OUTPUT_BASE/summary.txt"

for domain_dir in \(OUTPUT_BASE/*/; do domain=\)(basename "\(domain_dir") if [ -f "\)domain_dir/all_subdomains.txt" ]; then count=\((wc -l < "\)domain_dir/all_subdomains.txt") echo "$domain: \(count subdomains" >> "\)OUTPUT_BASE/summary.txt" fi done

echo "[+] Multi-domain assessment complete. Results in $OUTPUT_BASE/" ```_

Leistungsoptimierung

Ressourcenmanagement

```bash

Optimize for large-scale enumeration

amass enum -d example.com -max-dns-queries 2000 -max-flow 2000

Reduce memory usage

amass enum -d example.com -passive -max-dns-queries 500

Optimize for speed

amass enum -d example.com -active -brute -max-dns-queries 5000 -timeout 10 ```_

Konfiguration Tuning

```bash

Create performance-optimized config

cat > ~/.config/amass/config.ini << EOF [scope] [scope.domains] example.com = true

[scope.blacklisted] test.example.com = true

[bruteforce] enabled = true recursive = true min_for_recursive = 1

[alterations] enabled = true minimum = 1

[settings] max_dns_queries = 2000 max_flow = 2000 EOF ```_

Fehlerbehebung

Gemeinsame Themen

```bash

DNS resolution issues

amass enum -d example.com -r 8.8.8.8,1.1.1.1

Rate limiting issues

amass enum -d example.com -max-dns-queries 100 -freq 1s

Memory issues

amass enum -d example.com -passive -max-flow 500

Timeout issues

amass enum -d example.com -timeout 120 ```_

Debug Mode

```bash

Enable debug output

amass enum -d example.com -debug

Verbose logging

amass enum -d example.com -v -log debug.log

Show data sources being used

amass enum -d example.com -src -v ```_

Konfigurationsvalidierung

```bash

Test configuration file

amass enum -config ~/.config/amass/config.ini -list

Validate API keys

amass enum -d example.com -src -v|grep -i "api|key|auth"

Check data source availability

amass enum -list|grep -E "(Available|Enabled)" ```_

Best Practices

Strategie der Aufklärung

  1. **Start mit passiver Aufzählung*: Minimieren Sie das Erkennungsrisiko
  2. ** Verwenden Sie mehrere Datenquellen*: Kombinieren Sie verschiedene Intelligenzquellen
  3. Implementierungsquote: Überwältigende Zielinfrastruktur vermeiden
  4. Regular Monitoring: Kontinuierliche Subdomainüberwachung
  5. Validate Ergebnisse: Verify entdeckte Vermögenswerte sind legitim

Operationelle Sicherheit

```bash

Use VPN or proxy for reconnaissance

export HTTP_PROXY=http://proxy:8080 export HTTPS_PROXY=http://proxy:8080 amass enum -d example.com

Rotate API keys

Use different API keys for different assessments

Implement delays

amass enum -d example.com -freq 2s -max-dns-queries 100 ```_

Datenverwaltung

```bash

Regular database maintenance

amass db -show amass db -delete -d old_domain.com

Backup important results

cp ~/.config/amass/amass.db backup_$(date +%Y%m%d).db

Export results in multiple formats

amass db -export json_results.json -d example.com amass viz -d3 -d example.com -o visualization.html ```_

Ressourcen

--

*Dieses Betrügereiblatt bietet eine umfassende Referenz für die Verwendung von OWASP Amass. Stellen Sie immer sicher, dass Sie eine ordnungsgemäße Autorisierung haben, bevor Sie Netzwerk-Erklärung und Asset-Erkennung durchführen. *