⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。

1. 前言

Nuclei 是由 ProjectDiscovery 团队基于 Go 语言开发的一款漏洞扫描工具,核心用途是在渗透测试过程中验证漏洞是否存在,同时支持用户自定义添加 POC(漏洞验证规则)模板,灵活性较高。

2. Kali 系统安装与使用指南

2.1 客户端下载与基础检查

首先通过命令完成 Nuclei 的安装,安装后可验证版本并确认配置路径,再下载官方漏洞模板(模板是漏洞扫描的核心规则文件)。

# 安装 Nuclei
sudo apt install nuclei

# 查看 Nuclei 版本及默认配置路径(便于后续排查问题)
nuclei -version

在这里插入图片描述

Kali 中通过 apt 安装的 Nuclei 版本,与官方发布的最新二进制包版本一致,官方版本地址:https://github.com/projectdiscovery/nuclei/releases

在这里插入图片描述

2.2 模板下载验证

下载客户端后,可再次执行以下命令确认模板列表,确保后续扫描能调用到模板:

# 列出所有可用的 Nuclei 模板
nuclei -tl

# 模板默认安装路径说明:/home/你的用户名/.local/nuclei-templates
# 示例路径:/home/kali/.local/nuclei-templates

在这里插入图片描述

2.3 漏洞模板检索

Kali 系统中可通过命令快速检索指定漏洞相关的模板(比 Windows 操作更便捷),便于精准定位需要的扫描规则。

# 示例:检索所有和阿里巴巴(alibaba)相关的漏洞模板
find /home/kali/.local/nuclei-templates -name "alibaba"

在这里插入图片描述

2.4 基本使用方法

Nuclei 核心用法是指定目标地址和模板文件/目录,完成漏洞扫描:

# 场景1:使用指定目录下的所有模板扫描目标网站
nuclei -u https://xxx.com -t /xxx/nuclei-templates/network/cves/2004

# 场景2:使用单个模板文件精准扫描(适用于验证特定漏洞)
nuclei -u https://xxx.com -t /xxx/nuclei-templates/network/cves/2004/CVE-2004-2687.yaml

# 场景3:查看 Nuclei 所有可用命令及参数说明(遇到问题时可查阅)
nuclei --help

3. Windows 系统安装与使用指南

3.1 客户端下载与环境配置

Windows 系统需手动下载二进制包,并配置环境变量,方便在任意目录执行 Nuclei 命令:

  1. 下载地址:https://github.com/projectdiscovery/nuclei/releases
    在这里插入图片描述

  2. 将下载的压缩包解压到指定目录(例如 D:\DEV\nuclei);

  3. 将解压目录的路径添加到系统环境变量(确保 cmd/PowerShell 中能直接调用 nuclei 命令);
    在这里插入图片描述

  4. 验证安装与配置:执行以下命令查看版本,同时确认配置文件/缓存的默认路径(默认在系统盘,后续需修改以节省系统盘空间)。

nuclei --version

在这里插入图片描述

3.2 模板下载

官方模板库体积较大,建议在 Nuclei 解压目录下新建文件夹专门存放模板:

  1. 模板库地址:https://github.com/projectdiscovery/nuclei-templates
  2. 下载命令(以 D:\DEV\nuclei 为例,在该目录下执行):
# 克隆官方模板库到当前目录的 nuclei-templates 文件夹
git clone https://github.com/projectdiscovery/nuclei-templates.git
  1. 提速方案:若从 GitHub 下载模板速度慢,可先将 GitHub 上的 nuclei-templates 仓库导入 Gitee,再从 Gitee 克隆(国内访问速度更快),具体步骤参考国内 GitHub 仓库下载提速
    在这里插入图片描述

3.3 修改模板路径配置(节省系统盘空间)

Nuclei 默认将模板缓存存放在系统盘,长期使用会占用大量空间,需修改配置文件指定自定义模板路径:

  1. 找到配置文件:通过 nuclei --version 命令可查看配置文件路径,核心配置文件为 .templates-config.json
  2. 清理旧缓存:删除系统盘默认缓存目录 C:\Users\xxx\AppData\Local\nuclei(该目录保留了旧的模板路径记录);
  3. 修改配置文件:将模板路径改为你本地下载的 nuclei-templates 路径(示例如下)。

在这里插入图片描述

配置文件修改示例(将路径替换为你的实际模板目录):

{"nuclei-templates-directory":"D:\\DEV\\nuclei\\nuclei-templates","custom-s3-templates-directory":"D:\\DEV\\nuclei\\nuclei-templates\\s3","custom-github-templates-directory":"D:\\DEV\\nuclei\\nuclei-templates\\github","custom-gitlab-templates-directory":"D:\\DEV\\nuclei\\nuclei-templates\\gitlab","custom-azure-templates-directory":"D:\\DEV\\nuclei\\nuclei-templates\\azure","nuclei-templates-version":"v10.3.7","nuclei-ignore-hash":"1a666944243307efff85d5bbd943b190","nuclei-latest-version":"v3.6.2","nuclei-templates-latest-version":"v10.3.7","nuclei-latest-ignore-hash":"1a666944243307efff85d5bbd943b190"}
  1. 验证配置:执行以下命令,将模板列表输出到文件,若文件中显示自定义路径下的模板(而非“installing”重新下载),则配置成功。后续更新模板只需在模板目录执行 git pull 即可。
nuclei -tl > res.txt

输出文件示例(部分内容):

Listing available v10.3.7 nuclei templates for D:\DEV\nuclei\nuclei-templates
cloud\alibaba\ack\ack-cluster-api-public.yaml
cloud\alibaba\ack\ack-cluster-auditing-disable.yaml
cloud\alibaba\ack\ack-cluster-cloud-monitor-disable.yaml
cloud\alibaba\ack\ack-cluster-health-disable.yaml
cloud\alibaba\ack\ack-cluster-network-policies-disable.yaml
cloud\alibaba\ack\ack-cluster-network-policies-missing.yaml
cloud\alibaba\ack\kubernetes-dashboard-enabled.yaml
cloud\alibaba\actiontrail\multi-region-logging-disabled.yaml
cloud\alibaba\actiontrail\public-actiontrail-bucket.yaml
cloud\alibaba\alibaba-cloud-code-env.yaml
cloud\alibaba\ecs\os-patches-outdated.yaml
...

4. 官方 AI 生成 Nuclei 模板

若你发现了通用漏洞,需要编写自定义扫描模板,可使用官方 AI 平台快速生成(无需手动编写复杂规则):

  1. 登录地址:https://cloud.projectdiscovery.io/templates(需使用 GitHub 账号登录);
  2. 功能:根据漏洞描述自动生成符合 Nuclei 规范的模板文件,降低模板编写门槛。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐