Nuclei_0">Nuclei-快速漏洞扫描器
声明
学习内容来自 B 站UP主泷羽sec,如涉及侵权马上删除文章。
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
✍🏻作者简介:致力于网络安全领域,目前作为一名学习者,很荣幸成为一名分享者,最终目标是成为一名开拓者,很有趣也十分有意义
🤵♂️ 个人主页: @One_Blanks
欢迎评论 💬点赞👍🏻 收藏 📂加关注+
- 关注总部:泷羽Sec
目录
介绍
Nuclei 是一个快速的、基于模板的漏洞扫描工具,支持多种平台,主要通过 YAML 模板 来执行各种网络漏洞扫描。它支持多种攻击类型,包括常见的 Web漏洞、安全配置错误、已知 CVE 漏洞 等。Nuclei 通过扫描模板来快速查找漏洞。
下载
Windows系统版安装包:
https://pan.quark.cn/s/83453b91ec89
NucleiPOC5000_29">Nuclei-POC库5000+获取
https://pan.quark.cn/s/2dd5b4c04ba1
Nuclei_40">Nuclei使用
1. 基本命令格式
在安装好 Nuclei 之后,可以通过命令行来运行漏洞扫描。基本的命令格式如下:
nuclei -t <template> -target <target>
-t <template>
:指定要使用的模板(可以是单个模板、模板文件或模板目录)。-target <target>
:指定目标网站或 IP 地址,可以是单个目标,也可以是包含多个目标的文件。
2. 运行单个模板
假设你已经安装了 Nuclei 并下载了模板,你可以使用以下命令扫描单个目标(网站):
nuclei -t cves/2021-12345.yaml -target https://example.com
- 该命令将使用
cves/2021-12345.yaml
这个模板扫描目标https://example.com
。
3. 扫描多个目标
如果你有一个包含多个目标的文件(比如 targets.txt
),你可以使用 -target
参数指定该文件。每一行可以是一个 URL 或 IP 地址。
nuclei -t cves/2021-12345.yaml -target targets.txt
4. 使用多个模板
如果你想同时使用多个模板,可以通过 -t
参数指定多个模板路径。例如:
nuclei -t cves/2021-12345.yaml -t technologies/struts.yaml -target https://example.com
你也可以通过模板目录来扫描所有模板。例如:
nuclei -t /path/to/templates/ -target https://example.com
5. 扫描多个目标和多个模板
如果你有多个目标和多个模板,想同时扫描多个目标,可以这样运行:
nuclei -t /path/to/templates/ -target /path/to/targets.txt
这会同时对多个目标应用多个模板进行扫描。
Nuclei_95">6. 使用Nuclei的高级参数
Nuclei 具有许多可自定义的参数,你可以根据需求进行调整。
a. 指定扫描并发数
可以使用 -c
参数来设置扫描的并发数,增加并发数能加速扫描,但也可能会导致过多请求被目标服务器阻止。
nuclei -t cves/2021-12345.yaml -target https://example.com -c 50
b. 指定扫描时间
你可以使用 -timeout
参数设置扫描的超时时间。例如,设置为 30 秒:
nuclei -t cves/2021-12345.yaml -target https://example.com -timeout 30
c. 指定输出格式
Nuclei 支持将扫描结果输出为不同的格式,如 json
、yaml
、csv
或 html
。例如,输出为 JSON 格式:
nuclei -t cves/2021-12345.yaml -target https://example.com -o output.json
如果想要结果输出到文件并以 HTML 格式呈现:
nuclei -t cves/2021-12345.yaml -target https://example.com -o output.html
d. 扫描指定端口
可以通过 -p
参数指定扫描目标的端口。例如,扫描端口 80 和 443:
nuclei -t cves/2021-12345.yaml -target https://example.com -p 80,443
e. 指定请求头
有时你可能需要自定义 HTTP 请求头,可以通过 -H
参数传递。例如:
nuclei -t cves/2021-12345.yaml -target https://example.com -H "User-Agent: CustomAgent/1.0"
f. 忽略 SSL 验证
如果目标站点启用了自签名证书或者你不想检查 SSL 证书,可以使用 -ssl-verify
参数来忽略 SSL 验证:
nuclei -t cves/2021-12345.yaml -target https://example.com -ssl-verify false
7. 更新模板
Nuclei 会定期更新其漏洞模板库,可以通过以下命令来手动更新模板:
nuclei -update-templates
或者,也可以从 GitHub 上克隆 Nuclei 的模板库,手动获取最新的模板:
git clone https://github.com/projectdiscovery/nuclei-templates
8. 过滤扫描结果
Nuclei 也支持通过 -severity
参数来过滤结果,根据严重性等级进行筛选。严重性等级包括 low
、medium
、high
、critical
。
nuclei -t cves/2021-12345.yaml -target https://example.com -severity high
这只会输出严重性为 high
的漏洞。
9. 扫描时指定请求方法
默认情况下,Nuclei 使用 GET
请求进行扫描,但你也可以使用 -method
参数来指定其他 HTTP 请求方法,如 POST
、PUT
等:
nuclei -t cves/2021-12345.yaml -target https://example.com -method POST
Nuclei__185">10. Nuclei 结果解析
你可以通过解析输出的文件来查看扫描结果。如果你使用 json
或 csv
格式输出,可以使用标准的工具(如 jq
、cat
、grep
)来进一步分析和筛选结果。
例如,查看 json
格式的扫描结果:
cat output.json | jq '.'
或者,如果你想过滤出具体的漏洞信息,可以使用:
cat output.json | jq '.results[] | select(.info.name=="CVE-2021-12345")'