网站挂马检测与清除
陈小兵
据不完全统计,90%的网站都被挂过马,挂马是指在获取网站或者网站服务器的部分或者全部权限后,在网页文件中插入一段恶意代码,这些恶意代码主要是一些包括IE等漏洞利用代码,用户访问被挂马的页面时,如果系统没有更新恶意代码中利用的漏洞补丁,则会执行恶意代码程序,进行盗号等危险超过。目前挂马主要是为了商业利益,有的挂马是为了赚取流量,有的是为了盗取游戏等账号,也有的是为了好玩,不管是处于那种目的,对于访问被挂马的网站来说都是一种潜在的威胁,影响运营网站公司形象。
当一个网站运营很长时间后,网站文件会非常多,手工查看网页文件代码非常困难,杀毒软件仅仅对恶意代码进行查杀,对网页木马以及挂马程序不一定全部查杀,本文就如何利用一些安全检测工具软件来检测和清除网站木马方面进行探讨,使用本文提及的工具可以很轻松的检测网站是否被挂马。
一、检测网页木马程序
1.安装urlsnooper 软件
Urlsnooper是一款URL嗅探工具,其官方主页地址为:[url]http://www.donationcoder.com/urlsnooper[/url],安装非常简单,按照提示进行安装即可。第一次使用时需要程序会自动检查网卡,查看能否正常连接网络,设置正确无误后,应该出现如图1所示的画面。
图1 安装正确后的界面
注意:
如果未出现图1所示界面,说明程序设置存在问题,笔者在测试时使用发现该程序无法检测无线网卡,因此无法在无限网络中使用。
2.对网站进行侦测
在Urlsnooper中的“Protocol Filter”中选择“Show All”,然后单击“Sniff Network”按钮开始监听网络。接着使用IE浏览器打开需要进行检测木马的网站,Urlsnooper会自动抓取网站中的所有连接,在Index中按照五位数字序号进行排列,如图2所示。
图2 监听结果
说明:
在侦测结果中可能包含的连接地址非常多,这个时候就需要进行排查,可以选中每一个记录,Urlsnooper会在下方中显示详细的监听结果,如图2所示,就发现存在一段挂马代码:
在百度搜索中对其进行搜索,如图3所示,有30多项搜索结果,从查询结果可以辅佐证明该段代码为挂马代码。
图3 搜索结果
说明:要善于运用网络搜索引擎,通过搜索可以知道目前关于该问题的描述和解决方法等。
3.对地址进行解码
该地址采用了一种编码,我对常用的这种编码值进行了整理,如下表所示,从中可以找出该代码中的真实地址为[url]http://ave1.cn[/url]。
表1 编码对应表
原值 |
解码前的值 |
原值 |
解码前的值 |
原值 |
解码前的值 |
backspace |
%08 |
I |
%49 |
u |
%75 |
tab |
%09 |
J |
% 4A |
v |
%76 |
linefeed |
% 0A |
K |
%4B |
w |
%77 |
creturn |
%0D |
L |
% 4C |
x |
%78 |
space |
%20 |
M |
%4D |
y |
%79 |
! |
%21 |
N |
%4E |
z |
% 7A |
" |
%22 |
O |
% 4F |
{ |
%7B |
# |
%23 |
P |
%50 |
| |
% 7C |
$ |
%24 |
Q |
%51 |
} |
%7D |
% |
%25 |
R |
%52 |
|
|
& |
%26 |
S |
%53 |
|
|
' |
%27 |
T |
%54 |
|
|
( |
%28 |
U |
%55 |
|
|
) |
%29 |
V |
%56 |
|
|
* |
% 2A |
W |
%57 |
|
|
+ |
%2B |
X |
%58 |
|
|
, |
% 2C |
Y |
%59 |
|
|
- |
%2D |
Z |
% 5A |
|
|
. |
%2E |
[ |
%5B |
|
|
/ |
% 2F |
\ |
% 5C |
|
|
0 |
%30 |
] |
%5D |
|
|
1 |
%31 |
^ |
%5E |
|
|
2 |
%32 |
_ |
% 5F |
|
|
3 |
%33 |
` |
%60 |
|
|
4 |
%34 |
a |
%61 |
|
|
5 |
%35 |
b |
%62 |
|
|
6 |
%36 |
c |
%63 |
|
|
7 |
%37 |
d |
%64 |
|
|
8 |
%38 |
e |
%65 |
|
|
9 |
%39 |
f |
%66 |
|
|
: |
% 3A |
g |
%67 |
|
|
; |
%3B |
h |
%68 |
|
|
< |
% 3C |
i |
%69 |
|
|
= |
%3D |
j |
% 6A |
|
|
> |
%3E |
k |
%6B |
|
|
? |
% 3F |
l |
% 6C |
|
|
@ |
%40 |
m |
%6D |
|
|
A |
%41 |
n |
%6E |
|
|
B |
%42 |
o |
% 6F |
|
|
C |
%43 |
p |
%70 |
|
|
D |
%44 |
q |
%71 |
|
|
E |
%45 |
r |
%72 |
|
|
F |
%46 |
s |
%73 |
|
|
G |
%47 |
t |
%74 |
|
|
H |
%48 |
u |
%75 |
|
|
4.获取该网站相关内容
可以使用Flashget的资源管理器去获取该网站的内容,如图4所示,打开Flashget下载工具,单击“工具”-“站点资源探索器”,打开站点资源探索器,在地址中输入“[url]http://ave1.cn[/url]”,然后回车即可获取该网站的一些资源,在站点资源探索器中可以直接下载看见的文件,下载到本地进行查看。
图4 使用“站点资源探索器”获取站点资源
说明:
使用“Flashget站点资源探索器”可以很方便的获取挂马者代码地址中的一些资源,这些资源可能是挂马的真实代码,透过这些代码可以知道挂马者是采用哪个漏洞,有时候还可以获取0day。
在本例中由于时间较长,挂马者已经撤销了原来的挂马程序文件,在该网站中获取的html文件没有用处,且有些文件已经不存在了,无法对原代码文件进行分析。
二、清除网站中的恶意代码(挂马代码)
1.确定挂马文件
清除网站恶意代码首先需要知道哪些文件被挂马了,判断方法有三个,方法一就是通过直接查看代码,从中找出挂马代码;方法二是通过查看网站目录修改时间,通过时间进行判断;方法三使用本文提到的软件进行直接定位,通过监听找出恶意代码。在本案例中,网站首页是被确认挂马了,通过查看时间知道被挂马时间是 8 月 25 日 左右,因此可以通过使用资源管理器中的搜索功能,初步定位时间为 8 月 24 日 至26日,搜索这个时间范围修改或者产生的文件,如图5,图6所示,搜索出来几十个这个时间段的文件。
图5 搜索被修改文件
图6 搜索结果
2.清除恶意代码
可以使用记事本打开代码文件从中清除恶意代码,在清除代码时一定要注意不要使用FrontPage的预览或者设计,否则会直接访问挂马网站,感染木马程序。建议使用记事本等文本编辑器。在清除恶意代码过程中,发现挂马者竟然对js文件也不放过,如图7所示。
图7 对js文件进行挂马
技巧:
可以使用Frontpage中的替换功能替换当前站点中的所有指定代码。
总结
本文操作简单,写起来比较复杂,关键在于使用urlsnooper软件定位挂马网页文件,然后就是对挂马代码(恶意代码)进行分析,最后是手工活,清除网站中的恶意代码。
本文转自 simeon2005 51CTO博客,原文链接:http://blog.51cto.com/simeon/101784