一般的站点都存在安全隐患,WordPress 架构的站点也是如此。我们接触过几个被黑的用户的站点,发现他们在本身的安全意思不强导致的,从而被黑客上传了后门程序。这些后门程序有的非常的隐蔽,不易发现。本文将从我们实际接触的几个案例来探讨一下如何在被黑的 WordPress 站点中发现后门并修复它。其它程序架构的网站不在此讨论中。
一、什么是后门?
后门是一种为删除能通过正常的授权并获得远程访问服务器的程序方法。许多聪明的黑客总会上传后门程序以获得站点的正常授权。如果你没有发现并适当的清除它,黑客们会一直已管理员的身份访问你的站点。这是非常可怕的。
后门程序各种各样,有一些后门程序仅允许常见隐藏的管理员用户名;然后一些复杂的后面程序能够允许黑客执行 PHP 代码;还有一些能够完全注入 UI,允许他们以服务器名义发送电子邮件执行 SQL 查询等等任何可以做到的事。
二、后门代码隐藏在什么地方?
通过我们实际接触及国外安全方面的介绍,一般后门代码隐藏在一下的位置:
- 主题 – 为了让后门代码更加隐蔽,黑客门不把代码放在当前主题中,他们可能把代码放在一些没有激活的主题中。如果你的 WordPress 站点中存在多个主题,请不未激活的主题删除。
- 插件 – 有三点足以说明插件是黑客们乐于放后门代码的地方。第一是因为我们不去看其代码,只管用;第二是因为我们不喜欢更新插件,担心更新后会失去设置;第三一些插件本身就藏有后面。
- Uploads 目录 – 作为一名 WordPress 使用者,可能不愿意去看 uploads 目录,因为那里面存在许许多多上传的文件,有时显得很乱。然后这正被黑客们利用。由于这个文件夹是可写的,所以导致一些后面代码就存在这里。
- wp-config.php – 这个文件也是被黑客们高度注意的一个文件。
- Includes 文件夹 – /wp-includes/文件夹也是黑客们喜欢上传文件的地方,因为这里面存在大量的 PHP 文件,他们上传一个 php 文件在这里很容易混淆视听,不易被发现。
在这些地方,他们会让他们的文件看上去像一个 WordPress 文件。
例如: 在一个案例中,这个后门代码存在 wp-includes 文件夹中,它叫 wp-user.php,这个文件在正常的安装中没有的。还有叫 user.php,正常安装中也没有。在另一个案例中还有一个叫 hello.php,存在于 uploads 文件夹内,这与 Hello Dolly 插件是不同的。
可能还有使用类似 wp-content.old.tmp, data.php, php5.php 这样的文件,甚至使用 zip 文件。在大多少案例中,这些文件采用了 base64 代码加密,让你看不到内容而不敢删除。
现在可能然你认为 WordPress 是不安全的而不敢使用,这你就错了。我一开始就讲了,任何程序都存在安全隐患。而 WordPress 在安全方面做的足够好,而且一旦发现马上就会有更新,这一点大家不要担心。之所以出现这些,往往是大家设置不当导致的。
三、如何发现并清除后面?
现在已经知道后门是什么以及在哪里,接下来就是去找到它,一旦找到,清除就很简单,直接删除即可。难点是如何发现它的位置。不过我们可以借助插件来做。以下几个插件可以实现这点:
1 、 Theme Authenticity Checker(免费插件)
2 、 Exploit Scanner(免费插件)
3 、 Sucuri(付费插件)
当然如果你不愿意使用插件,也可手动来实现。
搜索 Uploads 目录
尽管上面的插件可以轻易做到这点,然后如果你属性 SSH,则需要写下面的命令即可搜索到:
find uploads -name "*.php" -print
显然在 uploads 目录里如果存在 php 文件,我们应引起高度重视。一般这里是媒体文件。
删除未激活的主题
如上所述,这个未激活的主题也是黑客们的目标。最直接的办法就是删除它。因为不必要的无需放在那里,也不必花时间去找。
.htaccess 文件
前段时间,我发现一个用户的网站在这个文件里出现了重定向的代码,致使网站不能访问。所以我们可以直接删除这个文件,然后到后台设置固定连接保存一下就会重新生成.htaccess 文件。
wp-config.php 文件
一般可以通过比较软件来比较这个文件与 wp-config-sample.php 的区别,一旦发现就清除。
扫描数据库
有一些黑客他们会在数据库里添加一些执行代码,让你不易发现。如 PHP 函数、新管理员帐户、垃圾链接等等。这个新管理员帐户在用户列表中不易看到的。如果不熟悉 SQL 或不知从何开始,则需使用 Exploit Scanner 插件或 Sucuri 插件。
再次检视一下网站
这些后面已经清除了吗?别急。登入时浏览没发现异常,请登录再浏览。因为有的后门非常的聪明,登入看不到,登出则会发现。
四、如何防范于未然?
显然,但发现了后门之后,损失已经造成。所以我们平时应该加强安全意识,做到防患于未然。下面一些提示比较重要,有利于加强网站的安全。
- 使用强密码 – 我们不建议使用纯数字的密码,也不建议使用少于 6 位的密码。建议大于 6 位,多字符混合,大小写混合。
- 2-步授权 –如果密码被攻破了,则进行第二步验证,通过手机验证。现在已经有这方面的插件。
- 限制登录尝试 – 通过插件来限制用户登录错误密码的次数。
- 关闭主题和插件编辑 – 即使被登录进去,他们也不能修改你的主题和插件。
- 密码保护 WP-Admin – 你可以设置密码保护此目录,限制登录 IP 。
- 关闭 某个目录下的 PHP 执行权限 –包括上传目录和其它选择的目录。 T
- 保持更新 –使用最新的 WordPress 版本,保持插件更新。