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
- *Begrenzung durch Quellen * ```bash # Reduce concurrency subfinder -d example.com -sc 5
# Add delay between requests subfinder -d example.com -delay 2
```_
- API Schlüsselfragen ```bash # Verify API key configuration cat $HOME/.config/subfinder/config.yaml
# Test specific source subfinder -d example.com -sources censys
```_
- *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
```_
- *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. *