写点什么

开源工具系列 4:Nuclei

作者:HummerCloud
  • 2023-02-13
    北京
  • 本文字数:1741 字

    阅读完需:约 6 分钟

开源工具系列4:Nuclei

前言

Nuclei 用于基于模板跨目标发送请求,从而实现零误报并提供对大量主机的快速扫描。Nuclei 提供对各种协议的扫描,包括 TCP、DNS、HTTP、SSL、File、Whois、Websocket、Headless 等。凭借强大而灵活的模板,Nuclei 可用于对各种安全检查进行建模。

Nuclei 是什么

  • Nuclei 是一种新型检测器,它摆脱了漏洞检测器的传统模型,允许通过非常简单且易于使用的 YAML 模板语法。

  • Nuclei 是一个检测器——它发送 HTTP/DNS 请求并检查一些响应以发现目标中的异常。

  • 用户可以轻松定义匹配器,它检查各种类型的模式(例如单词或正则表达式)的响应,提取器使用正则表达式从响应中提取一些内容。

  • 除了强大的匹配和提取功能外,用户还可以完全自定义发送的请求,从而完全控制请求/响应过程的每个部分。

Nuclei 有什么不同?

Nuclei 方法不是将检测器与漏洞检查捆绑在一起,而是专注于核心引擎,将创建漏洞检查的任务留给最终用户。

内核从一开始就被设计为非常可扩展,允许用户根据需要自定义一切。以下是 Nuclei 项目的核心目标:

  • 简单性:Nuclei 模板以非常易于阅读的 yaml 格式定义,这使非开发人员也可以轻松创建模板,而无需编写冗长的代码并对其进行调试以使其正常工作。

  • 灵活性:可以根据用户的喜好自定义模板。很少有事情是模板本身无法完成的。请求的每个部分都可以根据需要进行定制,并且可以完美运行。

  • 可移植性:核心目标之一是允许用户相互共享模板。每个模板都是一个文件,可以独立运行,无需任何先决条件。您所需要的只是一个核安装。通过这种方式,核概念增加了社区共享。

安装 Nuclei

一键安装

Nuclei 需要 go1.19 才能安装成功。运行以下命令安装最新版本-Nuclei 需要 go1.19 才能安装成功。运行以下命令以安装最新版本

go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest# brewbrew install nuclei# dockerdocker pull projectdiscovery/nuclei:latest
复制代码

下载安装包

当然也可以根据自己的需要,下载对应版本的安装包,进行离线安装,例如

tar -xzvf nuclei-linux-amd64.tar> mv nuclei-linux-amd64 /usr/bin/nuclei> nuclei -h
复制代码

快速使用

Nuclei 是如何工作

如前文介绍的,Nuclei 将创建漏洞检查的任务留给最终用户,用户需要通过 yaml 格式定义模板,之后基于模板进行漏洞扫描。


使用单一模板运行 Nuclei。

下列命令将会对 urls.txt 文件中列出的主机进行检测,并返回匹配的结果

nuclei -l urls.txt -t git-core.yaml -o results.txt
复制代码

你还能够以标准输入(STDIN)的方式传递目标主机列表,下列命令同样可以对 urls.txt 文件中列出的主机进行检测,并返回匹配的结果

cat urls.txt | nuclei -t git-core.yaml -o results.txt
复制代码

可以使用多个模板来执行

下列命令将能够使用 path-to-templates 目录中所有模板来对 urls.txt 文件中列出的主机进行检测,并返回匹配的结果

nuclei -l urls.txt -t "path-to-templates/*.yaml" -o results.txt
复制代码

使用子检测器和其他类似工具自动化运行 Nuclei

subfinder -d hackerone.com -silent | httprobe | nuclei -t "path-to-templates/*.yaml" -o results.txt
复制代码

可以执行 nuclei -h 来获取帮助信息,以下是部分帮助信息内容

Nuclei 的模板

nuclei-templates 是该 nuclei 项目的主要重点。它是一个社区构建的可用于核检测仪的模板集合。这些模板由 nuclei 用户提供,并经过精心策划,以清除长期以来一直是检测仪问题的误报、恶意代码等。

Nuclei 集成了对下载和管理 nuclei-templates 存储库的本地副本的支持。用户只需运行 nuclei -update-templates 即可在本地下载存储库。如果发布了更新,用户会收到通知,并且只需再次运行相同的命令即可更新其副本。

自定义模板

Nuclei 支持通过.yaml 文件来自动传递和执行多个模板任务,如需开发自定义模板,请参考 Github 模板项目地址:projectdiscovery/nuclei-templates

Nuclei 项目信息

Github 项目地址:

https://github.com/projectdiscovery/nuclei

Github 模板项目地址:

https://github.com/projectdiscovery/nuclei-templates

关于 HummerRisk

HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题,核心能力包括混合云的安全治理和 K8S 容器云安全检测。

Github 地址:https://github.com/HummerRisk/HummerRisk

Gitee 地址:https://gitee.com/hummercloud/HummerRisk


发布于: 刚刚阅读数: 4
用户头像

HummerCloud

关注

还未添加个人签名 2022-09-07 加入

还未添加个人简介

评论

发布
暂无评论
开源工具系列4:Nuclei_网络安全_HummerCloud_InfoQ写作社区