插件分享 简单免杀绕过和利用上线的 GoCS_如何做到插件反被杀(2)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

0×01 插件使用

1.1 插件效果

在这里插入图片描述

1.2 使用方法

1.在工具栏导入 CS 的 32 位 RAW 的 payload 文件 (attacks - > packages - > payload generator - > output:raw 后缀为 bin),将免杀后的文件放入 VPS 中。
在这里插入图片描述
在这里插入图片描述
2.在 Goby 插件配置中设置 VPS 免杀文件地址,在实际使用中也可以进行实时的更改。

在这里插入图片描述
3. 在漏洞利用详情页中点击 GoCS
4. 选择一个利用方式和文件形式,根据实际情况更改 payload 进行绕过拦截
点击 GO 即可发包利用
在这里插入图片描述

注:现无法只在目标为 Windows 的机器才显示该插件,还需要用户自己判断一下。

0×02 插件开发

2.1 主体框架

├── .gitignore          // 忽略构建输出和node\_modules文件
├── README.md           // 插件介绍文档
├── CHANGELOG.md        // 插件更新日志文档
├── src
│   └── CS.png         //CS的图片
│   └── assets   //layui
│   └── extension.js      // 插件源代码
│   └── Gopass.html    //工具栏制作免杀xsl文件
│   └── GoCS.html      //漏洞利用页面进行发包利用上线CS
├── package.json         // 插件配置清单
├── node_modules      //引入模块

2.2 它们的爷爷 package.json

该插件由工具栏的 GoPass.html 和漏洞利用的 index.html 进行大部分工作,所以我先简单介绍它们的爷爷 package.json

在这里插入图片描述

2.3 它们的爸爸 extension.js

具体注释在源代码中,在 Goby 中下载 GoCS 后可在根目录下 \extensions 中找到,这只分析重点。
这个页面是父页面(我的理解)在引入模块时直接引用 let fs = require(‘fs’);或者加 parent 也可以。

点击 Command 为 GoPass 后进行的操作来跳出 GoPass.html:

//在工具栏的图标点击过后入口
goby.registerCommand('GoPass',function(content){
    //获取子页面路径
    let path = __dirname + "/GoPass.html"
    //打开子页面并配置长宽
    goby.showIframeDia(path, "GoPass", "666", "500");
    
})
//在工具栏的图标点击过后结束

进行发包和利用 EXP 的代码:

    //此段代码是摘取Go0p师傅的Goby\_exp插件源码

    //创建Gexp类进行发包获取漏洞详情和利用漏洞
    class Gexp {
    //引入包和模块
      constructor() {
        this.fs = require('fs')
        this.request = require('request')
        this.path = require('path')
      }
      //初始化函数之类的吧
      init() {
        this.host = this.data.server_host;
        this.port = this.data.server_port;
        this.username = this.data.authUsername;
        this.password = this.data.authPassword;
       }
        //获取配置主要用于获取username和password还有代理端口
       getServerInfo() {
            //对目录下得配置文件进行读取返回
            let config_info = this.path.join(__dirname, '../../../config/config.json');
                //读取文件操作
            this.data = JSON.parse(this.fs.readFileSync(config_info, 'utf-8'));
                //返回应该是json类型可以后面直接用
            return this.data;
        }

         //点击按钮时获取你点击的漏洞详情
        getPOCInfo(vulname, proxystr) {
            this.init();
            //进行发包操作获取Goby本地的返回包,其中有漏洞详情,json类型进行后面处理
            return new Promise((resolve, reject) => {
                //发包配置一系列的参数
                this.request({
                  url: `http://${this.host}:${this.port}/api/v1/getPOCInfo`,
                  method: 'POST',
                  auth: {
                    'user': this.username,
                    'pass': this.password,
                  },
                  proxy: proxystr,
                  json: { "vulname": vulname}
                 }, function (error, response, body) {
                     //成功过后会进行返回漏洞详情
                     if (!error && response.statusCode == 200) {
                        //成功状态获取返回值
                        resolve(body);
                     } else {
                        //失败状态返回错误详情
                        reject(error)
                     }
                });
            })
         }
            //发包利用漏洞,主要用来更改exp的参数
      debugExp(post\_data, proxystr) {
            this.init();
            //进行发包操作和本地Goby进行交互,利用更改exp的值进行利用
            return new Promise((resolve, reject) => {
                //发包构造一系列参数
              this.request({
                url: `http://${this.host}:${this.port}/api/v1/debugExp`,
                method: 'POST',
                auth: {
                  'user': this.username,
                  'pass': this.password,
                },
                proxy: proxystr,
                json: post_data
              }, function (error, response, body) {
                if (!error && response.statusCode == 200) {
                  //输出返回的内容
                  // console.log(body);
                  resolve(body);
                } else {
                  reject(error)
                }
              });
        })
      }

    }
//构造Gexp类结束 

2.4 它们自己

2.4.1 GoPass.html 用来生成免杀 xsl 文件

这个文件主要就是将 bin 文件进行 base64 加密后和 xsl 文件进行拼接,生成一个 GoPass.xsl 文件,供后面进行远程加载。

Xsl 文件的是使用 cactusTorch 作为加载器加载 shellcode,再运用 wmic 进行远程不落地执行 shellcode。由于无文件落地的木马可以附加到任何进程里面执行,而且传统安全软件是基于文件检测的,对目前无文件落地木马检查效果差,所以该插件采用了此形式进行上线 CS。

而原版本的 xsl 文件生成后就会被杀软报毒,那么加入 注释符号进行简单免杀绕过,此处只绕过基本的杀软。

在这里插入图片描述
同时在重要函数名上也如此。

在这里插入图片描述

此处只讨论静态免杀,在 vt 上效果如下。

在这里插入图片描述

效果是不够的好,加入 如同 P 图,P 得越多,越… 根据上面的绕过举一反三过后的免杀如下。

在这里插入图片描述

这几个感觉是执行了文件,只把一个字母大写,代码不能执行了它们就不报毒了,所以后期还需要加强免杀。

在这里插入图片描述

2.4.2 index.html 用来生成漏洞利用上线 CS

这个文件主要用来,调用 extension.js 文件中的 Gexp 类,获取 PoC 的参数进行更改后调用 EXP 进行发包利用,其中利用方式有 RCE 和 upload 两种,文件形式有 php,asp,jsp三种(以后会加入 aspx),源码中有具体的注释。

此处因为是子页面使用引入模块时必须加入 parent

let fs = parent.require('fs');
let goby = parent.goby;

同时如果你使用 exec 函数调用 cmd 也是 Goby.exe 进行调用的,生成文件会在 Goby 的根目录下面,不指定目录写文件也是一样。

初次写 js 的师傅注意,下拉框因为是 div 修饰过的,不能再使用原生的事件进行监听,要使用 layui 的语法进行 select 监听事件。

//select监听事件开始
//layui的监听事件和原生select不一样

layui.use(['form'], function () {
    var form = layui.form;

    //下拉框改变事件开始
    //layui的调用写法,因为select采用的是layui的样式使用要用它的写法不能用原生的
    //id为vlul的下拉框的值改变后触发
    form.on('select(vlul)', function (data) {
        //调用函数主要用来更新textarea中的内容
        changeE();
    });
    //id为txt的下拉框的值改变后触发
    form.on('select(txt)', function (data) {
        //调用函数主要用来更新textarea中的内容
        changeE();
    });
    //下拉框改变事件结束


});


![img](https://img-blog.csdnimg.cn/img_convert/fb467947c7b32648687dfae786f4165a.png)
![img](https://img-blog.csdnimg.cn/img_convert/bd1aa651ec6930150db71453dc498358.png)
![img](https://img-blog.csdnimg.cn/img_convert/0b3aa6581a6628386ab16aba2ce0d4fd.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**

片转存中...(img-GrLE8jXe-1715550913694)]
[外链图片转存中...(img-aFDeJ744-1715550913694)]

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**

  • 41
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值