Vai al contenuto

__FRONTMATTER_61_# Subfinder Subdomain Enumeration Cheat Sheet

Panoramica

Subfinder è un potente strumento di scoperta subdominio sviluppato da Project Discovery che scopre sottodomini validi per i siti web utilizzando fonti online passive. Ha una semplice architettura modulare ed è ottimizzata per velocità ed efficienza. Subfinder utilizza varie fonti pubbliche e private per trovare sottodomini, tra cui motori di ricerca, aggregatori DNS e registri di trasparenza dei certificati.

Che cosa imposta Subfinder oltre ad altri strumenti di enumerazione subdominio è la sua vasta copertura sorgente e la sua capacità di utilizzare le chiavi API per i risultati migliorati. Utilizzando più sorgenti di dati contemporaneamente, Subfinder può scoprire sottodomini che potrebbero essere mancati da altri strumenti. È progettato per essere facilmente integrato nei flussi di lavoro di sicurezza e può essere utilizzato in combinazione con altri strumenti per una ricognizione completa.

Subfinder è ampiamente usato da ricercatori di sicurezza, cacciatori di taglie di bug, e tester di penetrazione come il primo passo in ricognizione per mappare la superficie di attacco di un'organizzazione target. Il suo approccio passivo significa che non genera traffico sospetto al bersaglio, rendendolo adatto per la ricognizione furtiva.

Installazione

Using Go

# Install using Go (requires Go 1.20 or later)
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

# Verify installation
subfinder -version

Using Docker

# Pull the latest Docker image
docker pull projectdiscovery/subfinder:latest

# Run Subfinder using Docker
docker run -it projectdiscovery/subfinder:latest -h

Using Homebrew (macOS)

# Install using Homebrew
brew install subfinder

# Verify installation
subfinder -version

Using PDTM (Project Discovery Tools Manager)

# 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

On Kali Linux

# Install using apt
sudo apt install subfinder

# Verify installation
subfinder -version

Uso di base

Enumerating Subdomains

# 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

Opzioni di uscita

# 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

Filtro di base

# 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

Uso avanzato

Selezione sorgente

# 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

Configurazione API

# 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

Enumerazione ricorsiva

# Enable recursive subdomain discovery
subfinder -d example.com -recursive

# Set maximum recursion depth
subfinder -d example.com -recursive -max-depth 2

DNS Resolution

# Resolve discovered subdomains
subfinder -d example.com -resolve

# Use custom resolvers
subfinder -d example.com -resolve -r resolvers.txt

Enumerazione attiva

# Enable active enumeration
subfinder -d example.com -active

# Set timeout for active enumeration
subfinder -d example.com -active -timeout 10

Ottimizzazione delle prestazioni

Concurrency and Rate Limiting

# 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

Opzioni timeout

# Set timeout for passive sources
subfinder -d example.com -timeout 30

# Set timeout for active resolution
subfinder -d example.com -resolve -timeout-resolve 5

Ottimizzazione per grandi scansioni

# Use all sources for comprehensive results
subfinder -d example.com -all

# Increase concurrency for faster scanning
subfinder -d example.com -sc 50 -hc 50

Integrazione con altri strumenti

Pipeline con HTTPX

# 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 with Nuclei

# 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 with Naabu

# 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

Personalizzazione dell'uscita

Formato di uscita personalizzato

# 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

Filtro dell'uscita

# 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

Filtro avanzato

# 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 Configurazione chiave

Configurare le chiavi API

Subfinder supporta vari provider API. Ecco come configurarli:

# 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

Providers API supportati

Tabella_62_

Risoluzione dei problemi

Questioni comuni

  1. ** Limitare le fonti* * Traduzione:

  2. API Questioni chiave Traduzione:

  3. ** Problemi di risoluzione del DNS** Traduzione:

  4. ** Problemi di memoria ** Traduzione:

Debugging

# Enable verbose mode
subfinder -d example.com -v

# Show debug information
subfinder -d example.com -debug

# Check source statistics
subfinder -d example.com -stats

Configurazione

Configuration File

Subfinder utilizza un file di configurazione situato in $HOME/.config/subfinder/config.yaml. È possibile personalizzare varie impostazioni in questo file:

# 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

Variabili ambientali

# 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

Riferimento

Opzioni di riga di comando

Tabella_63_

Fonti disponibili

Tabella_64_

Risorse


*Questo foglio di scacchi fornisce un riferimento completo per l'utilizzo di Subfinder, dall'enumerazione di base al filtraggio avanzato e l'integrazione con altri strumenti. Per le informazioni più aggiornate, consultare sempre la documentazione ufficiale. *