工具 | Nuclei漏洞扫描详解

admin 2024年11月24日14:43:10评论64 views字数 4262阅读14分12秒阅读模式

现在只对常读和星标的公众号才展示大图推送,建议大家能把渗透安全团队设为星标”,否则可能就看不到了啦

一、工具简介

Nuclei是一款基于YAML语法模板开发的定制化快速漏洞扫描器,它使用Go语言开发,具有很强的可配置性,可扩展性和易用性。

官网地址:https://nuclei.projectdiscovery.ioNuclei项目地址:https://github.com/projectdiscovery/nuclei Nuclei-Templates项目地址:https://github.com/projectdiscovery/nuclei-templates 
建议直接使用发行版:https://github.com/projectdiscovery/nuclei/releases,无需我们安装GO环境。

二、功能介绍

1、HTTP/DNS/TCP/文件支持

2、完全可配置的模板

3、大规模扫描

4、基于带外的检测

5、轻松编写自己的模板

三、工具安装

1、安装go语言

由于Nuclei需要最新的go才能安装,安装之前需要先使用一下命令安装go语言。

sudo apt updatesudo apt install golang-go

安装完成后,可使用go version命令来查看GO语言的版本。

2、安装Nuclei

Nuclei官方提供了各种安装方式,用户可以根据自己的实际情况选择合适的安装方式。

#【在线源码编译安装】-需安装Go语言go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest#【本地源码编译安装】-需安装Go语言git clone https://github.com/projectdiscovery/nuclei.gitcd nuclei/v2/cmd/nucleigo buildmv nuclei /usr/local/bin/nuclei -version#【kali一键安装】-【推荐】-不需要安装Go语言,且仅限kali操作系统apt install nuclei#【macOS一键安装】-【推荐】-不需要安装Go语言,且仅限macOS操作系统brew install nuclei#【docker一键安装】-【推荐】-不需要安装Go语言docker pull projectdiscovery/nuclei:latest#【直接下载发行版】-【推荐】-不需要安装Go语言,适合各类操作系统https://github.com/projectdiscovery/nuclei/releases

安装成功后,在终端窗口输入nuclei -version可以查看nuclei版本。

工具 | Nuclei漏洞扫描详解同时字v2.4.0版本以来,Nuclei内置对自动更新/下载模板的支持,初次运行Nuclei会自动下载最新的nuclei-templates到当前用户根目录(/home/当前用户/nuclei-templates)。

Nuclei-Templates项目提供了一个社区贡献的现成模板列表,该列表将不断更新,用户也可以自己下载最新版模板到本地。

Nuclei-Templates下载地址:https://github.com/projectdiscovery/nuclei-templates

四、工具使用

1)nuclei -h

这将显示nuclei的帮助,一下时所有支持的命令

标志:目标:    -u, -target string[] 要扫描的目标 URL/主机    -l, -list 包含要扫描的目标 URL/主机列表的文件的字符串路径(每行一个)    -resume 字符串使用 resume.cfg 恢复扫描(集群将被禁用)    -sa, -scan-all-ips 扫描所有与 dns 记录关联的 IP    -iv, -ip-version string[] 要扫描主机名的 IP 版本 (4,6) -(默认 4模板:    -nt, -new-templates 只运行在最新的 nuclei-templates 版本中添加的新模板    -ntv, -new-templates-version string[] 运行在特定版本中添加的新模板    -as, -automatic-scan 使用 wappalyzer 技术检测到标签映射的自动网络扫描    -t, -templates string[] 要运行的模板列表或模板目录(逗号分隔,文件)    -tu, -template-url string[] 要运行的模板 url 列表(逗号分隔,文件)    -w, -workflows string[] 要运行的工作流或工作流目录列表(逗号分隔,文件)    -wu, -workflow-url string[] 要运行的工作流 url 列表(逗号分隔,文件)    -validate 验证传递给核的模板    -nss, -no-strict-syntax 禁用对模板的严格语法检查    -td, -template-display 显示模板内容    -tl 列出所有可用的模板过滤:    -a, -author string[] 根据作者运行的模板(逗号分隔,文件)    -tags string[] 基于标签运行的模板(逗号分隔,文件)    -etags, -exclude-tags string[] 根据标签排除的模板(逗号分隔,文件)    -itags, -include-tags string[] 标签被执行,即使它们被默认或配置排除    -id, -template-id string[] 根据模板 id(逗号分隔,文件)运行的模板    -eid, -exclude-id string[] 根据模板 ID 排除的模板(逗号分隔,文件)    -it, -include-templates string[] 要执行的模板,即使它们被默认或配置排除    -et, -exclude-templates string[] 要排除的模板或模板目录(逗号分隔,文件)    -em, -exclude-matchers string[] 要在结果中排除的模板匹配器    -s, -severity value[] 根据严重性运行的模板。可能的值:信息、低、中、高、严重、未知    -es, -exclude-severity value[] 根据严重性排除的模板。可能的值:信息、低、中、高、严重、未知    -pt, -type value[] 根据协议类型运行的模板。可能的值:dns、file、http、headless、network、workflow、ssl、websocket、whois    -ept, -exclude-type value[] 根据协议类型排除的模板。可能的值:dns、file、http、headless、network、workflow、ssl、websocket、whois    -tc, -template-condition string[] 根据表达式条件运行的模板输出:    -o, -output string 输出文件写入发现的问题/漏洞    -sresp, -store-resp 将所有通过 nuclei 传递的请求/响应存储到输出目录    -srd, -store-resp-dir string 将所有通过 nuclei 传递的请求/响应存储到自定义目录(默认“输出”)    - 仅静默显示结果    -nc, -no-color 禁用输出内容着色(ANSI 转义码)    -json 以 JSONL(ines) 格式写入输出    -irr, -include-rr 在 JSONL 输出中包含请求/响应对(仅用于结果)    -nm, -no-meta 在 cli 输出中禁用打印结果元数据    -ts, -timestamp 启用在 cli 输出中打印时间戳    -rdb, -report-db string nuclei报告数据库(总是用它来持久化报告数据)    -ms, -matcher-status 显示匹配失败状态    -me, -markdown-export string目录以markdown格式导出结果    -se, -sarif-export 字符串文件以 SARIF 格式导出结果配置:    -config string 内核配置文件的路径    -fr, -follow-redirects 为 http 模板启用跟随重定向    -fhr, -follow-host-redirects 遵循同一主机上的重定向    -mr, -max-redirects int HTTP 模板要遵循的最大重定向数(默认为 10    -dr, -disable-redirects 禁用 http 模板的重定向    -rc, -report-config string 核报告模块配置文件    -H, -header string[] 自定义标头/cookie,以标头:值格式(cli,文件)包含在所有 http 请求中    -V, -var value key=value 格式的自定义变量    -r, -resolvers 包含核解析器列表的字符串文件    -sr, -system-resolvers 使用系统 DNS 解析作为错误回退

五、更新Nuclei

使用nuclei -update命令来讲您的Nuclei更新到最新的版本。

使用nuclei -update-templates命令将您的核心模板nuclei-templates更新到最新的版本,另外Nuclei本身每24小时也会进行一次自动更新。

工具 | Nuclei漏洞扫描详解

六、使用

1、扫描单个目标

nuclei -u http://192.168.61.1/#使用socks5代理nuclei -u http://192.168.61.1/ -p socks5://127.0.0.1:1080#使用http代理nuclei -u http://192.168.61.1/ -p http://127.0.0.1:8080

工具 | Nuclei漏洞扫描详解

2、扫描多个目标

nuclei -list urls.txt#使用socks5代理nuclei -list urls.txt -p socks5://127.0.0.1:1080#使用http代理nuclei -list urls.txt -p http://127.0.0.1:8080其中urls.txt为扫描目标的url。

3、自定义报告格式

Nuclei提供了扫描结果输出功能,用户可以根据自己的需求,自定义输出各种类型的报告格式,包括文本,JSON,Markdown等。

#输出结果为JSON格式nuclei -u https://example.com -json #输出结果保存到result.txt文件nuclei -u https://example.com -o result.txt  #输出结果保存到Markdown格式文件nuclei -u https://example.com -me result


原文始发于微信公众号(渗透安全团队):工具 | Nuclei漏洞扫描详解

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月24日14:43:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   工具 | Nuclei漏洞扫描详解https://cn-sec.com/archives/1672334.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息