FRONTMATTER_83_# Foglio di Cheat di Scannerabilità di Nuclei¶
Panoramica¶
Nuclei è uno scanner di vulnerabilità veloce e basato su modelli sviluppato da Project Discovery. Si concentra sulla fornitura di ampia configurabilità, massiccia estensabilità e facilità d'uso. Nuclei utilizza modelli basati su YAML per definire la logica di rilevamento delle vulnerabilità, rendendolo altamente personalizzabile e guidato dalla comunità. Lo scanner è progettato per avere zero falsi positivi utilizzando modelli che definiscono con precisione la metodologia di rilevamento.
Ciò che distingue Nuclei dagli altri scanner di vulnerabilità è il suo ecosistema di modelli. Il repository [nuclei-templates](URL_77_ contiene migliaia di modelli pronti all'uso per rilevare vari problemi di sicurezza, dalle vulnerabilità comuni alle complesse configurazioni di sicurezza. Questo approccio consente ai professionisti della sicurezza di condividere i loro metodi di rilevamento e beneficiare della conoscenza collettiva della comunità di sicurezza.
Nuclei può eseguire la scansione di vari obiettivi, tra cui applicazioni web, API, reti, DNS e altro ancora. La sua architettura modulare consente una facile estensione per supportare nuovi protocolli e tipi di vulnerabilità. Lo strumento è ampiamente utilizzato da ricercatori di sicurezza, cacciatori di taglie di bug, e tester di penetrazione per automatizzare il rilevamento di vulnerabilità su più obiettivi in modo efficiente.
Installazione¶
Using Go¶
# Install using Go (requires Go 1.20 or later)
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Verify installation
nuclei -version
Using Docker¶
# Pull the latest Docker image
docker pull projectdiscovery/nuclei:latest
# Run Nuclei using Docker
docker run -it projectdiscovery/nuclei:latest -h
Using Homebrew (macOS)¶
Using PDTM (Project Discovery Tools Manager)¶
# Install PDTM first if not already installed
go install -v github.com/projectdiscovery/pdtm/cmd/pdtm@latest
# Install Nuclei using PDTM
pdtm -i nuclei
# Verify installation
nuclei -version
On Kali Linux¶
Uso di base¶
Scansione di un obiettivo singolo¶
# Scan a single URL
nuclei -u https://example.com
# Scan with increased verbosity
nuclei -u https://example.com -v
# Scan with debug information
nuclei -u https://example.com -debug
Scanning Multiple Targets¶
# Scan multiple URLs
nuclei -u https://example.com,https://test.com
# Scan from a list of URLs
nuclei -l urls.txt
# Scan from STDIN
cat urls.txt|nuclei
Selezione dei modelli¶
# Scan with specific template
nuclei -u https://example.com -t cves/2021/CVE-2021-44228.yaml
# Scan with multiple templates
nuclei -u https://example.com -t cves/2021/CVE-2021-44228.yaml,cves/2021/CVE-2021-40438.yaml
# Scan with template directory
nuclei -u https://example.com -t cves/
# Scan with tags
nuclei -u https://example.com -tags cve,oast
# Exclude templates by tags
nuclei -u https://example.com -exclude-tags dos,fuzz
Opzioni di uscita¶
# Save results to a file
nuclei -u https://example.com -o results.txt
# Save results in JSON format
nuclei -u https://example.com -o results.json -j
# Save results in SARIF format
nuclei -u https://example.com -o results.sarif -sarif
# Save results in Markdown format
nuclei -u https://example.com -o results.md -markdown
Rate Limiting¶
# Limit requests per second
nuclei -u https://example.com -rate-limit 100
# Limit requests per minute
nuclei -u https://example.com -rate-limit-minute 300
# Bulk size for concurrent requests
nuclei -u https://example.com -bulk-size 25
# Concurrency for template execution
nuclei -u https://example.com -c 50
Uso avanzato¶
Severity Filtering¶
# Scan only for critical severity issues
nuclei -u https://example.com -severity critical
# Scan for high and critical severity issues
nuclei -u https://example.com -severity high,critical
# Exclude low severity issues
nuclei -u https://example.com -exclude-severity low,info
Aggiornamenti automatici dei modelli¶
# Update templates to the latest version
nuclei -update-templates
# Update to a specific templates directory
nuclei -update-directory /path/to/templates
# Update templates and exit
nuclei -update-templates -ut
Opzioni proxy e di rete¶
# Use a proxy for HTTP requests
nuclei -u https://example.com -proxy http://127.0.0.1:8080
# Use SOCKS5 proxy
nuclei -u https://example.com -proxy socks5://127.0.0.1:1080
# Follow redirects
nuclei -u https://example.com -follow-redirects
# Follow host redirects
nuclei -u https://example.com -follow-host-redirects
Autenticazione¶
# Basic authentication
nuclei -u https://example.com -auth-type basic -auth-user username -auth-pass password
# Bearer token authentication
nuclei -u https://example.com -H "Authorization: Bearer YOUR_TOKEN"
# Cookie-based authentication
nuclei -u https://example.com -H "Cookie: session=123456"
Interactsh Integration¶
# Enable Interactsh for OOB testing
nuclei -u https://example.com -interactsh-server https://your-interactsh-server.com
# Disable Interactsh
nuclei -u https://example.com -no-interactsh
# Set Interactsh polling and timeout
nuclei -u https://example.com -interactsh-server https://your-interactsh-server.com -interactions-poll-duration 60 -interactions-cooldown-period 30
Esecuzione del flusso di lavoro¶
# Execute a workflow
nuclei -u https://example.com -w workflows/wordpress-workflow.yaml
# Execute multiple workflows
nuclei -u https://example.com -w workflows/wordpress-workflow.yaml,workflows/jira-workflow.yaml
Supporto del browser senza testa¶
# Enable headless browser support
nuclei -u https://example.com -headless
# Set browser path
nuclei -u https://example.com -headless -browser-path /path/to/chrome
# Set page timeout
nuclei -u https://example.com -headless -page-timeout 20
Gestione dei modelli¶
Struttura dei modelli¶
I modelli Nuclei sono file YAML con la seguente struttura di base:
id: template-id
info:
name: Template Name
author: Author Name
severity: info|low|medium|high|critical
description: Template description
tags: tag1,tag2
requests:
- method: GET
path:
- "\\\\{\\\\{BaseURL\\\\}\\\\}/path"
matchers:
- type: word
words:
- "sensitive data"
Creare modelli personalizzati¶
# Create a basic template structure
cat > custom-template.yaml << EOF
id: custom-template
info:
name: Custom Template
author: Your Name
severity: medium
description: Detects a custom vulnerability
tags: custom
requests:
- method: GET
path:
- "\\\\{\\\\{BaseURL\\\\}\\\\}/admin"
matchers:
- type: word
words:
- "Admin Panel"
EOF
# Test the custom template
nuclei -u https://example.com -t custom-template.yaml
Validazione dei modelli¶
# Validate a template
nuclei -validate -t custom-template.yaml
# Validate all templates in a directory
nuclei -validate -t templates/
Template Listing¶
# List all available templates
nuclei -tl
# List templates by tags
nuclei -tl -tags cve,2021
# List templates by severity
nuclei -tl -severity critical
Integrazione con altri strumenti¶
Pipeline con httpx¶
# Discover subdomains and scan them
subfinder -d example.com|httpx|nuclei -t cves/
# Scan specific ports
naabu -host example.com -top-ports 100 -silent|httpx -silent|nuclei -t cves/
Integrazione con notifica¶
# Send results to Slack
nuclei -u https://example.com -o results.txt|notify -provider slack
# Send critical findings to Discord
nuclei -u https://example.com -severity critical -json|notify -provider discord
Integrazione con GitHub Azioni¶
# Example GitHub Action workflow
name: Nuclei Scan
on:
schedule:
- cron: '0 0 * * *' # Run daily at midnight
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Nuclei Scan
uses: projectdiscovery/nuclei-action@main
with:
target: https://example.com
templates: cves/
output: nuclei-results.txt
Migliori Pratiche¶
Ottimizzazione delle prestazioni¶
# Use fast templates for initial scanning
nuclei -u https://example.com -tags tech
# Exclude time-consuming templates
nuclei -u https://example.com -exclude-templates ssl,fuzzing
# Optimize concurrency based on target
nuclei -u https://example.com -c 50 -bulk-size 20
# Use rate limiting to avoid overwhelming the target
nuclei -u https://example.com -rate-limit 100
Scansione mirata¶
# Scan for specific vulnerability types
nuclei -u https://example.com -tags wordpress,plugin
# Scan for recent CVEs
nuclei -u https://example.com -tags cve,2023
# Scan based on technology detection
httpx -u https://example.com -tech-detect|nuclei -t technologies/
Ridurre il rumore¶
# Exclude common false positives
nuclei -u https://example.com -exclude-templates false-positives/
# Focus on high-impact issues
nuclei -u https://example.com -severity high,critical
# Filter out noisy templates
nuclei -u https://example.com -exclude-tags fuzz,dos
Aggiornamenti regolari¶
# Update templates regularly
nuclei -update-templates
# Update Nuclei to the latest version
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
Risoluzione dei problemi¶
Questioni comuni¶
-
** Errori di temperatura ** Traduzione:
-
** Limitare il bersaglio* * Traduzione:
-
** Problemi di memoria ** Traduzione:
-
** Problemi di rete ** Traduzione:
Debugging¶
# Enable debug mode
nuclei -u https://example.com -debug
# Show verbose output
nuclei -u https://example.com -v
# Show request and response details
nuclei -u https://example.com -debug -show-request -show-response
# Store HTTP requests and responses
nuclei -u https://example.com -store-resp
Configurazione¶
Configuration File¶
Nuclei utilizza un file di configurazione situato in __INLINE_CODE_35_. È possibile personalizzare varie impostazioni in questo file:
# Example configuration file
concurrency: 25
rate-limit: 150
bulk-size: 20
templates-directory: /path/to/templates
output: /path/to/output.txt
json: true
severity:
- critical
- high
- medium
exclude-severity:
- info
- low
Variabili ambientali¶
# Set Nuclei configuration via environment variables
export NUCLEI_CONCURRENCY=25
export NUCLEI_RATE_LIMIT=150
export NUCLEI_TEMPLATES_DIRECTORY=/path/to/templates
export NUCLEI_OUTPUT=/path/to/output.txt
export NUCLEI_JSON=true
Riferimento¶
Opzioni di riga di comando¶
Tabella_84_
Template Types¶
Tabella_85_
Matcher Types¶
Tabella_86_
Tipi di estrattore¶
Tabella_87_
Risorse¶
- [Documentazione ufficiale](URL_78___ GitHub Repository Nuclei Templates Repository
- Progetto Discovery Discord_
- Nuclei Template Creation Guide_
*Questo foglio di scacchi fornisce un riferimento completo per l'utilizzo Nuclei, dalla scansione di base alla creazione di modelli avanzati e l'integrazione con altri strumenti. Per le informazioni più aggiornate, consultare sempre la documentazione ufficiale. *