Nuclei Tutorial
Nuclei 是一款快速且可定制的漏洞扫描工具,它基于简单的YAML语法模板来描述如何检测和解决特定的安全漏洞。Nuclei的设计允许用户根据需要自定义一切,并支持多种协议和服务的扫描,如HTTP、DNS、SSL等。下面是关于如何安装和使用Nuclei的详细教程。
安装 Nuclei
首先,确保你的系统上已经安装了Go语言环境(推荐版本1.17以上)。接着,你可以通过以下几种方式之一来安装Nuclei:
- 使用 Go 安装:
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
- 使用 Homebrew (MacOS):
brew install nuclei
- 使用 Docker:
docker pull projectdiscovery/nuclei:latest
- 直接下载二进制文件:
访问 GitHub 发布页面 下载适合你操作系统的最新版Nuclei二进制文件,解压后将二进制文件移动到系统路径中,例如
/usr/local/bin/
。
验证安装是否成功:
nuclei -version
如果安装成功,你会看到Nuclei的版本信息。
基本使用方法
一旦安装完成,就可以开始使用Nuclei进行安全扫描了。这里是一些基本的命令行选项及其用法:
- 指定目标URL或主机列表:
使用
-u
参数指定单个目标URL,或者使用-l
参数指定一个包含多个目标的文本文件。
nuclei -u https://example.com
nuclei -l targets.txt
- 运行模板: 可以指定要运行的模板或模板目录。Nuclei默认会从其默认模板路径加载所有模板,但你可以选择性地指定某个模板或一组模板。
nuclei -u https://example.com -t cves/
nuclei -l targets.txt -t technologies/wordpress
- 过滤器: 利用过滤器可以更精细地控制扫描过程,比如根据标签、严重程度或作者筛选模板。
nuclei -u https://example.com -tags joomla
nuclei -l targets.txt -severity critical,high
nuclei -l targets.txt -author geeknik
- 输出结果: 可以将扫描结果导出为不同格式,比如JSON、Markdown或SARIF。
nuclei -u https://example.com -o results.json -je
nuclei -u https://example.com -o results.md -me
- 配置选项: 配置各种选项来优化扫描过程,例如设置超时时间、重试次数或限制请求速率。
nuclei -u https://example.com -timeout 20s -retries 3 -rl 100
- 调试模式: 在开发新的模板或调试现有模板时,可以启用调试模式查看详细的请求和响应信息。
nuclei -u https://example.com -debug
结果仪表板与云服务集成
Nuclei 支持与 ProjectDiscovery 云平台集成,以便于可视化扫描结果并快速生成报告。为了设置 PDCP 结果仪表板,请按照如下步骤操作:
- 访问 ProjectDiscovery 云平台 创建免费的 PDCP API 密钥。
- 使用
nuclei -auth
命令配置API密钥。 - 执行扫描并将结果上传至云端,通过添加
-cloud-upload
选项。
nuclei -u https://example.com -t cves/ -p http://127.0.0.1:7890 -cloud-upload
- 扫描完成后,可以在命令行界面得到一个链接,点击访问即可查看在线的结果仪表板。
模板编辑器
Nuclei 提供了强大的模板机制,使得用户能够轻松创建自定义的漏洞检测逻辑。模板是基于YAML编写的,它们定义了发送给目标服务器的具体请求以及期望返回的响应条件。更多关于如何编写模板的信息可以在 官方文档 中找到。
总结
Nuclei 是一款功能强大且易于使用的漏洞扫描工具,适用于对现代应用程序、基础设施和网络执行快速有效的安全评估。通过上述指南,你应该能够开始使用 Nuclei 进行基本的漏洞扫描,并了解如何进一步利用它的高级特性来进行更加深入的安全测试。