【技术分享】任意RAT改加载器Bypass

  • A+
所属分类:安全文章

【技术分享】任意RAT改加载器Bypass

 

前言

沉寂许久,时隔良久,赴当年之约,感触良多。百川赴海返潮易,一叶报秋归树难。今天分享一篇任意RAT Bypass杀软的思路,提供思路仅供参考,不提供任何源码。文章中提到的地方若有错误的地方请指正。

直入主题,目前RedTeam的主流RAT无非就Cobalt Strike。其他的RAT大多基于C/C#开发(这里不做讨论),小众点的RAT,BUG,兼容性等一系列体验感不是很好。而Cobalt Strike的特征已经被各大厂商记录到特征库中,所以用Cobalt Strike做Bypass的效果并不是很友好。

此次测试使用的杀毒软件是国内企业杀软,以及Tinder(自行翻译,懂得都懂,毕竟ByPass见光死),RAT使用的是gh0st的变种。(使用gh0st原因简单阐明:特征多,容易被杀)

 

正文

0X00

这里笔者拿国内的老版本RAT进行测试。仅提供研究思路,不提供任何源码。

ShellBase、ShellCode、RomteLoad工程源码使用VS2010编译,念旧。在打开的时候默认VS2019,见谅!Gh0st源码使用VC++6.0编译。

之前研究目前主流的RAT以及国内一些老版本的RAT,这里笔者就拿国内的老版本RAT进行测试。因为较CS,国内老版RAT特征多能够更好的体现笔者的思路。

0X01

国内的RAT是基于gh0st以及gh0st的变种。知名的如大灰狼、灰鸽子等。其中,主流的写法是功能插件化(功能插件化,这一点跟CS差不多,插件化的优越性大家都知道的,(简单概括就是:方便、快捷),然后用外壳内存加载功能插件,主机上线后通过IOCP协议传输来调用功能,形成Payload — Server ==> Client为一体的工作环境。

服务控制端过程大概是:

功能集成Server.dll => 16进制加密Server.dll => 外壳Install解密内存加载Server.dll => 生成二进制可执行文件

0X02

经分析发现现在的杀毒对于这种写法基本看的很死 比如某企业杀软会把一个exe文件区块化去查杀 导致实际操作去Bypass时,做好的Server端一次Bypass基本2-5天就被再次查杀。

原因:Bypass基本思路都是 杀小红伞基本去处理输入表 杀QVM一般处理代码段。所以,从根本上来看是没改变这种写法的

笔者的思路是通过下载把Server.dll直接下载到内存里,然后再执行。

过程大概是:Server.dll => 16进制加密Server.dll => 把Server.dll放到下载地址然后base64加密 => 加载器解密地址下载到内存执行

这种思路对Cobalt Strike也适用,笔者可以准确标明,经本人亲自测试可行。

0X03

【技术分享】任意RAT改加载器Bypass

ShellBase是写的对地址进行base64加密的工具

【技术分享】任意RAT改加载器Bypass

Shellcode是更改对Server.dll的16进制加密器

【技术分享】任意RAT改加载器Bypass

首先生成一个Server.dll 然后生成加密器和Url加密器。

【技术分享】任意RAT改加载器Bypass

通过查杀发现被杀

运行ShellCode加密Server.dll后查杀可发现已经不杀了

【技术分享】任意RAT改加载器Bypass

笔者来对比一下ShellCode加密前后的Server.dll

【技术分享】任意RAT改加载器Bypass

【技术分享】任意RAT改加载器Bypass

【技术分享】任意RAT改加载器Bypass

可以看到是经过加密且Bypass。

接下来笔者把加密好的Shellcode.dll放到Http下载地址里。(Http下载服务器搭建,笔者在这里就不详细说明)
将URL:
http://URL/ShellCode.dll 加密,得到加密过后的下载地址:TVFRVR8KClxLT0ATExMLQxYWFxcLS0BRCmxLUUBXS0BRBXZNSldRRlBRC3VASlVJQAt3QElAU0RLRkALdFBAV1xmSUxAS1ELcHdpJQ==

在这里有一个注意点,笔者用的这个地址加密不只有Base64,还有Rc4,所以大家解不开是正常的。

【技术分享】任意RAT改加载器Bypass

这就是上面提到的思路,他是一个加载器(或者通俗点下载者),其作用是:

解密 ==> 加密后的地址 ==> 下载文件到内存 ==> 执行

测试上线,这里选择虚拟机测试,懂得都懂,毕竟后门或者啥的我也没仔细去看。

【技术分享】任意RAT改加载器Bypass

经测试,国内企业杀软,以及Tinder无感执行。至于微步云沙箱或者别的沙箱,笔者就不上传了,免得被记录特征导致代码失效。

这个思路基本印证了笔者的想法 ,某企业杀软对于二进制文件是区块化的查杀。这个笔者是研究yara规则时发现的。好了,笔者思路分享就到此结束,大家再会!!!【技术分享】任意RAT改加载器Bypass


- End -

精彩推荐

【技术分享】闲谈文件写入实战应用

【技术分享】IC卡基础之门禁卡复制

【技术分享】从父域到子域的横向移动

【技术分享】任意RAT改加载器Bypass

戳“阅读原文”查看更多内容

本文始发于微信公众号(安全客):【技术分享】任意RAT改加载器Bypass

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: