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