|
作为一名站长,技术当然是有限的,甚至很多站长根本就不懂什么技术。这个对于那些木马攻击者来说甚是高兴,等你辛辛苦苦把流量做起来后,在你网站上挂个马,轻松获得流量,相当可恶。
前段时间偶的小游戏网站关键字做的还不错,几个月之后流量上到了7千多,相关关键词排名很高。但是突然间来了位不速之客,在我网站上挂了木马,一打开页面就自动跳转到对方的网站,他也是个小游戏网站。就这样轻松的把我的流量都转到他网站上去了。当然我第一时间发现了,自然是像以前一样清理掉它。
下面就讲讲我的正常清理木马方法:
第一步:查看页面被修改的迹象,主要是查看时间,挂马经常都会挂首页,首页文件index.html,用ie打开网页,点击“查看”菜单,选择“隐私报告”选项,就可以查看到详细的连接地址。这里我解释一下,除了直接跳转之外的木马,都可以从这里得到木马连接地址;
第二步:复制第一步得到的木马连接页面地址,然后到网站根目录开始按照相关字眼进行搜查。但是这一招未必能管用,因为有些东西不是像你看到的那么简单的字符串,是写在js里面的,包含有很多的转义字符。查得到就删除,查不到就进入第三步;
第三步:查看网站的js文件,这个只能手动一个个js打开来检查了,查到木马代码,删除即可;
第四步:一般这样轻量级的木马代码,清理完了后是不是就结束了呢?那么明天是不是又被挂马呢?答案是肯定的,因为你没从根源处理问题。我的常规做法是通过星外客户端关闭网站的写入权限,如果没有星外,其他的也一样,关闭写入权限还是能起到很大作用的。
第五步:寻找后门程序,一般挂马都是有一个后门程序的,它是通过网站的漏洞,写的另外一个文件到你网站目录去的,一般都是脚本文件。这个就比较难找了,需要有一定技术基础的人才能分辨出那个是后门程序,如果不懂程序,根本就无法分辨那个是脚本程序了。不过在第四步,你已经关闭了写入权限,所以即使没删除后门程序,也无大碍,基本上可以杜绝部分木马了。
上面的方法只是杜绝部分木马,还有更强的木马植入方法,就算你删除后门程序,关闭写入权限,一样可以挂马,就算你把所有脚本都删除了,只剩下静态的html文件,对方一样可以挂马。听起来是不是很吓人?是不是有点晕?其实我这篇文章,这里才是要说的重点,我刚开始也很晕,根本不知道是为什么。
在我删除了后门脚本,关闭了写入权限,后来甚至删除了所有的asp脚本,第二天依然被挂马!接下来我能做什么呢?没办法的情况下,我研究起了系统的事件查看器。
第一步:查看木马后门文件的写入时间,例如是2月6日11:15,找到应用程序日志的6日11点左右的事件记录;
第二步:发现有一个事件是通过mssql数据库权限,写入到目录的后门程序,内容如下:
18270:
数据库差异更改已备份: 数据库: 2144ladb,创建日期(时间): 2010/02/02(00:25:13),转储的页: 118,第一个 LSN: 408:27203:1,最后一个 LSN: 408:27208:1,完全备份的 LSN: 408:27174:3,转储设备的数目: 1,设备信息: (FILE=1, TYPE=DISK: {'e:\host\xxxxxx\web\ri.asp'})。
解释一下:这个ri.asp就是后门脚本之一。从这里基本上可以找到根源了,跟数据库有关,但是我还不清楚是怎么回事。
第三步:打开数据库企业管理器,进入网站对应的数据库,在库的用户里面发现多了一个陌生账号,并且多了一个陌生的数据库表格,表名称是D99_TMP。我之前都没遇到过,只是听说有SQL注入这么一攻击方法,通过搜索D99_TMP表名称,才发现原来这个表是某SQL注入工具默认自增表。既然知道是SQL注入攻击,那接下来就好办了,网上找一下,都有相应的方法清理和解决。
当然这两天都不会被挂马了,之前是今天清理,明天早上一上班就被挂了,我这里的解决方法是:
MSSQL数据库存在几个危险的扩展存储过程,默认Public组可执行权限,SQL注入者可利用此读取文件目录及用户组,并可通过先写入数据库然后导出为文件的方法往服务器写入危险脚本进一步提权,或直接使用某些存储过程执行命令,如xp_cmdshell。这些存储过程如下:
sp_makewebtask
xp_cmdshell
xp_dirtree
xp_fileexist
xp_terminate_process
sp_oamethod
sp_oacreate
xp_regaddmultistring
xp_regdeletekey
xp_regdeletevalue
xp_regenumkeys
xp_regenumvalues
sp_add_job
sp_addtask
xp_regread
xp_regwrite
xp_readwebtask
xp_makewebtask
xp_regremovemultistring
对应措施:删除上述存储过程或可执行文件或修改存储过程相应用户组可执行权限,删除上述存储过程对应脚本为:
drop PROCEDURE sp_makewebtask
exec master..sp_dropextendedproc xp_cmdshell
exec master..sp_dropextendedproc xp_dirtree
exec master..sp_dropextendedproc xp_fileexist
exec master..sp_dropextendedproc xp_terminate_process
exec master..sp_dropextendedproc sp_oamethod
exec master..sp_dropextendedproc sp_oacreate
exec master..sp_dropextendedproc xp_regaddmultistring
exec master..sp_dropextendedproc xp_regdeletekey
exec master..sp_dropextendedproc xp_regdeletevalue
exec master..sp_dropextendedproc xp_regenumkeys
exec master..sp_dropextendedproc xp_regenumvalues
exec master..sp_dropextendedproc sp_add_job
exec master..sp_dropextendedproc sp_addtask
exec master..sp_dropextendedproc xp_regread
exec master..sp_dropextendedproc xp_regwrite
exec master..sp_dropextendedproc xp_readwebtask
exec master..sp_dropextendedproc xp_makewebtask
exec master..sp_dropextendedproc xp_regremovemultistring
数据库中如发现D99_TMP数据表,请先通知网站管理员修补sql注入漏洞,该表为某SQL注入工具默认自增表,内容为C盘目录下全部文件及文件夹名称,服务器网管应检查xp_dirtree扩展存储过程权限,设置为public组不可读即可防止恶意访客读取本地文件信息,或删除xp_dirtree存储过程或删除xpstar.dll文件,该文件位于sql安装目录下。
本文原创来自www.shouji263.com站长
|
|