nuclei: varredura de vulnerabilidades por templates em um pentest

nuclei · MIT

O nuclei envia requisições definidas por templates YAML e reporta os matches. Não é um crawler nem um fuzzer — ele verifica condições específicas e conhecidas: um CVE com assinatura confiável, um diretório .git exposto, uma credencial padrão, um header mal configurado. O valor está inteiramente no corpus de templates, que é mantido pela comunidade e é grande.

Instalação

go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
nuclei -update-templates

Os templates ficam em ~/.local/nuclei-templates e atualizam independentemente do binário. Atualize-os antes de cada engajamento, não uma vez por trimestre.

Comandos principais

# varre uma lista de hosts vivos
nuclei -l live.txt -silent

# só o que você de fato reportaria
nuclei -l live.txt -severity critical,high,medium -silent

# um conjunto específico de templates
nuclei -l live.txt -tags cve,exposure -silent
nuclei -l live.txt -t http/exposures/ -silent

# JSONL para importar
nuclei -l live.txt -severity critical,high -jsonl -o nuclei.jsonl

# seja educado com produção
nuclei -l live.txt -rate-limit 20 -concurrency 10 -timeout 10

Saída

{"template-id":"git-config","info":{"name":"Git Config Exposure","severity":"medium",
 "classification":{"cve-id":null,"cwe-id":["cwe-200"]}},
 "type":"http","host":"https://example.com","matched-at":"https://example.com/.git/config",
 "timestamp":"2026-08-29T10:04:11Z"}

O matched-at é o campo que importa para o relatório — é a URL exata que você reverifica à mão.

Onde ele entra no Tandera

O nuclei roda na fase de active_scan apenas do recon_web_full. É excluído do recon_web_lite por design: aquele fluxo tem teto de risco NonIntrusive e o nuclei envia payloads reais.

O Tandera também traz um catálogo de findings nuclei.yaml (code/src/tandera-finding-catalog/catalog/nuclei.yaml) que mapeia IDs de template para definições canônicas de finding. É esse mapeamento que transforma um git-config disparado em doze hosts em um único finding deduplicado com doze evidências, em vez de doze linhas num relatório.

Usando em um pentest

Limite a taxa contra produção. A concorrência padrão vai gerar um pico que o SOC do cliente percebe. -rate-limit 20 é uma posição de abertura razoável; acorde-a com o cliente antes e registre na seção de metodologia.

Templates têm falsos positivos, e a responsabilidade é sua. Todo match do nuclei vai no relatório sob a sua assinatura, não a do autor do template. Reverifique tudo que pretende reportar — o matched-at dá a requisição exata para reproduzir.

Severidade é a opinião do autor do template. Ela reflete a classe do problema, não o risco para este cliente neste host. Reavalie contra exposição e explorabilidade reais antes de chegar ao entregável.

Não rode o corpus inteiro por padrão. Milhares de templates contra uma lista grande de hosts é lento e ruidoso. Comece com -tags cve,exposure,misconfig e amplie deliberadamente.

acesso antecipado

Garanta a Tandera antes do próximo engagement.

Entre na waitlist para acesso antecipado. Estamos integrando times de pentest em ondas.

Onboarding prioritário para times de pentest.
Linha direta com quem está construindo.
Preço de acesso antecipado, garantido.

Sem spam, sem cartão. Cancele quando quiser.

enespt-br