问题描述

我的 for-fun WordPress 博客在 http://fakeplasticrock.com(运行 WordPress 3.1.1) 遭到黑客入侵 – 它在每个页面上都显示了一个<iframe>,如下所示:

<iframe src="http://evilsite.com/go/1"></iframe>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

我做了如下

  1. 通过 built-in WordPress 升级系统升级到 3.1.3
  2. 安装了 Exploit Scanner(对异常文件有很多关键警告) 和 AntiVirus(这显示所有绿色和干净,所以我卸载并运行后删除它)
  3. 更改 MySQL 密码
  4. 更改了所有 WordPress 用户密码。
  5. 通过 FTP 连接并下载整个文件系统 (不大,这是一个 WordPress-only Linux 共享主机)
  6. 将文件系统与 WordPress 3.1.3 的官方 ZIP 相关联,并删除或覆盖任何不匹配的内容。

我相当肯定

  • 磁盘上的所有文件都是官方 WordPress 3.1.3 文件
  • 磁盘上没有我的一个/theme,Exploit Scanner 插件 (我刚下载的),/uploads 文件夹和少量其他预期文件中的”extra” 文件。我的其他插件,wp-recaptcha,匹配当前官方下载的版本。
  • 我也检查了.htaccess 文件,没有什么看错了

我没有触摸数据库,但是我很难想到,如果没有特殊的 PHP 代码使数据库工作,数据库中的任何内容都可能是恶意的?

我的 WordPress 博客现在好了,hack-free 现在 (我想),但还有什么我应该检查的吗?

最佳解决方案

你确定了利用矢量吗?如果没有,你可能会将自己开放给未来的漏洞。

其他要考虑的事情:

  1. 更改 WordPress 管理员用户密码 – 完成
  2. 更改主机帐户用户密码
  3. 更改 FTP 密码
  4. 更改 MySQL 数据库用户密码 – 完成
  5. 更改 db 表前缀
  6. 更新您的 wp-config nonces/salt
  7. 检查你的 directory/file permissions
  8. 阻止 directory-browsing 访问,通过.htaccess
  9. 通过 Hardening WordPress Codex 条目中的所有内容
  10. 通过 FAQ My Site Was Hacked Codex 条目中的所有内容

次佳解决方案

看看谷歌浏览器的 「安全浏览」 消息,你会得到最近似乎正在进行的 「.cc iFrame 黑客」 。我认为 3.1.3 会解决这个问题,但是检查你的 index.php 文件在根目录下,如果你的站点,那是它不断击中我,直到我得到一切更新和密码更改。

有一些非常棘手的东西,人们可以通过发布和评论注射来做。您可以对您的数据库运行以下查询,以帮助找到其中一些我发布的其余的”tracking” here

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?php%'
SELECT * FROM wp_comments WHERE comment_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%display:%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?php%'

希望这可以帮助!

第三种解决方案

数据库也可以包含恶意代码:隐藏的用户帐户或在某处打印未转义的值。另外,检查您的上传目录中不属于那里的文件。

哦,试着弄清楚攻击者是如何找到他们进入你的网站的。在共享帐户上,通常是整个服务器。服务器上的 Check the other sites 也被黑客入侵博客或其他网页。阅读你的 FTP 日志。如果你不知道如何发生,你不能阻止下一个休息。

第四种方案

对不起,听到你被黑了 – 看起来你已经做了一个很好的恢复工作,虽然!

你的文件系统听起来很棒,我不会说这里有什么可以做的。

我会认为,如果发现任何脚本,iframe,PHP(尽管只有危险的 eval’d) 或数据库中的其他不寻常的代码,Exploit Scanner 将会发出警告。

我不知道是否检查除帖子以外的表格评论,可能值得一试,看看/wp-admin/options.php,看看是否有什么奇怪的。

我还会在 MySQL 客户端中检查您的用户表 (用户可能位于数据库中,但在管理员中不可见) 。

第五种方案

检查 Google 网站管理员工具有两件事情:

  • 验证您的网站是否没有被标记为被盗用,并请求重新审核
  • 检查您的网站为 Googlebot,并确认没有任何垃圾邮件被插入只有 Googlebot 可见 – 例如这是 WP 制药黑客

此外,我将 re-implement 的主题,或非常仔细地检查。几行 PHP 可以重新定义核心 PHP 函数,以便从数据库中提取恶意代码,特别是 wp_options 键/值存储表

第六种方案

通过 phpmyadmin 为”iframe” 搜索数据库,或转储数据库并搜索文本。

并检查用户表中的隐形用户; 我已经看过在 WP Admin>> Users 中没有显示的表中的用户。

 Clean Options « WordPress Plugins 将显示旧数据库中可能存在的易受攻击的插件的垃圾。

您的主题也缺少<head> 标签,所以我会检查,以防万一你编辑主题删除不良链接。

和通常的:和 How to find a backdoor in a hacked WordPressHardening WordPress « WordPress Codex

第七种方案

「还有什么我应该检查的?」 你需要检查你的过程,并找出你被黑客入侵 (几乎肯定是因为你没有及时补丁或正确补丁),并且也解决这个问题,而不仅仅是症状。

第八种方案

对我来说,曾经发生过一次,通过 mediatemple 的泄漏。我必须编写一个插件来检查注入链接的数据库。你可以抓住它 here as a github gist

这是非常用户友好的,有几个步骤,完成后提供反馈和 re-checks 您的数据库。

祝你好运!

第九种方案

我有一个非常相似的黑客,我不得不解决我的一个客户端网站。

文件系统中有恶意脚本 (php base64_decode stuff) 。但是,数据库’posts’& ‘comments’ 表已被破坏,并且 iframe 代码也分散在该数据中。

我至少在数据库中运行几个搜索,只是为了安全。 🙂

第十种方案

检查你的插件!今年到目前为止,已经有来自.org 插件的 60 个漏洞发布,我怀疑真正的数字要高得多,因为没有人真的在做这个全职。

你列出你只有一个插件,它有一个安全漏洞 (不知道它是多久,它可能不是矢量) 。

wp-recaptcha-plugin
The exploit was released: 2011-03-18
Exploit version: 2.9.8

作者表示他重新编写了 3.0 版,但没有提到安全补丁。

 http://www.wpsecure.net/2011/03/wp-recaptcha-plugin/

更改日志:http://wordpress.org/extend/plugins/wp-recaptcha/changelog/

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。