问题描述
我的 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">
我做了如下
- 通过 built-in WordPress 升级系统升级到 3.1.3
- 安装了 Exploit Scanner(对异常文件有很多关键警告) 和 AntiVirus(这显示所有绿色和干净,所以我卸载并运行后删除它)
- 更改 MySQL 密码
- 更改了所有 WordPress 用户密码。
- 通过 FTP 连接并下载整个文件系统 (不大,这是一个 WordPress-only Linux 共享主机)
- 将文件系统与 WordPress 3.1.3 的官方 ZIP 相关联,并删除或覆盖任何不匹配的内容。
我相当肯定
- 磁盘上的所有文件都是官方 WordPress 3.1.3 文件
- 磁盘上没有我的一个
/theme
,Exploit Scanner 插件 (我刚下载的),/uploads
文件夹和少量其他预期文件中的”extra” 文件。我的其他插件,wp-recaptcha,匹配当前官方下载的版本。 - 我也检查了
.htaccess
文件,没有什么看错了
我没有触摸数据库,但是我很难想到,如果没有特殊的 PHP 代码使数据库工作,数据库中的任何内容都可能是恶意的?
我的 WordPress 博客现在好了,hack-free 现在 (我想),但还有什么我应该检查的吗?
最佳解决方案
你确定了利用矢量吗?如果没有,你可能会将自己开放给未来的漏洞。
其他要考虑的事情:
- 更改 WordPress 管理员用户密码 – 完成
- 更改主机帐户用户密码
- 更改 FTP 密码
- 更改 MySQL 数据库用户密码 – 完成
- 更改 db 表前缀
- 更新您的 wp-config nonces/salt
- 检查你的 directory/file permissions
- 阻止 directory-browsing 访问,通过
.htaccess
- 通过 Hardening WordPress Codex 条目中的所有内容
- 通过 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 WordPress 和 Hardening 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。