# nuclei: varredura de vulnerabilidades por templates em um pentest

> Como instalar e executar o nuclei, ajustar severidade e rate limits, ler sua saída JSONL, e como o Tandera transforma cada match em um finding deduplicado.

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

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

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

```json
{"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.

---

Canonical: https://tandera.io/pt-br/tools/nuclei
This page as markdown: https://tandera.io/pt-br/tools/nuclei.md
Index for agents: https://tandera.io/llms.txt

Every page here is also available as markdown: append `.md` to the path (e.g. `/recon.md`, `/index.md` for this homepage, `/blog/<slug>.md`), or request the canonical path with `Accept: text/markdown`.
