大部分网站弹广告或被嵌入恶意代码都是因为安装了不是wordpress插件商店的东西(主题或插件),例如某度搜出来的或者别人给的网盘给的,这些都是已经被别人植入了广告代码或者弹窗代码病毒等等。Wordpress作为一个开源的框架,不可避免的会出现一些人了解透彻后,会冒出一些奇怪的想法,这或许就是恶意代码的由来吧!
Wordpress恶意代码来源的最主要途径就是盗版的插件和主题(80%都带有,只不过有的危害不明显,很难察觉),以及少部分官网的插件和收费主题(这类可能并不是开发者主动添加的,有感染的和被利用漏洞的。官网的和收费的安全性还是很高的)。
官网的主要讲一下File Manager(文件管理插件)具有编辑、删除、上传、下载、复制、粘贴文件和文件夹的功能。这个是插件的介绍,初看感觉没什么,但是仔细一想问题太大了。具有上传文件的功能,那是不是可以上传病毒文件呢?结果还真可以,那结果自然是安装插件,网站被上传病毒文件,感染整个网站,核心文件被篡改或者删除,网站弹病毒广告、访问跳转其它网站,给被人打工。虽然插件7版本已经修复,但是依然被很多黑客所使用,所以后台见到自动安装了这个插件,那么您的网站就已经被植入病毒了。
当然,恶意代码也不只是插件和主题所带来的。后台管理账号密码泄露(密码设置太简单,被扫站出来,保存浏览器被抓取等)、服务器密码泄露(暴力破解、服务器有病毒文件、设置太简单被猜出来)、GET和POST渗透、cc攻击、恶意扫描、恶意文件上传等。
不管网站怎样感染的,但都要给清理掉
一、安装防火墙
我常用的是宝塔的nginx免费防火墙软件,可以拦截一部分风险访问,但软件毕竟是死的,用再多也有可以绕过去的方法,以及误判的拦截,但是作为一个入侵分析的工具还是可以的。分析拦截日志能够很好的找出被攻击的代码,查看是不是恶意代码,如果不是可以,优化一下,防止再次攻击。
同时,该软件还可以webshell查杀,但是不是很准确,只不过是指出一个方向,这就需要人工去判断是不是病毒了。例如:下图的Invitation.php文件打开只是邀请码的代码用到了request关键词被误判为病毒文件。虽然会误判,但是检查的严格就不会被漏掉,只不过加重了人工成本。
二、第三方插件的排查
Wordpress比较推荐的插件是Wordfence Security 。扫描时间较长,可以安排在网站访客较少的时间段进行。
扫描结果就一个个查看处理,等级问题不能作为准则。当然并不是扫描的都是恶意代码。
例如:这个是主题的加密,防止别人盗版进行,大部分主题都会有一个加密文件,这个可以询问一下开发者,防止删除后导致网站无法使用。
三、固定目录查找
这种方式,能够较精准的找到一些添加的病毒文件,针对性强。主要针对根目录下wp-content目录中的uploads/年份命名的目录和languages目录。查找以php、html、js、asp、zip等为后缀的文件,除特殊需求的网站,基本都可以确定是病毒文件,当然需要人工打开确认。
四、主要文件查找。
1)、根目录下的index.php,网站的入口文件,修改后,您整个网站可能都在给别人打工了。Wordpress的Index.php文件中只有如下图的两行代码,如果多出来很多就可能是恶意文件。另一种是把index.php文件的权限修改为444,导致网站无法访问,跳转到根目录的404.html,或者主题目录的404.php文件,然后恶意代码加到404.php或者404.html中。
2)、根目录下的wp-config.php文件,这个可以对比根目录下wp-config-sample.php的格式,如果出现一串很杂乱的代码,基本可以确定是有病毒。
3)、主题下的header.php 和footer.php,这个主要是恶意的js代码,如果找到一串多层加密或者很难看懂的代码基本可以判定恶意文件,主要效果是跳转其他网站弹出广告代码。
4)、主题下functions.php文件,里面的恶意代码主要查找下面的关键词,而且这些恶意代码是会传染的,查找之前需要先把不用的主题全部删除,否则其他主题已被传染,您删除也会再次感染。
function _checkactive_widgets
function _get_allwidgets_cont
function stripos
function strripos
function scandir
function _getprepare_widget
function __popular_posts
add_action("admin_head", "_checkactive_widgets");
add_action(“init”, “_getprepare_widget”);
_verify_isactivate_widgets
_check_isactive_widget
_get_allwidgetscont
_prepare_widgets
__popular_posts
五、文件对比,我用的是filezilla这个ftp软件,一般对比一下,文件大小和修改时间,就能很好的找出是正常修改还是添加了恶意代码。
六、找网站恶意代码清除的公司(例如:沃之涛科技(也就是我们啦)),但是要找能够保证多次清理的公司。因为网站攻击是一个持续性的问题,有些公司紧紧用软件去屏蔽文件,不去真正的去深入代码层找出恶意代码,造成的结果只是暂时性,表面性好了,恶意代码还在。这种就要用真实的数据来说话,找出了多少病毒文件,去掉了哪些恶意代码。
最后附上:常见的恶意代码或者病毒
打开是二级制的php文件(不在主题目录下的都是病毒文件,在主题下有开发者加密的可能,可以跟开发者确认)
正常代码基本是不用@的,这种password(密码)你的英雄基本都是跳转游戏网页的
这个就可恶了,给您的后台设置一个可以访问的通道