nuclei漏扫(全网最详细从安装到使用)

介绍

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

我们有一个专门的存储库,其中包含由 300 多名安全研究人员和工程师贡献的各种类型的漏洞模板。

项目地址

projectdiscovery/nuclei: Fast and customizable vulnerability scanner based on simple YAML based DSL. (github.com)

安装文档:
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博客

官方文档:

  • 官方在线文档
    运行 Nuclei - Nuclei Documentation

  • 本地详细文档:
    [[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)

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
posted @ 2024-04-04 15:43  jxrj-steve  阅读(7729)  评论(0)    收藏  举报