nuclei漏扫(全网最详细从安装到使用)
介绍
Nuclei 用于基于模板跨目标发送请求,从而实现零误报,并在大量主机上提供快速扫描。Nuclei 提供对各种协议的扫描,包括 TCP、DNS、HTTP、SSL、File、Whois、Websocket、Headless、Code 等。凭借强大而灵活的模板,Nuclei 可用于对各种安全检查进行建模。
我们有一个专门的存储库,其中包含由 300 多名安全研究人员和工程师贡献的各种类型的漏洞模板。
项目地址
安装文档:
nuclei 安装使用-腾讯云开发者社区-腾讯云 (tencent.com)
wget https://go.dev/dl/go1.20.5.linux-amd64.tar.gz # 下载
tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz # 解压到
/usr/local/go/
# 配置环境变量
vim /etc/profile# 在最后加入以下内容:
export PATH=$PATH:/usr/local/go/bin
# 退出并保存,然后应用我们刚的修改
source /etc/profile
# 检查安装是否成功
go version
# 配置国内代理
go env -w GOPROXY=https://goproxy.cn
# 安装
Nuclei go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latestwget https://github.com/projectdiscovery/nuclei/releases/download/v2.9.6/nuclei_2.9.6_linux_amd64.zip
# 解压
unzip nuclei_2.9.6_linux_amd64.zip
# 移动到
/usr/local/bin下,相当于配置环境变量mv nuclei /usr/local/bin/
使用文档:
漏洞发现-Nuclei漏洞扫描工具_wx61e7c5bcdc7ff的技术博客_51CTO博客
官方文档:
-
本地详细文档:
[[README_CN]] -
AI编写poc
可以配合自动化编写poc脚本进行使用
[[ai自动编写poc脚本(nuclei)]]
简易安装:
wget https://github.com/projectdiscovery/nuclei/releases/download/v3.0.2/nuclei_3.0.2_linux_amd64.zip
运行:
./nuclei -h
常用命令&参数
模板使用:
./nuclei -u http://172.16.10.3 -t ./POC/ECOLORY_9.0_DESER.yaml -p http://127.0.0.1:8080
-u 指定扫描目标
-t 指定使用的扫描模板
-p 指定使用的代理
单个目标扫描:
./nuclei -u http://172.16.10.5
2.常用指定模板,批量目标扫描:
nuclei -t ERP系统_存在信息泄露.yaml -l erp_zc.txt
-l 指定扫描url的文件
-o输出文件
3.用模板文件夹进行漏洞
nuclei -l urls.txt -t templates/ -o results.txt
-l 指定扫描url的文件
-t 指定使用的扫描模板
-o输出文件
- 参数
--debug 扫描过程中可以显示所发送的数据包
Nuclei 过滤器(筛选)
(关键词搜索-tags&筛选模板)
- Tags (-tags)根据模板中可用的 Tags 字段进行筛选。
例:筛选出joomla,cms的漏洞验证模板
#单个目标
nuclei -u http://192.168.1.110/ -tags joomla
#批量目标
nuclei -l URL.txt -tags joomla
- 其他
Nuclei引擎支持三个基本过滤器来自定义模板执行。
1. Tags (-tags)根据模板中可用的 Tags 字段进行筛选。
2. Severity (-severity)根据模板中可用的严重性字段进行筛选。
3. Author (-author) 根据模板中可用的作者字段进行筛选。
nuclei.exe -l target.txt -t .\templates\apache\ -author FengXS0ne -debug
-l 批量扫描
-t 自定义模板,我这里是选择的自定义目录下的所有模板
-author 过滤器,选择的是作者为: FengXS0ne
-debug 调试,能看见
同理其他的也一样,一般的选择的是-t 目录下,
再通过-author/-tags/-severity 进行过滤
nuclei -l target.txt -tags cve -severity critical,high -author geeknik
可以使用模板条件标志(-tc)组合多个过滤器,该标志允许使用以下复杂表达式:
nuclei -tc "contains(id,'xss') || contains(tags,'xss')"
nuclei -tc "contains(tags,'cve') && contains(tags,'ssrf')"
nuclei -tc "contains(name, 'Local File Inclusion')"
tc支持的字段包括
id,
name,
description
tags
authors
severity
protocol
http_method
body
matcher_type
extractor_type
所有字段都可以与逻辑运算符(||和&&)组合使用,并与DSL辅助函数一起使用。
同样,工作流中也支持所有筛选器。
nuclei -w workflows/wordpress-workflow.yaml -severity critical,high -list http_urls.txt
nuclei-plus(GUI)
-
前置
需要配置nuclei Windows环境变量
templates
-
templates项目地址:
projectdiscovery/nuclei-templates:社区策划的 nuclei 引擎模板列表,用于查找安全漏洞。 (github.com) -
本地templates地址
D:\XUEXI\工具\web打点\打点工具端口扫描目录扫描指纹识别等\漏扫&&利用工具\漏洞扫描&&exp\Nuclei\nuclei-templates
想要自定义分类目标文件夹?
发现无法使用gui功能来达到批量扫描的目的,每次运行选中模板中的
templates总会失败
-
配合gui进行使用
首先搜索相关的templates,Ctrl+a全选
-
复制模板绝对路径
-
将选中的模板保存为txt文件,并建一个相关的文件夹方便下次使用,再使用
python脚本批量复制到新建的文件夹中
# -*- coding: utf-8 -*-
print("启动:批量复制指定路径下文件到当前文件夹中");
import os
import shutil
# 当前工作目录
current_dir = os.getcwd()
# 读取包含文件路径的文本文件
with open('joomla-templates.txt', 'r', encoding='utf-8') as f:
paths = f.readlines()
# 去除每行末尾的换行符
paths = [path.strip() for path in paths]
# 复制文件到当前工作目录
for path in paths:
if os.path.exists(path): # 确保文件存在
filename = os.path.basename(path) # 获取文件名
destination = os.path.join(current_dir, filename) # 构建目标路径
shutil.copy(path, destination) # 复制文件
print(f"Copied {path} to {destination}")
else:
print(f"File {path} does not exist.")
- 复制完成
指定文件夹的templates进行扫描
#单个目标指定文件夹扫描(指定joomla-templates文件夹下的模板进行扫描)
nuclei -u http://192.168.1.110/ -t ./joomla-templates -o results.txt
#批量目标扫描(指定joomla-templates文件夹下的模板进行扫描)
nuclei -l urls.txt -t joomla-templates -o results.txt
- 指定多个文件夹下的templates进行扫描
nuclei -u https://target.com -t cves/ -t exposures/
workflows工作流(将所有漏洞整合成一个文件)
注意
- 这样虽然快速;但是缺乏准确型以及可能扫描不出漏洞
将所有漏洞整合成一个文件夹;在模板文件夹中的workflows文件夹中
\nuclei-templates\workflows
- 我们需要用时可以进行搜索;比如扫描与Joomla-cms相关的问题
可以使用到参数-w
例子:
比如说扫描Joomla-cms的常见问题 --Workflows(与前面的-t指定目录差不多)
#单个目标
nuclei -u http://192.168.1.110/ -w nuclei-templates\workflows\joomla-workflow.yaml --debug
#批量目标
nuclei -l target.txt -w nuclei-templates\workflows\joomla-workflow.yaml --debug
本文来自博客园,作者:jxrj-steve,转载请注明原文链接:https://www.cnblogs.com/jxrj-steve-wm/articles/18114251