如何自动化分析挂马网页

现在网上的网页木马多是几套固定的代码,变化并不多,包括脚本代码的加密方式,几乎也都是解释型的加密,由于黑客都是进行的流程化挂马,国外的黑客对于自动化分析网页木马也已经有了丰厚的成果。国内我所见过的自动化网马分析系统有360安全卫士和安恒等,其他包括国内的各大杀毒安全公司,现在几乎也都有一套自己的网马分析系统。
“挂马”这个词目前我们似乎经常能听到,那么什么是挂马呢?挂马就是黑客入侵了一些网站后,将自己编写的网页木马嵌入被黑网站的主页中,利用被黑网站的流量将自己的网页木马传播开去,以达到自己不可告人的目的。例如很多游戏网站被挂马,黑客的目的就是盗取浏览该网站玩家的游戏账号,而那些大型网站被挂马,则是为了搜集大量的肉鸡。网站被挂马不仅会让自己的网站失去信誉,丢失大量客户,也会让我们这些普通用户陷入黑客设下的陷阱,沦为黑客的肉鸡。下面就让我们来了解这种时下最流行的黑客攻击手段。

一、挂马的核心:木马
从“挂马”这个词中我们就可以知道,这和木马脱离不了关系。的确,挂马的目的就是将木马传播出去,挂马只是一种手段。挂马使用的木马大致可以分为两类:一类是以远程控制为目的的木马,黑客使用这种木马进行挂马攻击,其目的是为了得到大量的肉鸡,以此对某些网站实施拒绝服务攻击或达到其他目的(目前绝大多数实施拒绝服务攻击的傀儡计算机都是挂马攻击的受害者)。另一类是键盘记录木马,我们通常称其为盗号木马,其目的不言而喻,都是冲着我们的游戏帐号或者银行帐号来的。目前挂马所使用的木马多数属于后者。

二、木马的免杀伎俩
作为挂马所用的木马,其隐蔽性一定要高,这样就可以让用户在不知不觉中运行木马,也可以让挂马的页面存活更多的时间。黑客为了让木马躲避杀毒软件的查杀,使用的伎俩很多。通常使用的方法有:加壳处理:关于壳的概念我们曾经介绍过,就是为了让别人无法修改编译好的程序文件,同时压缩程序体积。木马经过加壳这一道工序后就有可能逃过杀毒软件的查杀,这也是为什么我们装了杀毒软件还会感染老病毒的原因。虽然目前的杀毒软件都支持对程序脱壳后再查杀,但只局限于一些比较热门的加壳程序,例如 aspack、UPX 等,而碰上一些经过冷门加壳程序处理后的木马时,就无能为力了。所以加壳仍是黑客比较常用的免杀伎俩之一。

三、冷门的加壳程序
修改特征码:杀毒软件是根据病毒特征码来判定一个程序是否是病毒的。杀毒软件在对程序进行检测时,如果在程序中发现了病毒特征码,就将该程序判定为病毒。黑客当然也明白这个道理,于是他们会修改木马中被定为特征码的部分代码,将其加密或使用汇编指令将其跳转,这样杀毒软件就无法在木马中找到病毒特征码,自然也就不会将其判定为病毒了。
虽然这两种方法都可以躲过杀毒软件的查杀,但是我们还是有办法阻止木马运行的,具体方法将在防范部分讲到。那么木马是如何“挂”在网站上的呢?这里我们以“灰鸽子”木马为例,演示一下黑客挂马的过程。演示用的“灰鸽子”木马已经经过免杀处理,杀毒软件无法查杀。

自动化分析网页木马需要一个好的页面分析系统,分离页面中的各种静态元素资源和脚本内容,同时需要一个模拟的脚本解释引擎和沙盒环境等。我这里仅说下我的两个小思路:
1.纯静态分析
只需要取到页面的静态内容,仅仅需要使用正则匹配分离出HTML内容和脚本内容,直接分析HTML内容,剩下的将分离出来的脚本内容丢给脚本解释引擎执行,当然这里有些小瓶颈,但我们可以改造脚本解释引擎,对某些网马所使用的关键函数进行处理,不难分离OBJECT和SHELLCODE之类的关键内容。javascript的解释引擎我们可以选择蜘蛛猴,当然这个东西有个致命的缺点,如果黑客使用VBSCRIPT或者封装代码进入FLASH等没有静态代码内容的文件执行脚本的话,很难再进行自动分析。

2.沙盒分析
鉴于第一种方式的种种缺点,我们仍然可以使用沙盒方式分析,直接把网马丢到真实的浏览器中跑,但之前我们需要使用第一个老思路先使用解决到几个关键的脚本函数,类似下脚本断点吧,输出关键内容或针对脚本的行为进行分析。IE的话我们可以使用COM HOOK,而FF甚至不需要大力气我们可以直接使用Greaseamonkey插件等。

以上仅仅是隐晦的说了两个小思路,没有涉及实际内容。我也是在慢慢摸索,“黑客”的挂马方式肯定是会越来越高级,这就需要我们广大的网络爱好者去不断的探索学习。

文章出自:http://hi.baidu.com/wajika/blog/item/074d7ba14468dd87471064b0.html