问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Nuclei漏洞扫描工具全面使用教程

创作时间:
作者:
@小白创作中心

Nuclei漏洞扫描工具全面使用教程

引用
1
来源
1.
https://cn-sec.com/archives/3310103.html

1. 工具概述

Nuclei 是一种可快速利用的漏洞扫描程序,旨在探测现代应用程序、基础设施、云平台和网络,帮助识别和缓解漏洞。

Nuclei 的核心是利用模板(表示为简单的 YAML 文件)来描述检测、排名和解决特定安全漏洞的方法。每个模板都描述了可能的攻击路线,详细说明了漏洞、其严重性、优先级以及偶尔出现的相关漏洞。这种以模板为中心的方法确保 Nuclei 不仅可以识别潜在威胁,还可以精确定位具有切实现实影响的可利用漏洞。

安装Nuclei的几种方式:

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

或者直接下载二进制版本:
https://github.com/projectdiscovery/nuclei/releases

验证安装:

2. 参数解析

目标:

  1. -u / -l:指定扫描的目标URL/主机及主机列表.txt
  2. -resume:使用指定的resume.cfg文件恢复扫描
  3. -sa:扫描由目标解析出来的所有IP(针对域名对应多个IP的情况)
  4. -iv:指定要扫描的主机名的IP版本(4,6)-(默认为4)

模板:

  1. -tl:列出所有可用的模板
    例如:
nuclei -tl
  1. -nt:仅运行最新发布的nuclei模板
  2. -t:指定要运行的模板或者模板目录(以逗号分隔或目录形式)
  3. -turl:指定要运行的模板URL或模板目录URL(以逗号分隔或目录形式)

过滤:

  1. -a:执行指定作者的模板(逗号分隔,文件)
  2. -tags:执行带指定tag的模板(逗号分隔,文件)
  3. -etags:排除带指定tag的模板(逗号分隔,文件)
  4. -id:执行指定id的模板(逗号分隔,文件)
  5. -eid:排除指定id的模板(逗号分隔,文件)
  6. -s:根据严重程度运行模板,可选值有:info,low,medium,high,critical
  7. -es:根据严重程度排除模板,可选值有:info,low,medium,high,critical
  8. -pt:根据类型运行模板,可选值有:dns, file, http, headless, network, workflow, ssl, websocket, whois
  9. -ept:根据类型排除模板,可选值有:dns, file, http, headless, network, workflow, ssl, websocket, whois

输出:

  1. -o:输出发现的问题到文件
  2. -sresp:将nuclei的所有请求和响应输出到目录
  3. -srd:将nuclei的所有请求和响应输出到指定目录(默认:output)
  4. -ms:显示匹配失败状态
  5. -me:以markdown格式导出结果
  6. -se:以SARIF格式导出结果
  7. -je:以JSON格式导出结果
  8. -jle:以JSONL(ine)格式导出结果

配置:

  1. -fr:为HTTP模板启用重定向
  2. -mr:HTTP模板最大重定向次数(默认:10)
  3. -dr:为HTTP模板禁用重定向
  4. -H:指定在所有http请求中包含的自定义header、cookie,以header:value的格式指定(cli,文件)
  5. -sip:指定用于网络扫描的源IP

限速:

  1. -rl:每秒最大请求量(默认:150)
  2. -rlm:每分钟最大请求量
  3. -bs:每个模板最大并行检测数(默认:25)
  4. -c:并行执行的最大模板数量(默认:25)
  5. -hbs:每个模板并行运行的无头主机最大数量(默认:10)
  6. -headc:并行指定无头主机最大数量(默认:10)

优化:

  1. -timeout:超时时间(默认为10秒)
  2. -retries:重试次数(默认:1)
  3. -ldp:指定HTTP/HTTPS默认端口(例如:host:80,host:443)

调试:

  1. -debug:显示所有请求和响应

  2. -dreq:显示所有请求

  3. -dresp:显示所有响应

  4. -p:使用http/socks5代理

  5. -version:显示版本

  6. -v / -vv:显示详细/超级详细信息

  7. -hc:运行诊断检查

升级:

  1. -up:更新Nuclei到最新版本
  2. -ut:更新Nuclei模板到最新版

统计:

  1. -stats:显示正在扫描的统计信息
  2. -sj:将统计信息以JSONL格式输出到文件
  3. -si:显示统计信息更新的间隔秒数(默认:5)

云服务:

  1. -auth:配置projectdiscovery云(pdcp)API密钥
  2. -cup:将扫描结果上传到pdcp仪表板

3. 如何运行Nuclei

默认情况下,所有模板(nuclei-ignore 列表除外)都从默认模板安装路径执行

模板仓库

nuclei -u https://archeodata.sinica.edu.tw/

自定义模板目录或多个模板目录可以按如下方式执行:

nuclei -u https://example.com -t cves/ -t exposures/

指定单个模板进行测试:

nuclei -u https://archeodata.sinica.edu.tw/ -t ssl\deprecated-tls.yaml

同样,可以针对 URL 列表执行模板:

nuclei -list http_urls.txt

4. 使用Nuclei结果仪表板

Nuclei 现在允许与 ProjectDiscovery云平台无缝集成,以简化 Nuclei 结果的可视化并快速生成报告

请按照以下步骤设置 PDCP 结果仪表板:

  1. 访问 https://cloud.projectdiscovery.io 以创建免费的 PDCP API 密钥
    查看API:

  2. 使用命令,在出现提示时输入您的 API 密钥。

nuclei -auth

  1. 之后,要执行扫描并将结果直接上传到云端,请在运行细胞核扫描时使用该选项。
-cloud-upload

例如:

nuclei -u https://convocation.apps.sinica.edu.tw/ -t cves/ -p http://127.0.0.1:7890 -cloud-upload -ms
  1. 扫描完成后,命令行界面上将显示一个 URL。请访问此 URL,在 CloudDashboard上查看结果

5. 配合自研

ProjectDiscovery 云平台 API v1 围绕 REST 进行组织。API 具有面向资源的 URL,在大多数情况下接受和返回 JSON,并且 API 使用标准的 HTTP 响应代码、身份验证和动词。这给了我们自研扫描行为很大的支持:

扫描API 文档

6. 模板编辑器使用

Nuclei Template Editor 是一款多功能云托管工具,专为创建、运行和共享 Nuclei 模板而设计。它为寻求管理和执行模板的个人和专业用户提供了有用的功能

Nuclei Template Editor 使用方法:

  1. 单击“创建新模板”按钮以打开一个新的编辑器
  2. 编写和修改模板。编辑器利用语法突出显示、片段建议等工具来简化您的写作过程
  3. 编写完模板后,输入您的测试目标,然后单击“扫描”按钮以验证模板的准确性
  4. 也可以点击share分享你编写的模板:
https://cloud.projectdiscovery.io/@dahezhiquan/doCtfjTUDJpD2FzpC6arDU

模板快捷键

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号