记得2010年的时候,就我们所发现最管用的办法就是模拟窗体了,具体代码就不给出了,很简单,只需要简单的创建一个任意窗体即可。简明地说就是模拟正常程序了。
对于瑞星2010主动防御,就我们最后得出的结论是这样的:
瑞星监控了很多API,同时还对多处注册表。当瑞星监控到调用这些API或修改保护的注册表的程序的时候,它就会对进行排查。
排查的方法我想大概有以下几种:
1.判断程序是否为合法的系统程序(没有被篡改过的,正常的系统程序。之所以要这样做是因为系统程序有时候也会调用到这些API或修改保护的注册表区域,但是这并不是恶意操作。)
2.判断程序是否拥有合法的正规的数字签名或拥有瑞星的认证(就拿杀毒软件自己的数字签名来说,如果我安装了瑞星,再安装卡巴什么的杀毒软件,这个时候卡巴的安装程序是有合法的数字签名的,并且卡巴也会对注册表的一些关键的被瑞星监控到的位置进行修改,比如启动项以及一些杀毒软件要劫持的地方。尽管做了那么多可疑的操作,可是瑞星并没有提示的,并且默许了它的操作。这就说明了数字签名是管用的,并且得到了瑞星的认证。)
3.判断程序的行为是否符合正常程序的动作(就拿一个正常的软件来说吧,就比如某VPN软件,当打开VPN的时候,VPN会进行一个动作,什么动作呢?把自身线程注入到每一个进程中,然而这样却没有遭到瑞星的拦截。然而,就拿灰鸽子远程控制软件的木马程序来说,我们可以Test下它的服务端程序,首先我们做一个有趣的实验,在创建灰鸽子木马程序的选项中,我们不选择写入启动项,不选择自删除,不选择隐藏进程,然后创建一个木马程序,创建出的木马程序这个时候和正常文件就只有一个注入进程的差别,运行灰鸽子木马程序后,我们会发现它按配置注入到了iexplore.exe,也就是注入到了IE浏览器进程,而这个时候运行木马却拦截了,由此推断出瑞星杀的就是注入进程这个动作。然而我们可以再去对比一下,我们配置出的木马和VPN有什么最大的不同点呢?那就是没有窗体了,VPN程序是有窗体的软件,而我们的木马程序是全部后台运作的,不会创建任何窗体,由此就知道瑞星判断正常软件的条件之一就是是否存在窗体,如果存在窗体才可能会得到放行。)
4.API与注册表的组合拦截(这点我们可以这样说,瑞星对于某些API和某些注册表的调用和修改不会直接拦截,而有些API和注册表内容一旦调用修改就会百分百拦截。我们可以举这样一个例子,比如修改某个注册表的键值瑞星不会拦截,但是如果你修改了这个键值以后又去锁定注册表,防止被修改,那么这一组合操作瑞星就会拦截之。)
知道了以上几点,我们不难得知,要过瑞星我们可以采取多种方式
1.伪装系统正常文件,使瑞星无法辨别其真伪,并以为它的操作是正常的。
2.取得瑞星杀毒软件厂商的认证,假如是你开发的程序被误杀,这样处理最好不过了。
3.模拟正常软件动作,如创建窗体,这便是2010年的惯用方法了,几乎是百试百灵。
4.去掉一些不必要的动作,如注入进程,不注入进程一样能达到灰鸽子木马启动的目的,又如自删除,不自删除不也可以让木马启动吗?因此可以舍弃一些不必要的动作,当然了这个不是很完美但是最简单。
5.分步完成程序动作,如果你的程序必须完成一系列的被瑞星视为危险的动作,那么建议你分步完成,就是把组合拦截的组合动作分解掉,如:我用A程序写入注册表,然后用B程序锁定注册表,瑞星你又奈我何?
以上便是过瑞星2010主动防御机制的方法,当然了惯用的是创建窗体法,我不得不说它确实还挺好使,几乎直接可以无视2010主动,只需要在执行威胁动作时创建个几秒的窗体,执行完马上关闭,可以通过线程技术来实现。窗体的实现代码我已经附加在附件中了(见VC创建窗体.cpp)。当然了这个做的还不算完美,真正完美的还可意创建透明的窗体。
说了一大堆我的关于瑞星2010的主动防御的见解,接一下就揭晓下过瑞星2011主动防御的办法吧,首先我想说的是,很多人说窗体彻底没戏,其实是错误的,窗体依旧有效。瑞星2011只是提高了主动防御的查杀机制罢了。我个人猜测它的主动防御做了如下改变:
1.系统文件管理更加严格,某些系统文件执行的某些操作它也已经记录,若执行其它不属于记录内的操作也开始拦截,也就是说伪装系统文件执行不属于它应有的操作也会被瑞星拦截。
2.模拟正常软件创建窗体的方法检验机制提高,比如说修改注册表它判断为恶意程序的可能性为百分之50,注入进程它判断为恶意程序的可能性又是百分之50,你执行当中任意一个操作,它都会提示,而如果你创建窗体,然后再执行任意一个操作就无提示放行。但是如果你两个动作都在同一文件内执行,那么可能性就已经为百分之百,这个时候就算你创建窗体,也会被瑞星主动防御拦截,这是2011版本的特有性质,而2010版本对此是直接放行的。
3.加入更多主动防御规则,使用灰鸽子黑防专版不选择自删除不插入不隐藏进程直接配置出就过瑞星2010主动防御,而2011版本对此就会拦截,就是因为它加入了其他主动防御规则,不再是只对隐藏、注入、自删除的行为拦截,也拦截了其他行为。
4.对于分步完成危险动作加入分析,如果是程序1先执行恶意操作A,然后由程序1启动程序2,完成恶意操作B,也会智能地被分析出来,并且对其拦截。
知道了瑞星的改变,那么就应该有对策了吧
1.伪装其它正规软件(非系统的哦)
比如说黑防灰鸽子记得不插入进程、不自删除也会被瑞星拦截,但是如果我在写服务的模块全部写QQ,瑞星就一点反应没有
2.减少或修改不必要的操作
比如灰鸽子木马会插入IEXPLORE.EXE以伪装自己,这一步完全可以去掉,当然了如果你想要伪装的完美,你也可以自己写释放名为svchost.exe什么的,你如果觉得这还不完美也可以通过自己写猥琐的反汇编代码实现另一个注入
3.模拟正常软件动作
比如创建窗体,话说创建窗体,它对一般非很带有病毒性的操作都没反应(比如写svchost服务,注入进程,但是如果你带有修改系统文件什么的估计还是过不去的)
4.重启后实现木马操作
比如你非要让某个软件保持原有动作,并且不能让瑞星杀毒主动拦截,那么你可以试一试,写几句简单的汇编代码,如果发现瑞星,先把自身复制到启动文件夹,然后重启系统,重启后判断如果已经在启动文件夹就执行原有操作。因为瑞星启动的还是不够快,毕竟它和卡巴不能比要考虑到系统的性能吧
5.学会用正常软件做恶意操作
比如我修改注册表写启动,我就未必要用我自己用专门的API去写注册表,我可以利用CMD的REG ADD什么的来修改,这样一样能达到目的,并且过主动防御
6.RING3废掉瑞星
话说有未公开的API,瑞星没监控到,用它可以实现RING3 K 瑞星,不过我也不知道是什么API。。。待探索,哈哈
就到这里好了,其实方法是很多的,大家大可根据自己的程序的动作来做对应的处理,以更完美的突破主动防御。令我们感到欣慰的是,目前主动防御功能正在日渐壮大,相信这个技术如果能得到更大的发展,一定会能更多的拦截恶意的程序
用户系统信息:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)