长亭百川云 - 产品详情

banner
产品logo

nuclei

156

0

基于简单 YAML DSL 的快速且可定制的漏洞扫描程序。

产品logo
nuclei

基于简单 YAML DSL 的快速且可定制的漏洞扫描程序。

产品关联图片
预览
产品关联图片
预览


Nuclei

基于YAML语法模板的定制化快速漏洞扫描器

markdown-img markdown-img markdown-img markdown-img markdown-img markdown-img markdown-img markdown-img

工作流程安装对于安全工程师对于开发者文档致谢常见问题加入Discord

English中文KoreanIndonesiaSpanish


Nuclei使用零误报的定制模板向目标发送请求,同时可以对主机进行批量快速扫描。Nuclei提供TCP、DNS、HTTP、FILE等各类协议的扫描,通过强大且灵活的模板,可以使用Nuclei模拟各种安全检查。

我们的模板仓库包含超过300名安全研究员和工程师提供的模板。

工作流程

nuclei-flow

:exclamation: 免责声明
这个项目正在积极开发中。预计发布会带来突破性的更改。更新前请查看版本更改日志。
这个项目主要是为了作为一个独立的命令行工具而构建的。 将Nuclei作为服务运行可能存在安全风险。 强烈建议谨慎使用,并采取额外的安全措施。

安装Nuclei

Nuclei需要 go1.21 才能安装成功。执行下列命令安装最新版本的Nuclei

1go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
Brew
1brew install nuclei
Docker
1docker pull projectdiscovery/nuclei:latest

更多的安装方式 请点击此处.

Nuclei模板

自从v2.5.2起,Nuclei就内置了自动下载和更新模板的功能。Nuclei模板仓库随时更新社区中可用的模板列表。

您仍然可以随时使用update-templates命令更新模板,您可以根据模板指南为您的个人工作流和需求编写模板。

YAML的语法规范在这里

用法

1nuclei -h

这将显示Nuclei的帮助,以下是所有支持的命令。

1Nuclei是一款注重于可配置性、可扩展性和易用性的基于模板的快速漏洞扫描器。
2
3用法:
4  nuclei [命令]
5
6命令:
7目标:
8   -u, -target string[]                  指定扫描的目标URL/主机(多个目标则指定多个-u参数)
9   -l, -list string                      指定包含要扫描的目标URL/主机列表的文件路径(一行一个)
10   -resume string                        使用指定的resume.cfg文件恢复扫描(将禁用请求聚类)
11   -sa, -scan-all-ips                    扫描由目标解析出来的所有IP(针对域名对应多个IP的情况)
12   -iv, -ip-version string[]             要扫描的主机名的IP版本(4,6)-(默认为413
14模板:
15   -nt, -new-templates                    仅运行最新发布的nuclei模板
16   -ntv, -new-templates-version string[]  仅运行特定版本中添加的新模板
17   -as, -automatic-scan                   基于Wappalyzer技术的标签映射自动扫描
18   -t, -templates string[]                指定要运行的模板或者模板目录(以逗号分隔或目录形式)
19   -turl, -template-url string[]          指定要运行的模板URL或模板目录URL(以逗号分隔或目录形式)
20   -w, -workflows string[]                指定要运行的工作流或工作流目录(以逗号分隔或目录形式)
21   -wurl, -workflow-url string[]          指定要运行的工作流URL或工作流目录URL(以逗号分隔或目录形式)
22   -validate                              使用nuclei验证模板有效性
23   -nss, -no-strict-syntax                禁用对模板的严格检查
24   -td, -template-display                 显示模板内容
25   -tl                                    列出所有可用的模板
26   -sign                                  使用NUCLEI_SIGNATURE_PRIVATE_KEY环境变量中的私钥对模板进行签名
27   -code                                  启用加载基于协议的代码模板
28
29过滤:
30   -a, -author string[]                  执行指定作者的模板(逗号分隔,文件)
31   -tags string[]                        执行带指定tag的模板(逗号分隔,文件)
32   -etags, -exclude-tags string[]        排除带指定tag的模板(逗号分隔,文件)
33   -itags, -include-tags string[]        执行带有指定tag的模板,即使是被默认或者配置排除的模板
34   -id, -template-id string[]            执行指定id的模板(逗号分隔,文件)
35   -eid, -exclude-id string[]            排除指定id的模板(逗号分隔,文件)
36   -it, -include-templates string[]      执行指定模板,即使是被默认或配置排除的模板
37   -et, -exclude-templates string[]      排除指定模板或者模板目录(逗号分隔,文件)
38   -em, -exclude-matchers string[]       排除指定模板matcher
39   -s, -severity value[]                 根据严重程度运行模板,可选值有:info,low,medium,high,critical   
40   -es, -exclude-severity value[]        根据严重程度排除模板,可选值有:info,low,medium,high,critical
41   -pt, -type value[]                    根据类型运行模板,可选值有:dns, file, http, headless, network, workflow, ssl, websocket, whois
42   -ept, -exclude-type value[]           根据类型排除模板,可选值有:dns, file, http, headless, network, workflow, ssl, websocket, whois
43   -tc, -template-condition string[]     根据表达式运行模板
44   
45
46输出:
47   -o, -output string                    输出发现的问题到文件
48   -sresp, -store-resp                   将nuclei的所有请求和响应输出到目录
49   -srd, -store-resp-dir string          将nuclei的所有请求和响应输出到指定目录(默认:output)
50   -silent                               只显示结果
51   -nc, -no-color                        禁用输出内容着色(ANSI转义码)
52   -j, -jsonl                            输出格式为jsonL(ines)
53   -irr, -include-rr                     在JSON、JSONL和Markdown中输出请求/响应对(仅结果)[已弃用,使用-omit-raw替代]
54   -or, -omit-raw                        在JSON、JSONL和Markdown中不输出请求/响应对
55   -ot, -omit-template           省略JSON、JSONL输出中的编码模板
56   -nm, -no-meta                         在cli输出中不打印元数据
57   -ts, -timestamp                       在cli输出中打印时间戳
58   -rdb, -report-db string               本地的nuclei结果数据库(始终使用该数据库保存结果)
59   -ms, -matcher-status                  显示匹配失败状态
60   -me, -markdown-export string          以markdown格式导出结果
61   -se, -sarif-export string             以SARIF格式导出结果
62   -je, -json-export string              以JSON格式导出结果
63   -jle, -jsonl-export string            以JSONL(ine)格式导出结果
64
65
66配置:
67   -config string                        指定nuclei的配置文件
68   -fr, -follow-redirects                为HTTP模板启用重定向
69   -fhr, -follow-host-redirects          允许在同一主机上重定向
70   -mr, -max-redirects int               HTTP模板最大重定向次数(默认:1071   -dr, -disable-redirects               为HTTP模板禁用重定向
72   -rc, -report-config string            指定nuclei报告模板文件
73   -H, -header string[]                  指定在所有http请求中包含的自定义header、cookie,以header:value的格式指定(cli,文件)
74   -V, -var value                        以key=value格式自定义变量
75   -r, -resolvers string                 指定包含DNS解析服务列表的文件
76   -sr, -system-resolvers                当DNS错误时使用系统DNS解析服务
77   -dc, -disable-clustering              关闭请求聚类功能
78   -passive                              启用被动模式处理本地HTTP响应数据
79   -fh2, -force-http2                    强制使用http2连接
80   -ev, env-vars                         启用在模板中使用环境变量
81   -cc, -client-cert string              用于对扫描的主机进行身份验证的客户端证书文件(PEM 编码)
82   -ck, -client-key string               用于对扫描的主机进行身份验证的客户端密钥文件(PEM 编码)
83   -ca, -client-ca string                用于对扫描的主机进行身份验证的客户端证书颁发机构文件(PEM 编码)
84   -sml, -show-match-line                显示文件模板的匹配值,只适用于提取器
85   -ztls                                 使用ztls库,带有自动回退到标准库tls13 [已弃用] 默认情况下启用对ztls的自动回退
86   -sni string                           指定tls sni的主机名(默认为输入的域名)
87   -lfa, -allow-local-file-access        允许访问本地文件(payload文件)
88   -lna, -restrict-local-network-access  阻止对本地/私有网络的连接
89   -i, -interface string                 指定用于网络扫描的网卡
90   -at, -attack-type string              payload的组合模式(batteringram,pitchfork,clusterbomb91   -sip, -source-ip string               指定用于网络扫描的源IP
92   -rsr, -response-size-read int         最大读取响应大小(默认:10485760字节)
93   -rss, -response-size-save int         最大储存响应大小(默认:1048576字节)
94   -reset                                删除所有nuclei配置和数据文件(包括nuclei-templates95   -tlsi, -tls-impersonate               启用实验性的Client Helloja3TLS 随机化功能
96
97
98交互:
99   -inserver, -ineractsh-server string   使用interactsh反连检测平台(默认为oast.pro,oast.live,oast.site,oast.online,oast.fun,oast.me100   -itoken, -interactsh-token string     指定反连检测平台的身份凭证
101   -interactions-cache-size int          指定保存在交互缓存中的请求数(默认:5000102   -interactions-eviction int            从缓存中删除请求前等待的时间(默认为60秒)
103   -interactions-poll-duration int       每个轮询前等待时间(默认为5秒)
104   -interactions-cooldown-period int     退出轮询前的等待时间(默认为5秒)
105   -ni, -no-interactsh                   禁用反连检测平台,同时排除基于反连检测的模板
106
107
108模糊测试:
109   -ft, -fuzzing-type string             覆盖模板中设置的模糊测试类型(replaceprefixpostfixinfix110   -fm, -fuzzing-mode string             覆盖模板中设置的模糊测试模式(multiplesingle111
112
113UNCOVER引擎:
114   -uc, -uncover                         启动uncover引擎
115   -uq, -uncover-query string[]          uncover查询语句
116   -ue, -uncover-engine string[]         指定uncover查询引擎 (shodan,censys,fofa,shodan-idb,quake,hunter,zoomeye,netlas,criminalip,publicwww,hunterhow) (默认 shodan117   -uf, -uncover-field string            查询字段 (ip,port,host) (默认 "ip:port")
118   -ul, -uncover-limit int               查询结果数 (默认 100119   -ur, -uncover-ratelimit int           查询速率,默认每分钟60个请求(默认 60120
121
122限速:
123   -rl, -rate-limit int                  每秒最大请求量(默认:150124   -rlm, -rate-limit-minute int          每分钟最大请求量
125   -bs, -bulk-size int                   每个模板最大并行检测数(默认:25126   -c, -concurrency int                  并行执行的最大模板数量(默认:25127   -hbs, -headless-bulk-size int         每个模板并行运行的无头主机最大数量(默认:10128   -headc, -headless-concurrency int     并行指定无头主机最大数量(默认:10129
130
131优化:
132   -timeout int                          超时时间(默认为10秒)
133   -retries int                          重试次数(默认:1134   -ldp, -leave-default-ports            指定HTTP/HTTPS默认端口(例如:host:80host:443135   -mhe, -max-host-error int             某主机扫描失败次数,跳过该主机(默认:30136   -te, -track-error string[]            将给定错误添加到最大主机错误监视列表(标准、文件)
137   -nmhe, -no-mhe                        disable skipping host from scan based on errors
138   -project                              使用项目文件夹避免多次发送同一请求
139   -project-path string                  设置特定的项目文件夹
140   -spm, -stop-at-first-path             得到一个结果后停止(或许会中断模板和工作流的逻辑)
141   -stream                               流模式 - 在不整理输入的情况下详细描述
142   -ss, -scan-strategy value             扫描时使用的策略(auto/host-spray/template-spray) (默认 auto143   -irt, -input-read-timeout duration    输入读取超时时间(默认:3分钟)
144   -nh, -no-httpx                        禁用对非URL输入进行httpx探测
145   -no-stdin                             禁用标准输入
146
147无界面浏览器:
148    -headless                            启用需要无界面浏览器的模板
149    -page-timeout int                    在无界面下超时秒数(默认:20150    -sb, -show-brower                    在无界面浏览器运行模板时,显示浏览器
151    -ho, -headless-options string[]      使用附加选项启动无界面浏览器
152    -sc, -system-chrome                  不使用Nuclei自带的浏览器,使用本地浏览器
153    -lha, -list-headless-action          列出可用的无界面操作
154
155调试:
156    -debug                               显示所有请求和响应
157    -dreq, -debug-req                    显示所有请求
158    -dresp, -debug-resp                  显示所有响应
159    -p, -proxy string[]                  使用http/socks5代理(逗号分隔,文件)
160    -pi, -proxy-internal                 代理所有请求
161    -ldf, -list-dsl-function             列出所有支持的DSL函数签名
162    -tlog, -trace-log string             写入跟踪日志到文件
163    -elog, -error-log string             写入错误日志到文件
164    -version                             显示版本信息
165    -hm, -hang-monitor                   启用对nuclei挂起协程的监控
166    -v, -verbose                         显示详细信息
167    -profile-mem stringNuclei的内存转储成文件
168    -vv                                  显示额外的详细信息
169    -svd, -show-var-dump                 显示用于调试的变量输出
170    -ep, -enable-pprof                   启用pprof调试服务器
171    -tv, -templates-version              显示已安装的模板版本
172    -hc, -health-check                   运行诊断检查
173
174升级:
175    -up, -update                         更新Nuclei到最新版本
176    -ut, -update-templates               更新Nuclei模板到最新版
177    -ud, -update-template-dir string     指定模板目录
178    -duc, -disable-update-check          禁用nuclei程序与模板更新
179
180统计:
181    -stats                               显示正在扫描的统计信息
182    -sj, -stats-json                     将统计信息以JSONL格式输出到文件
183    -si, -stats-inerval int              显示统计信息更新的间隔秒数(默认:5184    -mp, -metrics-port int               更改metrics服务的端口(默认:9092185
186云服务:
187   -auth                  配置projectdiscovery云服务(pdcpAPI密钥
188   -cup, -cloud-upload    将扫描结果上传到pdcp仪表板
189   -sid, -scan-id string  将扫描结果上传到指定的扫描ID
190
191例子:
192扫描一个单独的URL:
193	$ nuclei -target example.com
194
195URL运行指定的模板:
196	$ nuclei -target example.com -t http/cves/ -t ssl
197
198扫描hosts.txt中的多个URL:
199	$ nuclei -list hosts.txt
200
201输出结果为JSON格式:
202	$ nuclei -target example.com -json-export output.json
203
204使用已排序的Markdown输出(使用环境变量)运行nuclei:
205	$ MARKDOWN_EXPORT_SORT_MODE=template nuclei -target example.com -markdown-export nuclei_report/
206

更多信息请参考文档: https://docs.nuclei.sh/getting-started/running

运行Nuclei

使用社区提供的模板扫描单个目标

1nuclei -u https://example.com

使用社区提供的模板扫描多个目标

1nuclei -list urls.txt

Example of urls.txt:

1http://example.com
2http://app.example.com
3http://test.example.com
4http://uat.example.com

更多关于Nuclei的详细实例可以在这里找到

对于安全工程师

Nuclei提供了大量有助于安全工程师在工作流定制相关的功能。通过各种扫描功能(如DNS、HTTP、TCP),安全工程师可以更轻松的使用Nuclei创建一套自定义的检查方式。

  • 支持多种协议:TCP、DNS、HTTP、FILE等
  • 通过工作流和动态请求实现复杂的漏洞扫描
  • 易于集成到CI/CD,旨在可以轻松的集成到周期扫描中,以主动检测漏洞的修复和重新出现

Learn More

对于赏金猎人:

Nuclei允许您定制自己的测试方法,可以轻松的运行您的程序。此外Nuclei可以更容易的集成到您的漏洞扫描工作流中。

  • 可以集成到其他工作流中
  • 可以在几分钟处理上千台主机
  • 使用YAML语法定制自动化测试

欢迎查看我们其他的开源项目,可能有适合您的赏金猎人工作流:github.com/projectdiscovery,我们还使用Chaos绘制了每日的DNS数据

对于渗透测试:

Nuclei通过增加手动、自动的过程,极大地改变了安全评估的方式。一些公司已经在用Nuclei升级他们的手动测试步骤,可以使用Nulcei对数千台主机使用同样的流程自动化测试。

渗透测试员可以使用公共模板或者自定义模板来更快的完成渗透测试,特别是漏洞验证时,可以轻松的验证漏洞是否修复。

  • 轻松根据您的要求创建标准清单(例如:OWASP TOP 10)
  • 通过FUZZ工作流等功能,可以使用Nuclei完成复杂的手动步骤和重复性渗透测试
  • 只需要重新运行Nuclei即可验证漏洞修复情况

对于开发和组织

Nuclei构建很简单,通过数百名安全研究员的社区模板,Nuclei可以随时扫描来了解安全威胁。Nuclei通常用来用于复测,以确定漏洞是否被修复。

  • CI/CD: 工程师已经支持了CI/CD,可以通过Nuclei使用定制模板来监控模拟环境和生产环境
  • 周期性扫描: 使用Nuclei创建新发现的漏洞模板,通过Nuclei可以周期性扫描消除漏洞

我们有个讨论组,黑客提交自己的模板后可以获得赏金,这可以减少资产的漏洞,并且减少重复。如果你想实行该计划,可以联系我。我们非常乐意提供帮助,或者在讨论组中发布相关信息。

regression-cycle-with-nuclei

Learn More

将nuclei加入您的代码

有关使用Nuclei作为Library/SDK的完整指南,请访问godoc

资源

致谢

感谢所有社区贡献者提供的PR,并不断更新此项目:heart:

如果你有想法或某种改进,欢迎你参与该项目,随时发送你的PR。

markdown-img

另外您可以了解其他类似的开源项目:

FFuF, Qsfuzz, Inception, Snallygaster, Gofingerprint, Sn1per, Google tsunami, Jaeles, ChopChop

许可证

Nuclei使用MIT许可证

Join Discord Check Nuclei Documentation

1.5k

7

一款足够简单、足够好用、足够强的免费 WAF。基于业界领先的语义引擎检测技术,作为反向代理接入,保护你的网站不受黑客攻击。

产品关联图片
预览
产品关联图片
预览
产品关联图片
预览
产品关联图片
预览
产品logo

长亭科技

1.3k

3

百川云堡垒机是一款简单、方便、好用的服务器统一管理、监控工具。

产品关联图片
预览
产品关联图片
预览
产品关联图片
预览
产品关联图片
预览
产品logo

长亭科技

763

2

洞鉴是一款从资产视角出发,集Web漏洞扫描、主机服务漏洞扫描、基线合规检查于一体,实现资产风险闭环管理的安全评估系统。

基于 Nginx 的开源 WAF,让 Web 服务自带安全能力

产品关联图片
预览
产品关联图片
预览
产品关联图片
预览
产品关联图片
预览
产品关联图片
预览
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2