Zum Inhalt

Subfinder Subdomain Enumeration Cheat Sheet

Überblick

Subfinder ist ein leistungsstarkes Subdomain-Entdeckungstool, das von Project Discovery entwickelt wurde und valide Subdomains für Websites mit passiven Online-Quellen entdeckt. Es verfügt über eine einfache modulare Architektur und ist für Geschwindigkeit und Effizienz optimiert. Subfinder verwendet verschiedene öffentliche und private Quellen, um Subdomains zu finden, einschließlich Suchmaschinen, DNS-Aggregatoren und Zertifikat Transparenz Protokolle.

Was ist los? Subfinder abgesehen von anderen Subdomain-Enumerations-Tools ist seine umfangreiche Quellenabdeckung und seine Fähigkeit, API-Schlüssel für verbesserte Ergebnisse zu verwenden. Durch die gleichzeitige Nutzung mehrerer Datenquellen kann Subfinder Subdomains entdecken, die von anderen Tools verfehlt werden könnten. Es ist so konzipiert, dass sie leicht in Sicherheits-Workflows integriert werden kann und in Kombination mit anderen Tools zur umfassenden Aufklärung eingesetzt werden kann.

Subfinder wird von Sicherheitsforschern, Bug-Bounty-Jägern und Penetrations-Testern als ersten Schritt in der Aufklärung verwendet, um die Angriffsfläche einer Zielorganisation abzubilden. Sein passiver Ansatz bedeutet, dass es nicht verdächtige Traffic auf das Ziel erzeugt, so dass es für die stehlende Aufklärung geeignet ist.

Installation

Verwenden Sie Go

```bash

Install using Go (requires Go 1.20 or later)

go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

Verify installation

subfinder -version ```_

Verwendung von Docker

```bash

Pull the latest Docker image

docker pull projectdiscovery/subfinder:latest

Run Subfinder using Docker

docker run -it projectdiscovery/subfinder:latest -h ```_

Verwendung von Homebrew (macOS)

```bash

Install using Homebrew

brew install subfinder

Verify installation

subfinder -version ```_

Verwendung von PDTM (Projekt Discovery Tools Manager)

```bash

Install PDTM first if not already installed

go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest

Install Subfinder using PDTM

pdtm -i subfinder

Verify installation

subfinder -version ```_

Auf Kali Linux

```bash

Install using apt

sudo apt install subfinder

Verify installation

subfinder -version ```_

Basisnutzung

Aufzählung von Subdomains

```bash

Enumerate subdomains for a single domain

subfinder -d example.com

Enumerate subdomains for multiple domains

subfinder -d example.com,hackerone.com

Enumerate subdomains from a list of domains

subfinder -dL domains.txt ```_

Ausgabeoptionen

```bash

Save results to a file

subfinder -d example.com -o results.txt

Output in JSON format

subfinder -d example.com -oJ -o results.json

Output in JSONL format

subfinder -d example.com -oJ -nW -o results.jsonl

Output in CSV format

subfinder -d example.com -oC -o results.csv

Silent mode (only subdomains)

subfinder -d example.com -silent ```_

Grundfilterung

```bash

Remove wildcard subdomains

subfinder -d example.com -nW

Exclude specific subdomains

subfinder -d example.com -exclude-domains dev.example.com,stage.example.com

Match specific subdomains

subfinder -d example.com -match-domain api.example.com ```_

Erweiterte Nutzung

Quelle Auswahl

```bash

List all available sources

subfinder -ls

Use specific sources

subfinder -d example.com -sources censys,shodan,virustotal

Exclude specific sources

subfinder -d example.com -exclude-sources alienvault,threatcrowd ```_

API Konfiguration

```bash

Set API keys interactively

subfinder -set-config

Set specific API key

subfinder -set-config VirusTotal=APIKEY

Use a custom configuration file

subfinder -d example.com -config config.yaml ```_

Wiederkehrende Zählung

```bash

Enable recursive subdomain discovery

subfinder -d example.com -recursive

Set maximum recursion depth

subfinder -d example.com -recursive -max-depth 2 ```_

DNS-Resolution

```bash

Resolve discovered subdomains

subfinder -d example.com -resolve

Use custom resolvers

subfinder -d example.com -resolve -r resolvers.txt ```_

Aktive Zählung

```bash

Enable active enumeration

subfinder -d example.com -active

Set timeout for active enumeration

subfinder -d example.com -active -timeout 10 ```_

Leistungsoptimierung

Concurrency und Rate Limiting

```bash

Set source concurrency (default: 10)

subfinder -d example.com -sc 20

Set host concurrency (default: 10)

subfinder -d example.com -hc 20

Set rate limit

subfinder -d example.com -rate-limit 100 ```_

Timeout Optionen

```bash

Set timeout for passive sources

subfinder -d example.com -timeout 30

Set timeout for active resolution

subfinder -d example.com -resolve -timeout-resolve 5 ```_

Optimierung für große Scans

```bash

Use all sources for comprehensive results

subfinder -d example.com -all

Increase concurrency for faster scanning

subfinder -d example.com -sc 50 -hc 50 ```_

Integration mit anderen Tools

Pipeline mit HTTPX

```bash

Find subdomains and probe for HTTP services

subfinder -d example.com -silent|httpx -silent

Find subdomains, resolve them, and probe for HTTP services

subfinder -d example.com -silent -resolve|httpx -silent ```_

Pipeline mit Nuclei

```bash

Find subdomains and scan for vulnerabilities

subfinder -d example.com -silent|httpx -silent|nuclei -t cves/

Find subdomains with specific patterns and scan for vulnerabilities

subfinder -d example.com -silent|grep api|httpx -silent|nuclei -t apis/ ```_

Pipeline mit Naabu

```bash

Find subdomains and scan for open ports

subfinder -d example.com -silent|naabu -silent

Find subdomains, scan for open ports, and probe for HTTP services

subfinder -d example.com -silent|naabu -silent|httpx -silent ```_

Produktionsanpassung

Zollausgabe Format

```bash

Output only specific fields in JSON format

subfinder -d example.com -oJ|jq '.host'

Count total subdomains

subfinder -d example.com -silent|wc -l

Sort output alphabetically

subfinder -d example.com -silent|sort ```_

Filterausgang

```bash

Filter subdomains by pattern

subfinder -d example.com -silent|grep api

Filter out specific patterns

subfinder -d example.com -silent|grep -v dev

Find unique root subdomains

subfinder -d example.com -silent|awk -F. '\\{print \((NF-1)"."\)NF\\}'|sort -u ```_

Erweiterte Filterung

```bash

Filter by subdomain level

subfinder -d example.com -silent|awk -F. 'NF==3' # 2nd level subdomains subfinder -d example.com -silent|awk -F. 'NF==4' # 3rd level subdomains subfinder -d example.com -silent|awk -F. 'NF>=5' # Deep level subdomains

Filter by specific patterns

subfinder -d example.com -silent|grep -E '(api|dev|stage|test)'

Exclude common development subdomains

subfinder -d example.com -silent|grep -v -E '(dev|stage|test|uat)' ```_

API Schlüsselkonfiguration

API konfigurieren Schlüssel

Subfinder unterstützt verschiedene API-Anbieter. So konfigurieren Sie diese:

```bash

Create a configuration file

mkdir -p $HOME/.config/subfinder cat > $HOME/.config/subfinder/config.yaml << EOF resolvers: - 1.1.1.1 - 8.8.8.8 sources: - alienvault - censys - shodan - virustotal binaryedge: - 0bf8919b-aab9-42e4-9574-d3b639324597 censys: - ac244e2f-b635-4581-878a-33f4e79a2c13:dd510d6e-1b6e-4655-83f6-f347b363def9 certspotter: - 0412e8d1-5a86-47b4-a1a6-2a3b4a104a1a github: - ghp_16C7e42F292c6912E7710c838347Ae178B4a passivetotal: - sample-email@user.com:sample-password securitytrails: - 9e56ef28-540b-4e0c-a51e-aba1f0d2d4d3 shodan: - AAAAClP1bJJSRMEYJazgwhJKrggRwKA virustotal: - 6f5e5b82a6b5a61951c6a659d4a4522b34b3950d1e35e93131a7f63a3c352553 EOF ```_

Unterstützte API Provider

Provider Description
BinaryEdge Search for internet-exposed devices
Censys Search engine for internet-connected devices
Certspotter Certificate transparency monitoring
GitHub Code hosting platform
PassiveTotal Threat intelligence platform
SecurityTrails DNS and domain data provider
Shodan Search engine for internet-connected devices
VirusTotal File and URL analysis service

Fehlerbehebung

Gemeinsame Themen

  1. **Begrenzung durch Quellen* * ```bash # Reduce concurrency subfinder -d example.com -sc 5

# Add delay between requests subfinder -d example.com -delay 2 ```_

  1. API Schlüsselfragen ```bash # Verify API key configuration cat $HOME/.config/subfinder/config.yaml

# Test specific source subfinder -d example.com -sources censys ```_

  1. **DNS-Resolutionsfragen* ```bash # Use custom resolvers subfinder -d example.com -resolve -r resolvers.txt

# Increase resolution timeout subfinder -d example.com -resolve -timeout-resolve 10 ```_

  1. **Memory Issues* bash # Process domains one by one for domain in $(cat domains.txt); do subfinder -d $domain -o "$domain-subs.txt"; done_

Debugging

```bash

Enable verbose mode

subfinder -d example.com -v

Show debug information

subfinder -d example.com -debug

Check source statistics

subfinder -d example.com -stats ```_

Konfiguration

Datei konfigurieren

Subfinder verwendet eine Konfigurationsdatei unter $HOME/.config/subfinder/config.yaml_. Sie können verschiedene Einstellungen in dieser Datei anpassen:

```yaml

Example configuration file

resolvers: - 1.1.1.1 - 8.8.8.8 sources: - alienvault - censys - shodan - virustotal

API keys for different providers

binaryedge: - API_KEY censys: - API_ID:API_SECRET ```_

Umweltvariablen

```bash

Set Subfinder configuration via environment variables

export SUBFINDER_CONFIG_PATH=/path/to/config.yaml export SUBFINDER_SOURCES=censys,shodan,virustotal export SUBFINDER_RESOLVERS=1.1.1.1,8.8.8.8 ```_

Sachgebiet

Kommandozeilenoptionen

Flag Description
-d, -domain Domain to find subdomains for
-dL, -domain-list File containing list of domains
-o, -output File to write output to
-oJ Write output in JSON format
-oC Write output in CSV format
-silent Show only subdomains in output
-v, -verbose Show verbose output
-ls, -list-sources List all available sources
-s, -sources Sources to use for enumeration
-es, -exclude-sources Sources to exclude from enumeration
-recursive Recursive subdomain discovery
-max-depth Maximum recursion depth
-nW, -no-wildcards Remove wildcard subdomains
-exclude-domains Subdomains to exclude from enumeration
-match-domain Subdomains to match in enumeration
-r, -resolvers File containing list of resolvers
-resolve Resolve discovered subdomains
-active Enable active subdomain enumeration
-timeout Timeout for passive sources in seconds
-timeout-resolve Timeout for resolver requests in seconds
-sc, -source-concurrency Number of concurrent sources
-hc, -host-concurrency Number of concurrent hosts
-rate-limit Maximum number of HTTP requests per second
-all Use all sources for enumeration
-config Path to configuration file
-set-config Set configuration values
-version Show Subfinder version

Verfügbare Quellen

Source Description API Key Required
Alienvault Open Threat Exchange No
Anubis Subdomain data from Anubis No
Archiveis Archive.is URL archive No
Binaryedge Internet scanning data Yes
BufferOver DNS data No
Censys Internet scanning data Yes
CertSpotter Certificate transparency logs Yes (for better results)
Chaos Project Discovery's Chaos dataset Yes
Commoncrawl Web crawl data No
DNSDB Passive DNS database Yes
DNSRepo DNS records repository No
Entrust Certificate transparency logs No
FacebookCT Facebook's certificate transparency logs No
GitHub Code search Yes (for better results)
Intelx Intelligence X data Yes
PassiveTotal RiskIQ's passive DNS data Yes
Rapiddns DNS records database No
Riddler DNS records search No
SecurityTrails DNS records database Yes
Shodan Internet scanning data Yes
ThreatBook Threat intelligence data Yes
ThreatMiner Threat intelligence data No
URLScan URL scanning service No
VirusTotal Security service for files and URLs Yes
Waybackarchive Internet Archive's Wayback Machine No
ZoomEye Cyberspace search engine Yes

Ressourcen

  • [offizielle Dokumentation](LINK_3_
  • [GitHub Repository](LINK_3_
  • [Project Discovery Discord](LINK_3_

--

*Dieses Betrügereiblatt bietet eine umfassende Referenz für die Verwendung von Subfinder, von der Grundaufzählung bis zur fortgeschrittenen Filterung und Integration mit anderen Werkzeugen. Für die aktuellsten Informationen finden Sie immer die offizielle Dokumentation. *