干货分享 | 一次源码免杀 ,重在思路
2022-4-10 09:0:0 Author: mp.weixin.qq.com(查看原文) 阅读量:64 收藏

文章作者 :xiaochen

原文链接 :

https://www.t00ls.cc/articles-64875.html

现在的shellcode分离免杀,远程内存加载已经很流行也比较实用了,基本被杀了改改又可以过,本篇分享下最近的一次免杀的思路,主要是思路,遇到一个点如何去对下一步进行处理

用到的工具:

1. VC6.0++

2. 一款源码控

3. 辅助工具包

正文:

一个老款的控,先看下界面和简单的目录结构


update目录下文件

主要对dat和dll文件进行处理,载入Resource看了下资源信息,又看了看dat主程序代码,不是资源释放的dll,而是通过dll加载到dat完成的生成小马流程。


不用分开单独做,一个一个杀软去做就行了


火绒

server.dat:
爆后门病毒,myccl特征码定位

[特征] 0002E070_00000002

载入C32发现定位到没用的日志处


对源码进行区段合并预处理,vc编译模式简单设置一下并取消产生日志编译模式

#pragma comment(linker, "/defaultlib:msvcrt.lib /opt:nowin98 /IGNORE:4078  /MERGE:.rdata=.text /MERGE:.data=.text /section:.text,ERW")


组建编译,检测还是爆后门病毒,觉得不应该,重新myccl定位了一遍,这才定位到点上了

[特征] 00020D6E_00000002        GetModuleHandleA        wsprintfA

[特征] 00020DC4_00000004        无法确认定位的内容

函数在vc6中搜索挨个动态调用


00020DC4此处无法修改,通过对第一处定位的函数动态调用 组建后重新载入C32中,得到真正的特征函数VirtualAlloc、VirtualProtect
动态调用即可过掉火绒。


server.dll:
隐藏字符串就过了

[特征] 0001B0BB_00000002                HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0

[特征] 0001B355_00000002                %s%s*.*

-------------------------------------------------------------

360 QVM + 鲲鹏
server.dat:
鲲鹏不杀,QVM报07
经测试PETools填空.rsrc资源段免杀
将资源信息删几个,对主程序文件MainFunc主函数代码块加入异常处理语句

try

{

    if(1+1==2)throw 19;

}

catch (...)

{

    代码块

}


组建 还是爆QVM07,Petools再次填充.rsrc区段,免杀,直接给资源文件Loader.rc删了
有些远控这么大动作会上不了线,注意测试上线


过掉本地QVM

server.dll:
鲲鹏先暴了恶意软件病毒

[特征] 0001C60F_00000002      

C32跟进,定位在最下方空白处,填充空白可以免杀但有时也不行,怀疑是资源信息干扰了征码的判断


删掉资源文件Script1.rc,组建出错了不能删,还原了下代码
对主程序文件预编译合并区段,不杀了,但是程序报错无法正常上线,鼓捣了一会编译模式再次定位,还是在空白处。


对dll文件主函数DllMain内所有函数进行动态调用,被杀—定位—还在空白处,尝试添加资源,加了一堆 程序直接无法生成


删掉一些资源只留了icon和versions,组建,报QVM27,什么羁绊,全给资源信息删掉,免杀了


值得一提的是,测免杀不要一直在一个目录测,名称也不要一直是一样的。


鲲鹏不杀后QVM也没动静了

生成小马测试上线,被杀了



对小马定位

[特征] 0002141D_00000024        kernel32.dll                dll主程序开头延时加载

生成小马还是被杀,Petools填充小马的.rsrc区段免杀了,上线也没问题。。


但是在源码里将DLL工程中的Script1.rc文件删掉就出错了,很头大,重新载入myccl定位,进入死循环,鼓捣了一小会,最后换了个版本定位,使用d3填充,可以正常定位了

[特征] 000215E4_00000002        strcmp

[特征] 000215EA_00000004        strcmp

[特征] 000215F6_00000005        MSVCRT.dll

延时加载MSVCRT.dll ,对strcmp动态调用,小马还是被杀
(后面才知道杀软查杀了数据流,也就是上线配置的信息,需要对dll进行加密加载到dat中解密)

------------------------------------------------------------------

云引擎
server.dat:

针对云引擎的特征码定位听着像是扯淡,其实也是看一点RP,像这里云引擎对dat爆QVM07,定位的时候只处理07的文件就好了

定位出的内存地址:00421B09

载入OD,上下移位没发现什么可以利用的字符,省事了直接做脚本免杀

00421B0E  |.  895D FC       mov [local.1],ebx

00421B11  |.  6A 02         push 0x2

对当前位置代码前两行上下位置互换,复制到可执行文件测试,云引擎暴QVM19,07处理完成,测试正常上线

虚拟机被感染的感觉不继续弄了,QVM19剩下的可以加壳改个壳,pe头处理,加减资源改md5等等很好弄了。

声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权!否则需自行承担,本公众号及原作者不承担相应的后果

侵权请私聊公众号删文



文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650536458&idx=2&sn=3ed506ef6af59bf728711bf74e0a8be4&chksm=83ba9feeb4cd16f8e36aa848b809ab81945de8668ea22b0a360dc82c9a7edd3ed5bf35c5303b#rd
如有侵权请联系:admin#unsafe.sh