欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

针对卡巴斯基2010的免杀研究

来源:转载 作者:冷风 时间:2010-03-21 TAG: 我要投稿

卡巴斯基2010在针对数字签名和系统文件防护变的非常严格,注册表更不说,经过这么多年的升级基本上没有可以利用的价值,卡巴斯基2010之前版本可以通过修改感染系统文件进行启动,绕过监控,只需要给PE文件添加一个数字签名,由于卡吧监控并不严格只是判断是否加了签名,而没有判断签名是否正确,所以给很多马留了生存空间。

但是,卡巴2010后的版本就没有这么幸运了,对系统目录文件的验证变的十分严格,即使想用程序给系统目录的文件改个名字,也会被提示风险软件,而主要的几种启动方式例如 服务启动,Winlogon启动,ActiveX,感染系统文件,DLL劫持,替换SVCHOST等等,已经无计可实了。

下面简单分析这几种启动方式死法

 

1.服务启动方面,注册服务的最终都要写注册表,以前可以直接写,后来导入注册表,再后来通过RegRestoreKey恢复,最最后HIV文件分析,现在怎么写也写不进去了,死了。

2.Winlogon这个启动方式非常好在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify项下面创建一个子键加上要启动的项名称在DllName中加上自己的DLL为DLL导出几个函数系统启动时会由Winlogon加载启动稳定是没得说,不过修改注册表这一步以经没办法实现了,实在可惜。

3.ActiveX目前还有可以利用的价值,不过要好好想想哈

4.DLL劫持一直被称为神奇的马甲,但由于卡巴2010开始对系统文件目录的严格查杀,劫持也变的非常不容易了IE还可以利用,在IE的目录里把原DLL 改名自己的DLL 放进去然后发函数转发到原DLL ,由于IE目录是Program Files目录而非%Windows%所以进行劫持还是可取的,而且穿透防火墙的效果好,你没见所有的防火墙直接就能放行吗?但缺点也很明显,只有用户启动IE的时候你的DLL才会被加载。

5.SVCHOST服务启动,首先要区分SVCHOST启动与普通服务启动。SVCHOST是唯一可以与IE颦美的方式,由于DNS服务的域名解析是由SVCHOST进程启动的所以他必须连接网络。而让SVCHOST加载自己的DLL 是一个非常好方式,比如前些时间流行的替换BITS服务就是,还可以过主动防御。SVCHOST自己创建一个分组的话是最稳定的,得会多出一个SVCHOST进程出来。哎,缺点必须动注册表。

对启动方式 大概说一下 方便后面启动的理解,看一下上面主流的启动方式基本上以经被封杀的无路可以走了,而其它还有一些加载方法属于某些人自己的神兵利器。如果别人不爆,想搞到也要大费力气 。还是就上面几种方式说说思路吧

首先就对修改注册表启动这一块想过2010以经是不太可能的了,这些启动方式中除去跟注册表有关系的就是 DLL劫持与PE感染了,PE感染可以让系统文件加载我们自己的DLL 与DLL劫持实现不同但效果基本一样,但这两种方法两关要过,其一是系统的WFP文件保护功能,其二就是卡巴2010对系统文件夹的保护了,对于系统的WPW功能你可以通过调用sfc_os_dl中的的第5个函数来关闭以前有人说要让winlogon来执行,才能关闭其实不用,你可以直接调用,当然这个功能以被卡吧看住了只要你一调用他就杀你,解决方法是你把这个功能实现写到DLL里面,然后导出一个函数,你的程序加载这个DLL 再调用,这样卡巴虽然很牛但也不能知道你的函数是什么导出格式,有几个参数,所以他模拟也模拟不出,就行了。

然后就是与卡巴的正面交锋了,这Y的很猛的,首先他会使劲检测你的程序 看是不是跟windows里的系统文件有染,一但发就直接喀嚓了,所以一定要小心就算是使用GetWindowsDirectory之类的也要小心啦,卡巴同志这时候正瞪着眼睛看着你呢,比如你想使用把MoveFileEx把里面的文件改个名,然后把自己的文件CopyFile 或者 MoveFile进去,那就完蛋了,卡巴会直接报一个Install Windows风险,为什么会报Install Windows风险呢?就是因为你动系统目录的文件了,不过他也不能太苛刻毕竟很多的正常的软件也要访问,如何解决这个鸟?通过批处理BAT行不?我试了不行。

 

我通过另一个办法简单模拟了一下可以实现,其实很简单啦,本文作者 冷风,方法就是你把要访问系统目录的功能分开来写,比如你要替换Usp10.dll然后通过启动Http SSL服务来启动你的马,那你在关闭系统的文件保护之后,必须把原来的Usp10.dll改名,然后才能把自己的DLL 拷贝进来,这时你要注意,给Usp10.dll改名和拷贝自己的文件不能在一个PE中完成,你可以把 改名这个操作放到 RenameUSP.EXE中把拷贝DLL放到WriteDll.EXE中然后 想法调用这两个EXE这样每个EXE单独操作,卡巴针对每个EXE执行的时候不会报警,但合到一块操作就会报警,还有不嫌麻烦的话把这些操作封装到DLL再调用。

 

在测试卡巴的中途我把半成品拿到瑞星的2010测试了一下,发现主动防御可以直接过去啦,看来瑞星还要努力啊,不过我喜欢瑞星,只要自己手工配置一下,杜绝95%的马能跑起来还是完全没有问题的^_^如果你要过瑞星的话要注意明文字符串,比如你在搞一个劫持LPK.DLL进行启动的马,那你最好不要在代码出出现 TCHAR szHijiackDll[]=_T("LPK.DLL")这样的代码,因为瑞星好像会扫这个东西然后直接给你报一个Win32.FakeLPK还是简单加密一下啦,就算用_tcscat连接也好哈。

还有一点,我还没能确定,卡巴在关方有一个列表,这个列表中的软件呢,就算没有数字签名,也会被认为是安全的软件,他会把运行的文件对这个列表对比,有的话就直接放行了,这是一个人性化的操作,是否有可以利用的价值还需要研究呐,你想如果不连接网络的话,卡巴怎么处理他会不会放松检查的严格成度来保证软件的兼容性?在测试时我给EXE随便加了一个签名,然后断网运行,发现原来报警,断网却没有报警。这个没有严格测试有朋友感兴趣就自己测试一下吧。

 

嗯,驱动很热门啊,用驱动搞死它行不?行啊!!不过,但是,可是......就算是神枪手要杀人也得有出枪的机会,但是卡巴大叔不会给你这个机会,所以这个想法还是放弃的好。驱动嘛还是用来做安全盾牌吧,进了驱动就是天堂,但是杀毒软件在进天堂的紧要关口都设了埋伏,所以我们还是从R3下地狱好了,R3下虽然很崎岖但毕竟路很多。

360也在搞安全认证,不过现在只接受公司的软件认证,看来这是很好的一块市场啊,如果360成了权威的安全认证的话,以后的软件都得加上360认证的证书。这样也不错,毕竟现在想要给你的软件买个安全证书也不是容易的事情。哎我还有很我废话要说不过我家领导要下班了,就写到这里,文章是随兴而写乱七八糟,前张后合,有什么错误的地方请多包涵,如果你有兴趣的话可以与我联系,我的ID冷风QQ121121606欢迎指正错误一块学习进步。

 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载