WarFi Labs

nuclei

template vuln scanner ยท MIT

A fast, template-driven scanner that checks hosts against a huge community library of known vulnerabilities and misconfigurations.

Authorized use only. Run these only on systems you own or have explicit written permission to test. Full notice at the foot of the page.

01Scanning by template

nuclei checks a target against templates: small YAML files that each describe how to detect one specific thing, a known CVE, an exposed panel, a misconfiguration, a default credential. The community maintains thousands of them, updated constantly as new issues appear. That design is the strength: nuclei is only as current as its templates, and its templates track the real world closely. It is fast, scriptable, and low on false positives because each template encodes an exact signature.

↑ contents

02Install and update templates

nuclei is a single Go binary. The first thing to do, and to repeat often, is update the templates; an out-of-date template set misses recent issues, which defeats the point.

$ sudo apt install nuclei # Debian / Kali

$ go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest # Gentoo / Fedora / any (Go)

$ nuclei -update-templates # fetch the template library

03A first scan

Point it at a URL and it runs the full template set by default. On one host this is quick; the output names the template that matched, its severity, and the matched URL.

$ nuclei -u https://target

__ _ ____ __ _______/ /__ (_) / __ \/ / / / ___/ / _ \/ / / / / / /_/ / /__/ / __/ / /_/ /_/\__,_/\___/_/\___/_/ v3.1.0 [INF] Templates loaded for scan: 7421 [tech-detect:nginx] [http] [info] https://target [missing-hsts] [http] [low] https://target [git-config] [http] [medium] https://target/.git/config [CVE-2021-44228] [http] [critical] https://target/api [log4j]

04Targeting severity and tags

The full set is broad; narrow it to what matters. Filter by severity to focus on the serious findings, or by tags to run only a class of checks (cves, exposures, a specific technology). This is how you keep a large scan signal-rich.

$ nuclei -u https://target -severity critical,high

$ nuclei -u https://target -tags cve,exposure

$ nuclei -u https://target -tags wordpress

[CVE-2021-44228] [http] [critical] https://target/api/login [apache-detect] [http] [info] https://target [exposed-git] [http] [medium] https://target/.git/config [wordpress-detect] [http] [info] https://target

05Scanning many hosts

nuclei is built for scale. Feed it a list of hosts (the output of your recon and masscan work) and it scans them all, rate-limited so you do not overwhelm anything. This is where it fits the pipeline: recon finds the hosts, nuclei checks them all for known issues.

$ nuclei -l live-hosts.txt -severity critical,high -o findings.txt -rl 150

[INF] Running nuclei on 42 targets (rate limit: 150/s) [CVE-2023-27350] [http] [critical] https://10.0.0.20:9191 [ssl-dns-names] [ssl] [info] https://10.0.0.1 [default-login] [http] [high] https://10.0.0.12:8080 [admin:admin] [INF] Scan completed. 3 findings written to findings.txt

↑ contents

06Getting good results

» Update templates before every serious scan; coverage is only as fresh as the template set.

» Start with -severity critical,high to triage, then widen; the full set includes many info-level notes.

» -o writes findings to a file; -json gives machine-readable output for tracking over time.

» You can write your own templates for issues specific to your apps; the YAML format is approachable.

07nuclei as continuous self-assessment

nuclei's real power for a defender is repetition. Run it against your own hosts on a schedule and it tells you the day a known vulnerability or exposure appears on your surface, because the templates track public disclosures. A critical finding like an exposed .git or a log4j-vulnerable endpoint is an alarm to act on now. Many teams wire it into CI so a new deployment is checked automatically.

» Schedule it against your external hosts so new exposures are caught early, not at pentest time.

» Treat critical and high findings as incidents; they are usually known-exploited issues.

» Write templates for your own recurring mistakes so they can never ship unnoticed again.

↑ contents

Authorized use only

The tools and techniques in these guides are for defending, testing, and understanding systems you own or have explicit written permission to assess. Unauthorized access to computers, networks, accounts, or data is a criminal offense in nearly every jurisdiction, and the penalties are real.

A few of the laws that apply, by way of example:

Wherever you are, the rule is the same: get authorization in writing, stay within the agreed scope, and never touch a system that is not yours to test. If you are unsure whether something is permitted, treat it as not permitted until you have clear authorization.

This is general information, not legal advice.