nuclei-templates 实战教程:3 条命令跑通你的第一次漏洞扫描
【免费下载链接】nuclei-templatesCommunity curated list of templates for the nuclei engine to find security vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/nu/nuclei-templates
面向需要在 Web 与云资产上执行漏洞检测的运维和安全工程师。读完本文,你会完成 nuclei 扫描引擎的安装、同步 nuclei-templates 的 13000+ 漏洞检测模板,并对一个真实目标跑通首次扫描。
nuclei-templates 到底能干什么
- 模板总量 13000+:仅 http 一类就有 11246 个,另含 dns、ssl、tcp、file、javascript、headless 等 11 种协议类型
- CVE 覆盖:带 cve 标签的模板 4431 个;覆盖 1496 个在野利用(KEV)漏洞,其中 CISA 目录 454 个、VulnCheck 目录 1449 个
- 云资产审计:663 个 cloud 模板,AWS 148、Azure 192、GCP 227、阿里云 45
- 漏洞类型分布:xss 1417 个、rce 1029 个、sqli 604 个、wordpress 相关 1698 个
- 严重程度梯度:critical 1916、high 2976、medium 2841,可按需只跑高危
- 207 个 workflows/ 工作流模板和 20 个开箱即用的 profiles/ 扫描配置
三步搭出一个能用的扫描
第一步:安装扫描引擎
go install -u github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest装完后执行nuclei -version能打印版本号,说明引擎就绪。
第二步:下载并更新模板库
nuclei -update-templates全部模板会拉到本地缓存目录(Linux/macOS 下是~/.local/share/nuclei/templates),之后的 nuclei 扫描离线可用。新 CVE 模板靠这一步跟进,建议每周跑一次。
第三步:跑第一次扫描
nuclei -u https://example.com -profile recommendedrecommended 配置覆盖 http、dns、ssl 等协议类型,并预排除了几十个高误报的模板。命中会逐条打印模板 ID、严重程度和匹配内容,你能直接判断是否属实。
按场景实战
场景一:如何给云资产做一次配置审计
- 要做什么:检查 S3/OSS 桶是否公开可读、存储账户是否匿名可访问、安全组是否放行全网。注意:cloud 模板要求本机已配置好对应云厂商的 CLI 和凭据(AWS CLI、阿里云 CLI 等),否则模板无法执行。
- 执行什么:
nuclei -t cloud/ -u https://example.com -rate-limit 100 - 怎么读结果:优先看 critical 与 high 条目。类似 s3-bucket-public-read 的命中意味着桶已对匿名访问开放,正确动作是立即收回匿名权限并轮换其中密钥,而不是只记录在案。
场景二:如何对单个站点做 Web 漏洞检查
- 要做什么:对授权站点执行 XSS、SQLi、RCE、文件包含等检测。
http/vulnerabilities/目录下有 959 个模板,基本覆盖主流 Web 漏洞类型。 - 执行什么:
nuclei -u https://example.com -t http/vulnerabilities/ -severity critical,high - 怎么读结果:每条命中给出具体模板和触发它的请求。xss 标签下有 1417 个模板且误报偏多,按 severity 过滤后再逐条在浏览器里手工复核,确认回显可控再写进报告。
场景三:如何做新 CVE 的应急检测
- 要做什么:新漏洞披露后先确认是否已有在野利用。KEV 标签对应 1496 个去重漏洞,这是 nuclei CVE 应急检测里最该先跑的一条路径。
- 执行什么:
nuclei -tags kev,vkev -u https://example.com;只想看特定年份时用-tags cve2025,cve2026。 - 怎么读结果:KEV 模板命中说明该漏洞正被主动利用,处置优先级最高;没有命中只代表这套 PoC 模板没打中,不能据此直接下"安全"的结论。
定制扫描范围与速度 ⚙️
内置配置不够用时,自己写配置文件:一个 YAML 文件描述严重程度范围、协议类型、排除标签和速率上限,放到 profiles/ 后用nuclei -profile <名称>调用。最小示例长这样:
severity: [high, critical] type: [http, dns, ssl] exclude-tags: [intrusive] rate-limit: 100想要"一次跑完同一技术栈的全部检查",用工作流更省事:workflows/里 207 个文件按技术栈组织(如 tomcat-workflow.yaml、jenkins-workflow.yaml),执行-w workflows/tomcat-workflow.yaml -u https://example.com即可,不用手动罗列模板路径。想更精细地裁剪范围,用-tags与-exclude-tags组合过滤,比如加-exclude-tags intrusive跳过那 608 个会真实发送利用请求的模板。
容易踩的坑与注意事项 ⚠️
Q:目标是老服务,怎么避免把它打垮?加-rate-limit 100限制每秒请求数,-c 25控制并发连接,-timeout 10给单请求设上限;主机多时加-max-host-error 10,连续失败的主机自动跳过,扫描不会被死机器拖住。
Q:intrusive 模板有副作用吗?有。608 个 intrusive 标签模板会真实投递利用载荷,可能触发告警甚至改变目标状态。生产环境默认带上--exclude-tags intrusive,第三方系统上更不该跑。
Q:法律红线在哪?只扫自己持有或取得书面授权的对象,很多司法辖区对未授权扫描第三方系统有明确罚则。对公开目标先跑profiles/里的 osint 配置(被动信息收集),把主动探测留给已授权资产。
Q:模板什么时候会失效?厂商发补丁后旧模板可能不再适用,nuclei -update-templates保持每周一次;用 cves.json 的 CVE 到模板映射可以快速确认某个新 CVE 是否已有覆盖。
接下来去哪看 📚
- TEMPLATE-CREATION-GUIDE.md:自己写检测模板的完整规范
- TEMPLATE-REVIEW-GUIDE.md:模板审查标准,评估第三方模板时有用
- profiles/:20 个现成扫描配置,从 pentest 到 compliance 各取所需
- TEMPLATES-STATS.md 与 TEMPLATES-STATS.json:标签、作者、严重程度的全量统计
- cves.json:CVE 编号与模板 ID 的映射表
- helpers/wordlists/:17 个内置字典,部分模板依赖它们
- TOP-10.md:最常用标签与模板排行
挑一个你已获授权的目标,依次跑nuclei -update-templates和nuclei -profile recommended -u <目标>,看到第一条命中之后,你就知道下一步该收窄范围还是上工作流了。
【免费下载链接】nuclei-templatesCommunity curated list of templates for the nuclei engine to find security vulnerabilities.项目地址: https://gitcode.com/GitHub_Trending/nu/nuclei-templates
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考