工具
Metasploit Framework
Nmap
SQLMap
Dirb
Gobuster
Netcat
反弹shell
Hydra
wfuzz
wpscan
searchsploit
字典
arp-scan
hashcat
Netdiscover
Cobalt Strike
Goby
Nessus
Xray
Nuclei
-
+
首页
Nuclei
 官网地址:https://projectdiscovery.io/ 官网文档:https://docs.projectdiscovery.io/opensource/nuclei/overview nuclei 项目地址:https://github.com/projectdiscovery/nuclei nuclei 模板 项目地址:https://github.com/projectdiscovery/nuclei-templates ## 概述 Nuclei 是一款由go语言开发、基于简单 YAML 模板的快速且可定制的漏洞扫描器,旨在探测现代应用程序、基础设施、云平台和网络,帮助识别和缓解可利用的漏洞。 Nuclei 的核心是使用模板—以简单的 YAML 文件形式表达——来描述检测、排序和解决特定安全漏洞的方法。 每个模板都描述了一条可能的攻击路径,详细说明了漏洞、其严重程度、优先级,以及有时相关的利用方法。这种以模板为中心的策略确保 Nuclei 不仅能够识别潜在威胁,还能精准定位具有实际影响的可利用漏洞。 ## 模板 迄今为止,Nuclei 已收录超过 6500 个模板,并持续更新,包含真实世界的漏洞利用和前沿的攻击向量。 Nuclei 模板支持扫描关键问题,例如 Log4j 漏洞和影响 GitLab、Cisco、F5 等众多厂商的远程代码执行 (RCE) 漏洞。Nuclei 有数十种应用场景,包括: | 用例 | 描述 | | :---------------------- | :----------------------------------------------------------- | | Web应用程序安全 | 利用社区提供的模板识别常见的网络漏洞。 | | 基础设施安全 | 审核服务器配置、开放端口和不安全服务,以发现安全问题。 | | API 安全测试 alpha | 测试 API 是否存在已知漏洞和错误配置。 | | CI/CD 安全 | 集成到 CI/CD 管道中,以最大限度地减少漏洞在生产环境中再次出现。 | | 第三方供应商评估 | 通过扫描第三方供应商的数字资产来评估其安全性。 | | 云安全alpha | 扫描云环境,查找配置错误和漏洞。 | | 移动应用安全 | 扫描移动应用程序的安全问题,包括 API 测试和配置检查。 | | 网络设备安全alpha | 识别路由器、交换机和防火墙等网络设备中的漏洞。 | | Web 服务器评估 | 识别 Web 服务器中的常见漏洞和错误配置。 | | 内容管理系统 (CMS) 评估 | 识别 WordPress、Joomla 或 Drupal 等 CMS 平台特有的漏洞。 | | 数据库安全评估 | 扫描数据库以查找已知漏洞、默认配置和访问控制问题。 | ## 特征 | 特征 | 描述 | | :----------------------------------------------------------- | :----------------------------------------------------------- | | 丰富的模板库 | Nuclei 提供大量由社区驱动的模板,用于针对各种漏洞和攻击向量进行有针对性的扫描。 | | 多功能目标规格 | 支持各种目标指定选项,例如 URL、IP 范围、ASN 范围和文件输入,从而可以灵活地定义扫描范围。 | | 批量扫描 | 通过一次指定多个目标执行批量扫描,可以高效地扫描大量资产或网站。 | | 灵活定制 | 自定义扫描模板以满足特定需求,实现定制化扫描并专注于相关的安全检查。 | | 并行扫描 | 支持并行扫描,可减少扫描时间,提高效率,尤其适用于大尺寸目标。 | | 综合报告cloud | 生成包含可操作见解的详细报告,包括漏洞详情、严重级别、受影响的端点和建议的补救步骤。 | | 与 CI/CD 流水线集成 | 将 Nuclei 无缝集成到 CI/CD 管道中,以便在开发和部署过程中实现自动化安全测试。 | | CI/CD 集成cloud | 由 ProjectDiscovery 团队积极维护和开发,不断引入新功能、修复错误并进行增强,以提供最新的扫描框架。 | | 票务集成cloud | 与 Jira、Splunk 等多种工具实现双向工单集成,以便轻松修复和重新测试漏洞。 | | 可自定义输出格式 | 您可以根据需要配置 Nuclei 扫描结果的输出格式,包括 JSON、YAML 等选项。 | | 动态变量 | 利用模板中的动态变量执行参数化扫描,从而实现多样化和灵活的扫描配置。 | | 包含和排除过滤器 | 应用包含和排除过滤器来指定目标,缩小扫描范围并专注于特定的感兴趣区域。 | | [身份验证支持](https://docs.projectdiscovery.io/opensource/nuclei/authenticated-scans) | Nuclei 支持多种身份验证机制,包括 HTTP 基本身份验证、JWT 令牌身份验证等。 | | 在模板中嵌入自定义代码 | 在 Nuclei 模板中执行自定义代码,以整合用户定义的逻辑、执行高级扫描操作等等。 | | 人工智能驱动的模板生成 | 利用 ProjectDiscovery 的 AI 功能,通过自然语言描述即时生成和运行漏洞模板。 | ## 安装 nuclei需要Go 版本 >= 1.24.1才能成功安装,https://go.dev/doc/install 所有版本:https://go.dev/dl/ 1、先安装go语言环境:  2、nuclei下载地址:https://github.com/projectdiscovery/nuclei/releases 将下载的压缩包进行解压:  3、以cmd打开当前路径,获取nuclei的帮助文档:  ## 使用 帮助文档:nuclei -h 单目标扫描: ```cmd nuclei -target https://example.com ``` 多目标扫描: ```cmd nuclei -target https://example.com ``` 网络扫描:查找与网络相关的问题,例如开放的端口或配置错误的服务。 ```cmd nuclei -target 192.168.1.0/24 ``` 使用自定义模板扫描: ```cmd nuclei -u https://example.com -t /path/to/your-template.yaml ``` 扫描结果:  ## 所有支持的命令 ```txt Nuclei是一款注重于可配置性、可扩展性和易用性的基于模板的快速漏洞扫描器。 用法: nuclei [命令] 命令: 目标: -u, -target string[] 指定扫描的目标URL/主机(多个目标则指定多个-u参数) -l, -list string 指定包含要扫描的目标URL/主机列表的文件路径(一行一个) -resume string 使用指定的resume.cfg文件恢复扫描(将禁用请求聚类) -sa, -scan-all-ips 扫描由目标解析出来的所有IP(针对域名对应多个IP的情况) -iv, -ip-version string[] 要扫描的主机名的IP版本(4,6)-(默认为4) 模板: -nt, -new-templates 仅运行最新发布的nuclei模板 -ntv, -new-templates-version string[] 仅运行特定版本中添加的新模板 -as, -automatic-scan 基于Wappalyzer技术的标签映射自动扫描 -t, -templates string[] 指定要运行的模板或者模板目录(以逗号分隔或目录形式) -turl, -template-url string[] 指定要运行的模板URL或模板目录URL(以逗号分隔或目录形式) -w, -workflows string[] 指定要运行的工作流或工作流目录(以逗号分隔或目录形式) -wurl, -workflow-url string[] 指定要运行的工作流URL或工作流目录URL(以逗号分隔或目录形式) -validate 使用nuclei验证模板有效性 -nss, -no-strict-syntax 禁用对模板的严格检查 -td, -template-display 显示模板内容 -tl 列出所有可用的模板 -sign 使用NUCLEI_SIGNATURE_PRIVATE_KEY环境变量中的私钥对模板进行签名 -code 启用加载基于协议的代码模板 过滤: -a, -author string[] 执行指定作者的模板(逗号分隔,文件) -tags string[] 执行带指定tag的模板(逗号分隔,文件) -etags, -exclude-tags string[] 排除带指定tag的模板(逗号分隔,文件) -itags, -include-tags string[] 执行带有指定tag的模板,即使是被默认或者配置排除的模板 -id, -template-id string[] 执行指定id的模板(逗号分隔,文件) -eid, -exclude-id string[] 排除指定id的模板(逗号分隔,文件) -it, -include-templates string[] 执行指定模板,即使是被默认或配置排除的模板 -et, -exclude-templates string[] 排除指定模板或者模板目录(逗号分隔,文件) -em, -exclude-matchers string[] 排除指定模板matcher -s, -severity value[] 根据严重程度运行模板,可选值有:info,low,medium,high,critical -es, -exclude-severity value[] 根据严重程度排除模板,可选值有:info,low,medium,high,critical -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的所有请求和响应输出到指定目录(默认:output) -silent 只显示结果 -nc, -no-color 禁用输出内容着色(ANSI转义码) -j, -jsonl 输出格式为jsonL(ines) -irr, -include-rr 在JSON、JSONL和Markdown中输出请求/响应对(仅结果)[已弃用,使用-omit-raw替代] -or, -omit-raw 在JSON、JSONL和Markdown中不输出请求/响应对 -ot, -omit-template 省略JSON、JSONL输出中的编码模板 -nm, -no-meta 在cli输出中不打印元数据 -ts, -timestamp 在cli输出中打印时间戳 -rdb, -report-db string 本地的nuclei结果数据库(始终使用该数据库保存结果) -ms, -matcher-status 显示匹配失败状态 -me, -markdown-export string 以markdown格式导出结果 -se, -sarif-export string 以SARIF格式导出结果 -je, -json-export string 以JSON格式导出结果 -jle, -jsonl-export string 以JSONL(ine)格式导出结果 配置: -config string 指定nuclei的配置文件 -fr, -follow-redirects 为HTTP模板启用重定向 -fhr, -follow-host-redirects 允许在同一主机上重定向 -mr, -max-redirects int HTTP模板最大重定向次数(默认:10) -dr, -disable-redirects 为HTTP模板禁用重定向 -rc, -report-config string 指定nuclei报告模板文件 -H, -header string[] 指定在所有http请求中包含的自定义header、cookie,以header:value的格式指定(cli,文件) -V, -var value 以key=value格式自定义变量 -r, -resolvers string 指定包含DNS解析服务列表的文件 -sr, -system-resolvers 当DNS错误时使用系统DNS解析服务 -dc, -disable-clustering 关闭请求聚类功能 -passive 启用被动模式处理本地HTTP响应数据 -fh2, -force-http2 强制使用http2连接 -ev, env-vars 启用在模板中使用环境变量 -cc, -client-cert string 用于对扫描的主机进行身份验证的客户端证书文件(PEM 编码) -ck, -client-key string 用于对扫描的主机进行身份验证的客户端密钥文件(PEM 编码) -ca, -client-ca string 用于对扫描的主机进行身份验证的客户端证书颁发机构文件(PEM 编码) -sml, -show-match-line 显示文件模板的匹配值,只适用于提取器 -ztls 使用ztls库,带有自动回退到标准库tls13 [已弃用] 默认情况下启用对ztls的自动回退 -sni string 指定tls sni的主机名(默认为输入的域名) -lfa, -allow-local-file-access 允许访问本地文件(payload文件) -lna, -restrict-local-network-access 阻止对本地/私有网络的连接 -i, -interface string 指定用于网络扫描的网卡 -at, -attack-type string payload的组合模式(batteringram,pitchfork,clusterbomb) -sip, -source-ip string 指定用于网络扫描的源IP -rsr, -response-size-read int 最大读取响应大小(默认:10485760字节) -rss, -response-size-save int 最大储存响应大小(默认:1048576字节) -reset 删除所有nuclei配置和数据文件(包括nuclei-templates) -tlsi, -tls-impersonate 启用实验性的Client Hello(ja3)TLS 随机化功能 交互: -inserver, -ineractsh-server string 使用interactsh反连检测平台(默认为oast.pro,oast.live,oast.site,oast.online,oast.fun,oast.me) -itoken, -interactsh-token string 指定反连检测平台的身份凭证 -interactions-cache-size int 指定保存在交互缓存中的请求数(默认:5000) -interactions-eviction int 从缓存中删除请求前等待的时间(默认为60秒) -interactions-poll-duration int 每个轮询前等待时间(默认为5秒) -interactions-cooldown-period int 退出轮询前的等待时间(默认为5秒) -ni, -no-interactsh 禁用反连检测平台,同时排除基于反连检测的模板 模糊测试: -ft, -fuzzing-type string 覆盖模板中设置的模糊测试类型(replace、prefix、postfix、infix) -fm, -fuzzing-mode string 覆盖模板中设置的模糊测试模式(multiple、single) UNCOVER引擎: -uc, -uncover 启动uncover引擎 -uq, -uncover-query string[] uncover查询语句 -ue, -uncover-engine string[] 指定uncover查询引擎 (shodan,censys,fofa,shodan-idb,quake,hunter,zoomeye,netlas,criminalip,publicwww,hunterhow) (默认 shodan) -uf, -uncover-field string 查询字段 (ip,port,host) (默认 "ip:port") -ul, -uncover-limit int 查询结果数 (默认 100) -ur, -uncover-ratelimit int 查询速率,默认每分钟60个请求(默认 60) 限速: -rl, -rate-limit int 每秒最大请求量(默认:150) -rlm, -rate-limit-minute int 每分钟最大请求量 -bs, -bulk-size int 每个模板最大并行检测数(默认:25) -c, -concurrency int 并行执行的最大模板数量(默认:25) -hbs, -headless-bulk-size int 每个模板并行运行的无头主机最大数量(默认:10) -headc, -headless-concurrency int 并行指定无头主机最大数量(默认:10) 优化: -timeout int 超时时间(默认为10秒) -retries int 重试次数(默认:1) -ldp, -leave-default-ports 指定HTTP/HTTPS默认端口(例如:host:80,host:443) -mhe, -max-host-error int 某主机扫描失败次数,跳过该主机(默认:30) -te, -track-error string[] 将给定错误添加到最大主机错误监视列表(标准、文件) -nmhe, -no-mhe disable skipping host from scan based on errors -project 使用项目文件夹避免多次发送同一请求 -project-path string 设置特定的项目文件夹 -spm, -stop-at-first-path 得到一个结果后停止(或许会中断模板和工作流的逻辑) -stream 流模式 - 在不整理输入的情况下详细描述 -ss, -scan-strategy value 扫描时使用的策略(auto/host-spray/template-spray) (默认 auto) -irt, -input-read-timeout duration 输入读取超时时间(默认:3分钟) -nh, -no-httpx 禁用对非URL输入进行httpx探测 -no-stdin 禁用标准输入 无界面浏览器: -headless 启用需要无界面浏览器的模板 -page-timeout int 在无界面下超时秒数(默认:20) -sb, -show-brower 在无界面浏览器运行模板时,显示浏览器 -ho, -headless-options string[] 使用附加选项启动无界面浏览器 -sc, -system-chrome 不使用Nuclei自带的浏览器,使用本地浏览器 -lha, -list-headless-action 列出可用的无界面操作 调试: -debug 显示所有请求和响应 -dreq, -debug-req 显示所有请求 -dresp, -debug-resp 显示所有响应 -p, -proxy string[] 使用http/socks5代理(逗号分隔,文件) -pi, -proxy-internal 代理所有请求 -ldf, -list-dsl-function 列出所有支持的DSL函数签名 -tlog, -trace-log string 写入跟踪日志到文件 -elog, -error-log string 写入错误日志到文件 -version 显示版本信息 -hm, -hang-monitor 启用对nuclei挂起协程的监控 -v, -verbose 显示详细信息 -profile-mem string 将Nuclei的内存转储成文件 -vv 显示额外的详细信息 -svd, -show-var-dump 显示用于调试的变量输出 -ep, -enable-pprof 启用pprof调试服务器 -tv, -templates-version 显示已安装的模板版本 -hc, -health-check 运行诊断检查 升级: -up, -update 更新Nuclei到最新版本 -ut, -update-templates 更新Nuclei模板到最新版 -ud, -update-template-dir string 指定模板目录 -duc, -disable-update-check 禁用nuclei程序与模板更新 统计: -stats 显示正在扫描的统计信息 -sj, -stats-json 将统计信息以JSONL格式输出到文件 -si, -stats-inerval int 显示统计信息更新的间隔秒数(默认:5) -mp, -metrics-port int 更改metrics服务的端口(默认:9092) 云服务: -auth 配置projectdiscovery云服务(pdcp)API密钥 -cup, -cloud-upload 将扫描结果上传到pdcp仪表板 -sid, -scan-id string 将扫描结果上传到指定的扫描ID 例子: 扫描一个单独的URL: $ nuclei -target example.com 对URL运行指定的模板: $ nuclei -target example.com -t http/cves/ -t ssl 扫描hosts.txt中的多个URL: $ nuclei -list hosts.txt 输出结果为JSON格式: $ nuclei -target example.com -json-export output.json 使用已排序的Markdown输出(使用环境变量)运行nuclei: $ MARKDOWN_EXPORT_SORT_MODE=template nuclei -target example.com -markdown-export nuclei_report/ ```
毛林
2025年11月2日 13:06
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码