Nuclei 基于模板的高速漏洞扫描器

Nuclei 是由知名安全公司 ProjectDiscovery 开发的一款 基于模板的高速漏洞扫描器

如果说长亭 Xray 是"语义分析"的代表,那么 Nuclei 就是 "模板化扫描" 的王者。

它的核心理念是:一切皆模板

社区维护了海量的 YAML 格式漏洞模板(Nuclei Templates),使得 Nuclei 能够以极快的速度检测出最新的 CVE 漏洞、配置错误、敏感信息泄露等问题。


文章目录

🚀 核心特点

  1. 模板驱动 (Template-Driven)
    • 这是 Nuclei 的灵魂。所有的检测逻辑都写在 YAML 文件中。
    • 优势 :当新漏洞(如 Log4j, Spring4Shell)爆发时,社区通常在几小时内就会提交新的 POC 模板。你只需运行 nuclei -update-templates,即可立刻拥有检测最新漏洞的能力,无需等待软件版本更新。
  2. 多协议支持
    • 不仅支持 HTTP/HTTPS ,还支持 DNSTCPSSL/TLSWebsocketWHOIS 等协议。这使得它能扫描的范围比纯 Web 扫描器更广(例如检测 DNS 重绑定、SSL 证书问题、数据库端口暴露等)。
  3. 极速并发
    • 基于 Go 语言开发,采用高度并发的架构,扫描速度极快,非常适合大规模资产普查。
  4. 高度可定制
    • 用户可以轻松编写自己的 YAML 模板,甚至可以通过 interactsh 集成进行 OAST (带外攻击测试),检测盲注、SSRF、RCE 等无回显漏洞。
  5. 生态丰富
    • 拥有庞大的社区模板库(nuclei-templates),涵盖 CVE、默认凭证、敏感文件、技术栈指纹识别等数万个检测项。

⚔️ Nuclei vs Xray:怎么选?

特性 Nuclei Xray (长亭)
核心机制 模板匹配 (YAML) 语义分析 + 内置规则
更新速度 极快 (社区实时更新模板) 较快 (依赖官方版本或自定义POC)
协议支持 全协议 (HTTP, DNS, TCP, SSL...) 主要聚焦 HTTP/HTTPS
误报率 低 (取决于模板质量) 极低 (语义分析优势明显)
适用场景 批量资产普查最新 CVE 检测、多协议扫描 深度渗透测试、复杂逻辑漏洞、低误报要求场景
自定义难度 简单 (YAML 易读易写) 中等 (需理解其 POC 语法)
联动能力 强 (常与 Subfinder, Httpx 搭配) 强 (常与 Burp, Radium 搭配)

最佳实践 :在很多高级渗透测试流程中,安全工程师会 同时使用两者。先用 Nuclei 快速过一遍最新 CVE 和配置错误,再用 Xray 进行深度的被动扫描以发现逻辑漏洞。


🛠️ 安装与快速开始

1. 安装

Nuclei 也是跨平台二进制文件,无需安装环境。

2. 初始化 (重要!)

首次使用前,必须更新漏洞模板库:

bash 复制代码
nuclei -update-templates

这会从 GitHub 下载最新的 nuclei-templates 集合。


💻 实战命令演示

场景一:基础扫描 (单个目标)

对目标网站进行全量模板扫描。

bash 复制代码
nuclei -u https://example.com
  • -u: 指定目标 URL。
  • 输出结果默认在终端显示。
场景二:指定模板类型扫描

只扫描高危漏洞或特定类型的漏洞(节省时间)。

bash 复制代码
# 只扫描 CVE 漏洞
nuclei -u https://example.com -tags cve

# 只扫描严重级别为 Critical 和 High 的漏洞
nuclei -u https://example.com -severity critical,high

# 扫描特定的 CVE,例如 Log4j
nuclei -u https://example.com -id cve-2021-44228
  • -tags: 按标签过滤(如 cve, misconfig, exposure)。
  • -severity: 按严重程度过滤(info, low, medium, high, critical)。
  • -id: 指定具体的模板 ID。
场景三:批量资产扫描 (最常用)

配合子域名收集工具(如 Subfinder)或资产列表文件。

bash 复制代码
# 从文件读取目标列表
nuclei -l targets.txt -o results.txt

# 管道符联动:收集子域名 -> 筛选存活HTTP -> Nuclei扫描
subfinder -d example.com | httpx -silent | nuclei -severity critical,high
  • -l: 输入文件列表。
  • -o: 输出结果到文件。
  • 这是自动化渗透测试的标准流水线。
场景四:自定义模板扫描

如果你自己写了 POC 模板(my-poc.yaml)。

bash 复制代码
nuclei -u https://example.com -t my-poc.yaml
# 或者加载整个自定义目录
nuclei -u https://example.com -t ./my-custom-templates/
  • -t: 指定模板文件或目录。
场景五:生成报告
bash 复制代码
# 生成 JSON 格式报告(便于对接其他系统)
nuclei -u https://example.com -json-export report.json

# 生成 Markdown 格式报告
nuclei -u https://example.com -markdown-export report_md/

📝 如何编写一个简单的 Nuclei 模板?

Nuclei 模板是 YAML 格式,非常直观。以下是一个检测 Git 配置文件泄露 的简单示例:

yaml 复制代码
id: git-config-exposure  # 模板唯一 ID
info:
  name: Git Config File Exposure
  author: your_name
  severity: medium       # 危险等级
  description: Detects exposed .git/config files which may leak sensitive info.
  tags: exposure, git

http:
  - method: GET
    path:
      - "{{BaseURL}}/.git/config"  # 探测路径
    matchers-condition: and
    matchers:
      - type: word
        words:
          - "[core]"
          - "repositoryformatversion"
        condition: and               # 必须同时包含这两个词
      - type: status
        status:
          - 200                      # 状态码必须是 200

保存为 git-expose.yaml,运行 nuclei -u http://target.com -t git-expose.yaml 即可检测。


⚠️ 注意事项

  1. 噪音问题 :由于 Nuclei 是基于模板匹配,且模板数量巨大(数万个),全量扫描可能会产生大量请求,容易触发 WAF 或被目标封禁 IP。务必使用 -rate-limit 参数限制速率 (例如 -rate-limit 150)。
  2. 误报 :虽然模板质量很高,但依然可能存在误报。特别是 info 级别的检测结果,通常只是指纹识别,不代表漏洞。
  3. 合法性 :同样,仅限授权测试。Nuclei 的高并发特性如果用于未授权扫描,极易被认定为攻击行为。
相关推荐
夜天炫安全9 小时前
.git文件泄露常见手法
网络安全
va学弟10 小时前
Java 网络通信编程(6):视频通话
java·服务器·网络·音视频
chy0000111 小时前
视频播放器无法连接网络问题排查与解决总结
网络·音视频
幸福指北11 小时前
我用 Tauri + Vue 3 + Rust 开发了这款跨平台网络连接查看工具PortView,性能炸裂!
运维·网络·监控
V__KING__11 小时前
systemd-remount-fs,fstab之间的渊源
linux·服务器·网络
小杰帅气11 小时前
基础的数据链路层理解
网络
2301_7756023812 小时前
创龙评估板代码分析
网络
zx_zx_12313 小时前
传输层协议tcp (2)
服务器·网络·tcp/ip
贝拉学无止尽13 小时前
跨境电商如何搭建网络实操方案
网络·网络安全·跨境网络