Skip to main content
如果您有其他问题需要报告,我们很乐意与社区分享。请加入我们的 Discord 服务器,或通过 GitHub 联系我们。

通用问题

关于Nuclei的通用主题问题和答案。
Nuclei是一个强大的开源漏洞扫描器,快速且可定制。它使用简单的模板(基于YAML)来描述如何检测、优先处理和修复Nuclei扫描引擎的安全漏洞。 两个组件,Nuclei引擎 - 是项目的核心。它允许在非常简单易读易写的基于YAML的格式中编写基于HTTP / DNS / Network / Headless / File协议的检查。 Nuclei 模板 - 是自定义创建或即用型的社区贡献漏洞模板。
Nuclei的创建是为了解决传统扫描器的许多限制,这些扫描器总是缺乏允许在其引擎上轻松编写自定义检查的功能。 Nuclei的构建注重简单性、模块化和能够扩展对多资产的扫描能力。最终,我们想创建一个足够简单的工具,让每个人都能使用,同时具有足够的复杂性,能够很好地融入现代技术栈的复杂性。 Nuclei的功能实现和定制,旨在允许对复杂安全检查进行快速原型设计。
Nuclei由ProjectDiscovery积极维护和支持。一般来说,我们每两周发布一次,并继续完善、更新和扩展Nuclei及其相关功能。 我们的团队还积极监控关于新CVE、漏洞利用和其他漏洞的公告,以快速提供应对这些问题的响应。我们最近发布了Nuclei v3,在我们的博客上了解更多关于该版本的信息。
Nuclei是开源的!支持Nuclei的最佳方式是贡献新模板。此外,我们始终对社区如何使用Nuclei解决独特安全问题感兴趣,并希望进行更多讨论。 如果您想在我们的博客上分享您发现的解决方案过程的详细介绍,我们很乐意在ProjectDiscovery博客上发布您的客座文章。通过GitHub查看有关该项目的更多详细信息,或通过Discord联系我们。

使用方法

关于使用Nuclei的问题和答案。
Nuclei可以通过多种不同选项安装,包括:Go、Brew和Docker。查看Nuclei安装页面了解所有选项的详细信息。
Nuclei支持以下类型的模块。
Nuclei可以检测Web应用程序网络基于DNS的错误配置,以及源代码或本地文件系统文件中的秘密扫描中的安全漏洞。此外,您现在可以将Nuclei设置连接到ProjectDiscovery Cloud Platform (PDCP)以查看您的扫描。查看更多关于PDCP免费版及我们即将推出的团队版的信息。
要了解更多关于Nuclei模板的信息,请查看GitHub仓库,或在此处探索更多文档
在检测到安全问题后,我们始终建议您在报告之前进行第二次验证验证方法: 如果您同时拥有易受攻击的目标和模板,请使用-debug标志重新运行模板,以检查输出是否符合模板中定义的预期匹配器。使用此方法确认已识别的漏洞。确认结果后,报告它!
默认情况下,当运行所有nuclei-templates时,Nuclei将对单个目标发出数千个请求(包括HTTP协议和其他服务)。 这是运行超过3500个模板(拥有活跃且不断增长的模板库)的结果。默认情况下,以下模板从默认扫描中排除。
在Nuclei的上下文中,我们考虑两个”安全”因素。
  • Nuclei对目标创建的流量
  • 模板对目标的影响
流量由于其智能请求减少功能,Nuclei通常发出的HTTP请求比为扫描选择的模板数量更少。 虽然某些模板包含多个请求,但这条规则适用于大多数扫描配置。模板Nuclei模板库包含各种执行模糊测试和其他可能导致对目标系统DoS的操作的模板(请参阅此处的列表)。为确保这些模板不会被意外运行,它们被标记并从默认扫描中排除。这些模板只能在使用-itags选项明确调用时执行。
Nuclei是一个在MIT许可证下分发的开源项目。
请加入我们的Discord服务器,或通过Twitter联系我们。

故障排除

关于Nuclei故障排除场景的问题和答案。
Nuclei使用模板扫描潜在漏洞。这些模板是包含有关识别某些类型漏洞信息的文件。 将模板想象为建筑蓝图。蓝图本身不会造成伤害,因为它只描述了如何构建或识别建筑物或结构(在此例中,为漏洞)。例如:
  • Webshell.Generic.118是一个用于检查漏洞CVE-2017-12615的模板,这是某些版本Apache Tomcat中的特定漏洞。
  • Backdoor.Generic.LinuxTsunami是一个可以识别系统上存在的臭名昭著的Linux Tsunami后门的模板。
  • kingdee-erp-rce.yaml是一个设计用于识别金蝶ERP软件中远程代码执行漏洞的模板。
这些文件被反恶意软件解决方案标记为恶意软件,是因为它们包含与已知漏洞匹配的模式。 这类似于关于病毒的教科书被检测为实际病毒。请记住,这些模板不会”伤害”您的计算机,它们不会在您的系统上执行任何恶意代码。 但是,如果作为针对不安全系统的漏洞扫描过程的一部分使用,它们可以帮助识别弱点。
基于Linux的机器(操作系统或容器,例如Docker)上的headless模式可能会因缺少与chrome二进制文件使用的特定OS共享库相关的依赖项而面临运行时错误。 通常,这些错误可以通过在特定发行版上预安装浏览器来修复。以下是最常见发行版所需步骤的列表。 Ubuntu使用snap:
sudo snap install chromium
不使用snap:
sudo apt update
sudo snap refresh
sudo apt install zip curl wget git
sudo snap install golang --classic
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt update 
sudo apt install google-chrome-stable
如果您无法安装浏览器,或只想安装最低要求的依赖项,请运行以下命令:
sudo apt-get install libnss3 libgconf-2-4
如果您遇到类似”libnss3.so: cannot open shared object file: No such file or directory”的错误,尝试运行以下命令安装开发版本:
sudo apt-get install libnss3-dev
错误类型示例:
Error:      	Expected nil, but got: &errors.errorString{s:"[launcher] Failed to launch the browser, the doc might help https://go-rod.github.io/#/compatibility?id=os: /root/.cache/rod/browser/chromium-1018003/chrome-linux/chrome: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory\n"}
could not create browser
Command '/usr/bin/chromium-browser' requires the chromium snap to be installed.
Please install it with:
snap install chromium

其他常见问题

查看Nuclei模板常见问题了解更多关于模板的问题和答案。