APP下载

网页木马的攻击与防范

2014-07-13罗泽林陈思亮张贵洲谢乔庄小妹

电脑知识与技术 2014年5期

罗泽林 陈思亮 张贵洲 谢乔 庄小妹

摘要:一句话木马和Webshell是目前黑客入侵网站的常用技术。在介绍一句话木马和WEBSHELL原理和功能的基础上,介绍了一句话木马和WEBSHELL相互配合入侵网站的过程,并提出清除木马的方法和相应的防范措施。

关键词:网页木马;一句话木马;Webshell

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)05-0932-03

Attack & Precaution of Webpage Trojan

LUO Ze-lin,CHEN Si-liang, ZHANG Gui-zhou,XIE Qiao ,ZHUANG Xiao-mei

(Guangdong Peizheng College, Guangzhou 510830,China)

Abstract: One-word Trojan and Webshell are the most common technology used by hacker to attack Website currently. After introduce the principle and function about One-word Trojan and Webshell, the attack process of website used by One-word Trojan and Webshell is described, and the corresponding removing method and precaution are given.

Key words: Webpage Trojan;one-word Trojan;wehshell

1 概述

随着大数据时代的步伐渐渐来临,用户数据安全问题成为了网络安全人员和黑客们关注热点。360网站安全监测通过对大量网站页面源码的分析发现,黑客用“一句话木马”踩点的行为随处可见,一旦黑客确认网站可攻击,则通过植入后门等方式,查看和窃取服务器中的重要文件,危害网站安全。360网站安全监测数据显示,2012年存在“一句话木马”的网站共12866个,其中政府类785个、教育类663个,合计比例超过10%,其余89%存在“一句话木马”的网站涉及电商、社交、视频等各行各业,其威胁十分广泛[1]。其实黑客使用一句话木马只是入侵的前奏,而在入侵的网站上传网页木马,进而控制服务器才是黑客的目标。

2 网页木马概述

这里所说的网页木马是指WEB脚本形式的木马,而不是传统意义上exe形式的木马,也不是指嵌入网页中的木马,因为嵌入式木马最终还是下载和调用传统的木马[2]。由于EXE形式的文件受到WEB服务器的限制,这种形式的木马在WEB服务器上几乎已经“英雄无用武之地”。而网页木马比传统的木马更轻便、更灵活,而且隐蔽性好,更具有危害性,是目前黑客入侵WEB服务器最常用的技术之一。通常这类木马也称为Webshell,而一句话木马是一种特殊的Webshell。

2.1 什么是Webshell

木马程序本来是存在于应用软件层面的一个分类,它特指那些用来远程控制、监视用户计算机,盗取用户信息资料的程序。Web应用程序同样能够实现木马程序的功能,这就是Webshell。Webshell利用Web开发语言的特殊功能,只需要将系统命令输入到表单中,提交后,Webshell就可以执行命令并返回执行结果,相当于通过Web程序制作出了一个系统的Shell,并且它还是可以远程访问的[3]。

Webshell起初是一种网站管理工具,是为方便管理网站和服务器开发的,常见有基于asp、php、.net、jsp的Webshell。受FSO权限的限制,它具有编辑、上传、下载、查看数据库、执行命令等功能。有脚本编程基础的入侵者通过修改相应功能达到控制服务器的目的。这种Webshell又称“大马”[4]。

2.2 Webshell的上传

由于Webshell功能比较复杂,因此体积一般比较大,而且很多管理员都限制了上传文件的大小,在入侵初期显得不够灵活,所以需要“小马”作铺垫。一句话木马就是“小马”的一种。通过一句话木马上传Webshell是比较常见的方式,但是也可以通过低版本fckedit编辑器上传漏洞上传。有些网站的后台限制ASP文件等网页文件的上传,但允许JPG等图片文件的上传,这也为Webshell的上传提供了可用之机,甚至有些黑客能够利用抓包和修改数据包的工具,再通过重传数据包来实现Webshell的上传。Wehshell上传成功后,所能执行的功能是有限制的,所以黑客要想办法提权。

2.3 什么是一句话木马

2.4 一句話木马的功能

一句话木马虽然只有一个语句,但功能强大的让人惊讶。客户端可以提供一般的网站管理功能,如上传下载、文件编辑、复制、重命名、删除、修改、保存shell记录、浏览网页等。如果网站权限开放得足够大,甚至可以管理windows和linux的操作系统。因为有大马的存在,一句话木马通常只是入侵的前奏,因此,它的“上传文件”的功能是最为重要的一个功能。

2.5 一句话木马的注入

这里说的一句话木马的注入区别于平常我们说的SQL注入漏洞,它的目的就是植入代码。假设现在有一个about.asp页面,它的URL为http://www.test.com/about.asp ,我们可以通过后台编辑相关的页面内容,插入一句话<%eval request(“admin”)%>,如果服务器正常解析了这句代码,那么我们就可以通过中国菜刀等客户端工具进行连接管理服务器。入侵思路有很多,例如通过留言板,利用数据库的管理漏洞,利用后台管理漏洞等。

3 网页木马的攻击过程与分析

一句话木马和Webshell入侵的一般步骤为:

1)通过漏洞向网站写入一句话代码。

2) 一句话代码被网站执行。

3) 通过一句话木马客户端连接一句话木马。

4)上传Webshell进一步控制网站。

5) 配合Webshell进行提权。

6) 完全控制服务器

我们以phpxxx9这个开源网站系统为例子,看看网页木马如何为入侵者提供强大的后门功能。

phpxxx9有一个文件后缀名提取漏洞,通过该漏洞可以绕过后台,直接上传一句话木马[6]。我们以www.lyxxx.com为示范例子,通过漏洞得到的类似文件名为thumb_6_6_.Php.JPG%20%20%20%20%20%20%20Php的一句话木马,一句话木马的内容为<?php eval($_post[‘ln]);?>,然后通过中国菜刀连接。再通过中国菜刀的文件上载功能把大马,即Webshell上传到Web服务器。

上载Webshell成功后,先测试Webshell的权限,也就是Webshell能够执行的功能和命令。结果发现大部分的命令都可以执行。通过执行批处理命令,开启服务器远程管理功能,接着通过执行命令查询远程桌面连接端口号。

再通过GetHash.exe获取服务器登陆信息,或者更简单的,使用一些小程序直接抓取系统账号密码。最后,在本机利用mstsc命令,输入Web服务器地址,就可以远程登陆服务器了,远程服务器也就在入侵者的掌握之中。

以上就是通过一句话木马和Webshell成功入侵一台服务器的一般过程,在这里要说明的是,上面提到的执行命令功能很多网站都是禁止掉的,这就需要入侵者想方设法进行提权操作了。通过这个简单的入侵过程,我们可以看出一句话木马和Webshell在这个过程中的重要性,一句话木马上载成功与否直接关系到后面的步骤,而Webshell为入侵者提供了强大的功能支持。

一个好的Webshell几乎可以拥有网站管理的所有功能,相当于一个强大的网站后台管理中心,而且通过调用功能函数间接调用系统接口可以进一步实现服务器的渗透入侵。在上面的例子中,我们就可以通过开放的PHP的功能函数来执行服务器操作系统的命令。

一句话木马由于体积小,而且仅有一句代码,可以实现任意变形加密,或者插入到网站中的某些文件中,极难被管理人员发现,所以一般只要放的位置够隐秘,就很难被清除掉。相反,Webshell由于体积大,单独保存为一个文件,很容易被管理员发现进而被清除掉。但主要一句话木马还保存在网站上,就很容易重新上传Webshell。

4 网页木马的清除和防范

4.1 一句话木马的清除

一句话木马体积小,可以任意插入网页脚本文件中,一般非常隐蔽,所以手动找出并清除非常困难。但由于一句话木马格式固定简单,所以可以通过相关的查杀软件进行清除,如护卫神云查杀、安全狗等,找出一句话木马所在位置就可以直接删除。但若是入侵者对一句话进行了免杀或加密处理,这样就只能看管理员的管理经验和安全意识了。“三分技术,七分管理”,管理员的安全防范意识有时更为重要。有些时候,黑客只是把一句话显示在网站的不显眼处,目的是提醒网站管理人员。

4.2 Webshell的清除

相对一句话木马,Webshell的清除稍为简单一些,因为Webshell只能以单独的脚本文件形式存在,不能插入网站脚本文件中,可以通过特征代码段进行查找清除。一般来说,入侵者上传Webshell后会尝试各种危险操作,系统会当成错误或警告记录到日志文件中,管理员可以通过查看系统日志和网站日志找出Webshell。

4.3 防范措施

一切入侵活动皆依赖漏,这就是问题的根源。一句话木马和Webshell也一样,他们依赖于网站的漏洞进行入侵。漏洞一般是技术缺陷或人为因素造成的,防范措施如下:

1)及时打补丁。对于技术缺陷造成的入侵行为,我们只能依赖技术人员发布的补丁,所以管理员需要时常关注网站以及操作系统的最新漏洞,及时打上补丁。

2) 设置访问权限。一句话木马和Webshell主要依赖于网站赋予的权限才能正常工作,而我们应该在权限上做严格的限制。例如,网站文件夹的权限设置为user用户组,不需要写操作的文件或文件夹设置为只读,需要写操作的文件或文件夹赋予读写权限,但不允许执行权限。

3) 安装安全软件。服务器可以安装如护卫神、安全狗、防篡改和WAF等安全软件,这类的安全软件比较有针对性,在很大程度上可以弥补人工维护的不足。Webshell是利用80号端口进行入侵的,所以它能穿越传统的防火墙,而WAF即Web应用防火墙能较好地防范Webshell。

4)限制开放功能函数和组件。网站应该尽量少开放甚至不开放功能函数,如php的popen()、exec()、passthru()、system();而对于asp的网站,应限制Wscript.shell组件的使用。

5) 过滤数据。网站系统对用户提交的所有数据应该进行某些特殊符号的转义,如单引号、反斜杠、尖括号等。

6) 提高安全意识。有些管理人员不了解一句话木马和Webshell的原理和入侵过程,对于网页上出现的一句话木马,只是把它作为是网页上的错误而不加关注,则可能导致更为严重的攻击。

7)数据库的安全设置。一句话木马很多时候是直接添加到数据库中的,数据库的安全设置尤其重要,应严格设置数据库的写入操作。

5 小结

一句话木马和Webshell都是一种后门,是目前最流行的网页木马,也是黑客入侵Web服务器最常用的技术之一。一句话木马轻便小巧,是Web攻击的开路先锋,而Webshel功能强大,是黑客实现控制Web服务器有力工具。熟悉一句话木马和Webshell的入侵原理和过程,我们才能更好的采取相应的防范措施。

参考文献:

[1] 小新.360曝光神秘一句话木马提醒站长查后门[EB/OL].http://safe.it168.com/a2013/0304/1458/000001458560.shtml,2013-03-04.

[2] 安晓瑞.ASP网站网页挂马的危害分析及防范对策研究[J].甘肃联合大学学报,2013(27):74.

[3] 王继刚.揭秘WEB应用程序攻击技术[M].北京:中国水利水电出版社,2009.

[4] 百度百科.Webshell [EB/OL].http://baike.baidu.com/view/53110.htm.

[5] 百度百科.一句话木马[EB/OL].http://baike.baidu.com/view/102246.htm.

[6] n3wF.PHPCMS v9 Getshell(apache)[EB/OL].http://www.wooyun.org/bugs/wooyun-2013-019299.