WordPress站点恶意代码的分析和排查方法

投稿   明月登楼  2018-08-13 07:19:14  76 人阅读  32 条评论

自【网站安全的「灯下黑」隐患:账号安全】一文发表后,明月收到了很多站长们有关 WordPress 站点安全的问题咨询,明月总结分析了一下几乎 90%以上都是“恶意代码”造成的,而给站点带来恶意代码的插件就占了 80%以上(有官网插件、网上流传的插件等等),其他的就是主题了(以破解版、盗版主题为主)。其实无论是“恶意代码”还是“后门木马”都是以代码的形式在服务器上传播破坏的,今天明月就跟大家讲讲如何通过对代码的分析来提前找出这些“肮脏”的东西。

WordPress站点恶意代码的分析和排查方法 WordPress 第1张

function.php 里恶意代码的分析和排查

在 WordPress 里“恶意代码”最容易出现的地方就是主题目录下的 function(s).php 里,一般正规的 function.php 文件结尾都会有类似下面这样的结尾注释:

  1. //全部结束
  2. ?>

如果你发现没有这个结束注释的时候,那么基本可以判定你的 function.php 文件被篡改过了,就需要好好的检查了,比如下面这些代码行:

  1. function _checkactive_widgets
  2. function _get_allwidgets_cont
  3. function stripos
  4. function strripos
  5. function scandir
  6. function _getprepare_widget
  7. function __popular_posts
  8. add_action("admin_head""_checkactive_widgets");
  9. add_action(“init”, “_getprepare_widget”);
  10. _verify_isactivate_widgets
  11. _check_isactive_widget
  12. _get_allwidgetscont
  13. _prepare_widgets
  14. __popular_posts

每行是独立存在的,如果你的 functions.php 中有上面任意一段代码,那么你可能就中招了。其中 function、add_action 这类一般都是属于“恶意代码”做“准备活动”的代码。

WordPress站点恶意代码的分析和排查方法 WordPress 第2张

清除 function.php 恶意病毒代码

清理也很简单,直接在 function.php 文件里面找到上面的类似代码删除即可,但因为一旦感染会导致你 themes 主题目录所有主题都感染,因此你只清除当前使用主题是无效的,你清除后很快就会生成,因此你清除掉一个主题的代码后,把 functions.php 文件设置为 444 权限,然后再清理其他主题即可。至于最后 functions.php 文件的 444 权限是否需要改回去,个人建议 444 挺好挺安全的,等要修改的时候再修改就行了。

当然“恶意代码”并不仅仅局限于 function.php 文件里,明月就碰到过隐藏在 WordPress 根目录 index.php 文件里、wp-include 或者 wp-admin 目录下某个 PHP 文件、cache 这样有读写权限的目录等等,可以说是五花八门、脑洞大开的无所不在,这些其实就是【网站安全的「灯下黑」隐患:账号安全】一文里所讲的账号权限被获取到的后果,这样的结果最难排查,就明月的经验来说大致可以分为两种,分别如下:

1、手动排查和清除

所谓的“手动”其实就是借助 FTP 软件的“目录对比”、“同步浏览”来排查服务器端的 PHP 文件大小和最后被修改日期来进行分析清理的,因为一般来说 WordPress 站点的 wp-include 和 wp-admin 这两个目录里的文件基本上都是固定不变的,只有在升级、更新 WordPress 的时候才会有部分的覆盖替换,平时来说理论上是不会对这些文件进行修改操作的,通过与本地同样版本的目录文件进行对比可以快速的找出服务器上多出来的文件已经被修改过的文件(文件大小、最后修改日期),以 FileZilla FTP 软件为例,如下图所示:

WordPress站点恶意代码的分析和排查方法 WordPress 第3张

可以看到通过 FileZilla FTP 软件的“同步浏览”和“目录对比”可以快速的找到被修改过的服务器端的文件,当然也可以找出“多出来”的 PHP 文件(这类基本上直接删除清理就可以了,几乎百分百肯定是恶意代码自建的)这里只是为了告诉大家这种方法的,具体还需要大家自行来理解和试用了,这种方法对于非 WordPress 平台的博客系统来说比较实用( WordPress 有安全插件可以扫描“恶意代码”)。

2、第三方插件、工具扫描排查

WordPress 明月一直比较推荐 Wordfence Security 插件的,这是一个集防火墙和恶意代码扫描为主的 WordPress 安全插件,由一个大型团队建立和维护,100%专注于 WordPress 安全性。虽然有收费模块,但是我们可以使用免费模块“Scan”来扫描自己 WordPress 站点排查含有“恶意代码”的 PHP 文件,虽然有一定的误报率(主要是一些正版插件、主题的加密组件会被误报),但是查找“恶意代码”绝对是事半功倍的高效率,需要注意的是,这个插件明月不建议常开启着,因为其防火墙和安全防护会对数据库造成一定的负载压力影响网站整体性能的发挥,一般需要的时候启用插件运行“Scan”扫描排查,完成后关闭插件保留以备不时之需就可以了。

WordPress站点恶意代码的分析和排查方法 WordPress 第4张

Wordfence Security 插件使用注意事项:

  1. 在开始“Scane”之前,为了保证扫描的稳定执行,最好停用其他所有的插件(仅仅保留 Wordfence Security 插件启用)。
  2. 因为  Wordfence Security 插件扫描会造成服务器 CPU 负载飙升,建议选择扫描时间段在凌晨以后进行或者是网站访问量最低的时候。
  3. 我们仅仅是借助 Wordfence Security 的“Scan”恶意代码的规则而已,所以注意记录扫描结果里提示的可疑 php 文件的路径,方便手动先备份后清理删除。

其实还有一个本地工具是个查找 PHP 文件恶意代码的最佳存在,那就是微软的 MSE,我们可以将服务器端的 PHP 文件下载到本地,让微软的 MSE 扫描检测也可以找到“恶意代码”、“木马后门”的。这点而比国内的那些啥“卫士”、“管家”、“XX 霸”之流强的不只是一点点哦。

第三方工具有不少选择,具体如何选择大家根据自己的情况自由选择就是了,这里不得不叹服一下 WordPress 的生态环境真的是最好的,  Wordfence Security 这样的插件存在就很能说明这个问题了。

最后明月要再次强调一下, WordPress 丰富的插件、主题是优势也是一把“双刃剑”,大家在选择、使用插件、主题的时候一定要慎重, WordPress 不安全主要的因素就是插件、主题这些不是 WordPress 可以控制的,毕竟都是第三方开发提交的。热衷于体验各种插件和炫酷主题的站长们 Wordfence Security 插件建议永久保留以备不时之需,有好好运营网站打算的站长们建议购买正规渠道的正版主题和插件,免费的、盗版的、破解版的都有“不干净”的隐患。

历史上的今天:

如果文章对你有帮助,请赞赏支持作者继续创作!

文章标签: ,   ,   ,  
原文地址:https://www.imydl.com/wp/8569.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 明月登楼 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!
明月登楼

相关文章 分类热门分类热评最新问答

 发表评论

中国赞表情摊手表情吃瓜表情笑哭表情偷笑表情衰表情汗表情思考表情费解表情抓狂表情晕表情流泪表情疑问表情嘻嘻表情吃惊表情鼓掌表情

  1. 大学生博客
    大学生博客 @回复

    正需要这样的文章。像河马查杀和网站安全狗等软件也可以检测查杀。

  2. 涂红伟
    涂红伟 @回复

    wordpress官方插件主题库的一般是安全的,从第三方网站下载的破解版主题插件大都有后门。

  3. 唯心寒辞
    唯心寒辞 @回复

    不错,学习了,不过不知道为什么我之前安装了Wordfence Security后一直显示Wordfence could not register with the Wordfence scanning servers when it activated.[笑哭]

  4. 福利堆
    福利堆 @回复

    不错学习了

  5. 米扑博客
    米扑博客 @回复

    如何解决 勒索 病毒,重金悬赏

  6. 投资巴士
    投资巴士 @回复

    哇,这个还真的值得关注一下,的好好检查一下!谢谢分享

  7. 靠谱学生兼职网
    靠谱学生兼职网 @回复

    我估计以前用WP时,有恶意代码,现在用ZB了

  8. 千眼科技网
    千眼科技网 @回复

    我得回去看看我的站了。

  9. 菊座
    菊座 @回复

    原则上能不装就不装

    • 明月登楼
      明月登楼 作者回复2018-08-13 18:42  回复

      @菊座是的,我现在也是能不用插件就不用插件,但是安全插件必须保留!

  10. 99八十一
    99八十一 @回复

    安全第一,装个安全插件很有必要。

  11. 闲鱼
    闲鱼 @回复

    [中国赞] 点赞,明月对这个有研究,学习了

  12. 寻金笔记
    寻金笔记 @回复

    好好学习,天天上上(XX) [笑哭]

  13. 异星软件空间
    异星软件空间 @回复

    受教了! [中国赞] [中国赞]

  14. 银色月航
    银色月航 @回复

    赶紧把我function.php修改为只读23333

  15. 值品
    值品 @回复

    破解的最可疑,要小心,以前用过一个破解的缓存插件,结果满屏广告。

    • 明月登楼
      明月登楼 作者回复2018-08-13 10:07  回复

      @值品所以我一直不建议大家使用破解盗版的收费主题,不干净几乎是肯定的!

  16. 区块链
    区块链 @回复

    [思考] 好好学习。挺有用的! [中国赞]

  17. 轻羽
    轻羽 @回复

    antivirus这个插件也可以扫描主题文件
    目前在用

    • 明月登楼
      明月登楼 作者回复2018-08-13 10:06  回复

      @轻羽嗯,这个德国的插件也可以研究一下!就是感觉好像更新不是很频繁!安全扫描类软件还是要求更新频率的!专业点儿还是推荐 Wordfence Security ,这个也可以用,相对来说专一了很多!估计稳定性要好很多!改天试试去!

  18. 短视频赚钱
    短视频赚钱 @回复

    小人太多了,防不住