一。免杀 1。最简单的:加壳 Svkp,Pelock,Telock,Asprotect等等牛壳,或者一些私人壳如免役007之类的,虽然方便,但免杀效果不一定好,因为现在杀毒会把壳的特征当病毒或者把加壳后的特征也收录,而且加壳的不能用于内存代码注射 2。手工免杀 用CCL 一类的定位工具定位出特征码,不同的杀毒的特征录入是不一样的,而且不止一处,所以免杀是体力活;然后逐一修改定位出来的特征码,例如修改入口(代码),插垃圾代码(最简单的就是狂插nop),定位,指令的等效交换,修改字串,call或jmp的多次跳转,移动输入,输出,重定位表,强改pe结构,SMC (代码自修改)大法等等,根据不同类型的指令有不同的修改法,baidu,google是最好的老师; 3。封装 自己写个外壳,把黑洞服务端封装起来,在这个外壳里,你可以完成注册服务,注射进程等等你想到的安装功能,只要完成安装,然后把黑洞的服务端在内存运行,就可以上线了;这样的话杀毒查到的只是外壳文件而不是黑洞本身的服务端,省了一大堆的免杀工作,就算外壳被杀,你只要在代码里加点垃圾代码打乱一下原有的16进顺序,就可以免杀了,前提是你会编程 二。过主动防御 1。修改时间,这个只能过咔吧的主动防御,而且现在有360的时间补丁,咔吧失效也会有提示框,提示声音;方法很多,批处理,vbs,写封装外壳的时候加进去; 2。模拟点击,也是针对特定的主动防御,处理静音,找到警告窗体的句柄,按钮等,然后sendmessage去点击它同意运行,缺点是不同版本,系统语言不同的时候句柄按钮都不同,要写很多的判断,而且有人说新的咔吧好象拦截了这种向它发送的信息 3。恢复SSDT 恢复SSDT上主动防御挂钩的函数(用icesword查看一下SSDT表就明白了),就是脱钩,因为主动防御是挂钩那些函数来捕获消息的,脱钩后主动防御完全接收不到黑洞或者系统所有的消息,等于瞎了聋了,自然也就不能对黑洞的动作做出判断或者提示,所以你想干什么都可以了 还有一种就是你也去挂钩底层函数,修改函数入口跳转,过滤掉你的消息后再跳回来,咔吧也就看不到你的动作了 这种方法要求系统底层编程,要写驱动的 4。感染文件启动 万不得以的方法,感染文件然后在文件启动的时候完成黑洞的启动,然后才启动原来的文件,需要对抗咔吧的文件检查,完整性检查,系统的WFP,SFC,DEP等等,而且文件加壳的情况也要考虑 a。经典感染方式 pe感染都一样的,都是添加代码,然后修改入口为你添加代码的开始,执行完添加的代码后跳回原入口 特点:宿主体积会增加,入口会改变等等蛛丝马迹,但感染后还是完整的(相对b来说); b。添加导入函数方式 添加一个导入函数,宿主会主动加载你的dll; 特点:比较隐蔽,宿主体积和入口可以不变,但宿主是不完整的,没你的dll跑不起来 PS:以上的感染都是技术要求比较高的感染,而且现在最麻烦的就是dep保护,没有很好的解决方法。 c。现在流行的方式,写个stub,把宿主附加到它后面,替换原文件; 特点:技术要求低,目前很多XX加壳就是这样写的,称为非经典壳,更接近捆绑工具,在自己写的stub里想干什么都可以,甚至带个图标,例如烧香的熊猫:
免杀与过主动防御
最新推荐文章于 2022-05-27 20:29:37 发布