Aller au contenu

Feuille de chauffage du sous-domaine d'énumération

Aperçu général

Subfinder est un puissant outil de découverte sous-domaine développé par Project Discovery qui découvre des sous-domaines valides pour les sites Web utilisant des sources en ligne passives. Il a une architecture modulaire simple et est optimisé pour la vitesse et l'efficacité. Subfinder utilise diverses sources publiques et privées pour trouver des sous-domaines, y compris les moteurs de recherche, les agrégateurs DNS et les registres de transparence des certificats.

Quels ensembles Subfinder à part d'autres outils de dénombrement sous-domaine est sa couverture de source étendue et sa capacité à utiliser les clés API pour améliorer les résultats. En exploitant simultanément plusieurs sources de données, Subfinder peut découvrir des sous-domaines qui pourraient être manqués par d'autres outils. Il est conçu pour être facilement intégré dans les flux de travail de sécurité et peut être utilisé en combinaison avec d'autres outils pour une reconnaissance complète.

Subfinder est largement utilisé par les chercheurs en sécurité, les chasseurs de primes et les testeurs de pénétration comme première étape de reconnaissance pour cartographier la surface d'attaque d'une organisation cible. Son approche passive signifie qu'elle ne génère pas de trafic suspect vers la cible, ce qui la rend apte à la reconnaissance furtive.

Installation

Utilisation de 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

Utilisation de Docker

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

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

### Utilisation de Homebrew (macOS)

```bash
# Install using Homebrew
brew install subfinder

# Verify installation
subfinder -version
```_

### Utilisation de PDTM (Project 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

Sur Kali Linux

# Install using apt
sudo apt install subfinder

# Verify installation
subfinder -version

Utilisation de base

Sous-domaines de recensement

# 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

Options de sortie

# 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

Filtrage de 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

Utilisation avancée

Sélection des sources

# 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

Configuration d'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

Énumération récursive

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

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

Résolution DNS

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

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

Énumération active

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

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

Optimisation des performances

Concurrence et limitation des taux

# 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

Options de délai

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

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

Optimisation pour les grands balayages

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

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

Intégration avec d'autres outils

Pipeline avec 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 avec 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 avec 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

Personnalisation des sorties

Format de sortie personnalisé

# 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

Filtrage Sortie

# 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

Filtre avancé

# 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 Configuration de la clé

Configuration de l'API Clés

Subfinder prend en charge différents fournisseurs d'API. Voici comment les configurer :

# 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

Fournisseurs d'API pris en charge

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

Dépannage

Questions communes

  1. ** Limite des taux par source* *
   # Reduce concurrency
   subfinder -d example.com -sc 5

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

2. **Les principaux enjeux de l'API**
```bash
   # Verify API key configuration
   cat $HOME/.config/subfinder/config.yaml

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

3. **Questions relatives à la résolution du DNS**
```bash
   # Use custom resolvers
   subfinder -d example.com -resolve -r resolvers.txt

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

4. **Questions de mémoire**
```bash
   # Process domains one by one
   for domain in $(cat domains.txt); do subfinder -d $domain -o "$domain-subs.txt"; done
   ```

### Déboguement

```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

Configuration

Fichier de configuration

Subfinder utilise un fichier de configuration situé à $HOME/.config/subfinder/config.yaml. Vous pouvez personnaliser différents paramètres dans ce fichier :

# 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

Variables d'environnement

# 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

Référence

Options de ligne de commande

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

Sources disponibles

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

Ressources


*Cette feuille de triche fournit une référence complète pour l'utilisation de Subfinder, du dénombrement de base au filtrage avancé et l'intégration avec d'autres outils. Pour les informations les plus récentes, veuillez toujours consulter la documentation officielle. *