我在http://fakeplasticrock.com上有趣的WordPress博客(运行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"> 


我做了以下操作


通过内置的WordPress升级系统升级到3.1.3
安装了漏洞利用扫描程序(对异常文件有很多严重警告)并AntiVirus(显示为绿色,很干净,因此我在运行后将其卸载并删除了)。
更改了MySQL密码。
更改了所有WordPress用户密码。
通过FTP连接并下载了整个文件系统(不是大,这是一个仅限WordPress的Linux共享主机)
将文件系统与WordPress 3.1.3的官方ZIP进行了区分,并删除或覆盖了所有不匹配的内容。

我很确定磁盘上的所有文件都是WordPress 3.1.3官方文件
磁盘上除了我的一个/theme之外,没有其他“多余”文件,即漏洞利用程序扫描仪插件(我刚刚下载了d),/uploads文件夹以及少量其他预期文件。我的其他插件wp-recaptcha与当前的官方下载版本匹配。
我还检查了.htaccess文件,那里没有任何错误



我没有接触数据库,但是我在努力思考如果没有特殊的PHP代码就能使数据库中的任何内容变得恶意?

我的WordPress博客现在看起来不错,而且没有黑客攻击(我认为),但是还有什么我应该检查的吗?

评论

您应该保持博客为最新。 :)

#1 楼

您确定了漏洞利用媒介吗?如果没有,那么您可能会留给将来使用。

要考虑的其他事项:


更改WordPress管理员用户密码-完成

更改托管帐户用户密码
更改FTP密码

更改MySQL数据库用户密码-完成

更改db表前缀
更新您的wp -config nonces / salt

检查您的目录/文件权限

通过.htaccess阻止目录浏览访问
遍历Harding WordPress中的所有内容Codex条目
浏览FAQ中的所有内容我的网站被黑了Codex条目


评论


抱歉,忽略了-我当然更改了WordPress密码。更新了帖子,并在此处的列表中选中了!我想不通以WordPress的方式获取我的托管密码或FTP密码的任何方式;该信息不在文件系统或数据库中。

–杰夫·阿特伍德
2011-6-10在16:18



您有可能向后的漏洞利用矢量;它不太可能是WordPress->托管帐户,而是托管帐户(通过服务器或FTP)-> WordPress。

–芯片Bennett
2011年6月10日下午16:20

@Jeff您无法控制某些服务器级别的攻击(除了找到更好的主机之外)。但是,仅仅因为您尚未使用主机/ FTP凭据,并不意味着有人可以通过访问您的托管帐户来窃取它们。

–芯片Bennett
2011年6月10日下午16:36

有一种非常普遍的利用方式,即恶意软件感染您的工作站(或承包商的工作站),在您最喜欢的FTP(或启用FTP的)程序中挖掘您保存的密码,然后将其发送给攻击者,然后由攻击者进行入侵您的网站,并使用它将相同的恶意软件传播给其他网站管理员。这是您的FTP密码被盗的一种常见方法。特别阴险的是,它通过像您这样的正常站点传播,而不是您可能要小心的杂乱站点。

– tylerl
2011年6月10日17:09

仅供参考,如果您有权访问命令行,则WP-CLI有一个verify checksums命令,该命令将对照wordpress.org检查每个文件。

–威廉·特瑞尔
2015年4月4日在11:58



#2 楼

查看Google Chrome浏览器的“安全浏览”消息,您发现“ .cc iFrame hack”最近似乎很流行。我认为3.1.3可以解决此问题,但是如果您的网站在根目录下检查了index.php文件,那么在我进行全面更新并更改密码之前,它一直在打我。

有一些非常人们可以通过帖子和评论注入来完成棘手的事情。您可以对数据库运行以下查询,以帮助查找其中的一些查询。我在此处将其余的“跟踪”记录在博客中。

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%'


希望有帮助!

评论


我会添加SELECT * FROM wp_ * WHERE comment_content LIKE'%<?%'和SELECT * FROM wp_ * WHERE comment_content LIKE'%<?php%'以确保...

– SeanJA
2011年6月10日在16:04



哦,最后一点。我假设您将Google网站站长工具绑定到该域。清理问题后,您可以从您的网站站长工具帐户提交请求,要求Google重新扫描该网站并删除警告消息。他们通常在一天之内处理来自网站管理员工具的请求。否则,您将进入“顽皮的名单”长达90天。

– Dillie-O
2011年6月10日16:06

找到了很多结果,但这是因为Vimeo嵌入了iframe。

–tooshel
2011年6月10日下午16:19

#3 楼

该数据库也可能包含恶意代码:隐藏的用户帐户或未在某处打印的值。另外,请检查您的上传目录中是否存在不属于该目录的文件。

哦,尝试了解攻击者如何进入您的网站。在共享帐户上,通常是整个服务器。还要检查服务器上的其他站点是否有被黑的博客或其他页面。阅读您的FTP日志。如果您不知道它是怎么发生的,就无法阻止下一次中断。

评论


漏洞利用扫描程序会找不到任何隐藏的用户帐户吗?

–杰夫·阿特伍德
2011-6-10 15:52

@Jeff Atwood我不会依靠这一点。您的用户表不是很大。您无需任何插件即可轻松阅读。

– fuxia♦
2011-6-10 15:55

我检查了wp_users表,只有2行,都符合预期。./ upload文件夹中没有异常(只是gif,png和jpeg)

–杰夫·阿特伍德
2011年6月10日16:00



@Jeff Atwood您是查看文件还是扩展名?媒体库中是否列出了所有这些文件?

– fuxia♦
2011年6月10日16:02

图像文件是一种相当常见的有效负载传递方法。看到这里,主题审查小组也使用类似的TIFF漏洞遇到了主题。)所以,是的:我会检查每个主题,以确保它是媒体库的一部分。 (轻松进行高级扫描:检查未定义缩略图尺寸的图像。)

–芯片Bennett
2011年6月10日16:16

#4 楼

很抱歉听到您被黑客入侵-看来您已经完成了不错的恢复工作!

您的文件系统听起来很金黄,我不会说您可以在这里做其他事情。

我认为,如果Exploit Scanner在您的数据库中发现任何脚本,iframe,PHP(尽管只有在评估时才是危险的)或其他异常代码,它将发出警告。

不确定是否检查除发帖和评论之外的其他表,可能值得一看/wp-admin/options.php,以便快速浏览一下,看看是否有奇怪的地方。

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

评论


在用户表上运行MySQL查询以确保没有任何意外的情况绝对是个好主意,我做到了。好提示!

–杰夫·阿特伍德
2011年7月6日在7:10

#5 楼

检查Google网站站长工具有两件事:


验证您的网站没有被标记为已受到威胁,并请求重新审查,如果它已
将您的网站检查为Googlebot并验证没有插入只有Googlebot可见的垃圾邮件-例如WP Pharma hack

此外,我会重新实现该主题,或者非常仔细地检查它。几行PHP可以重新定义PHP的核心功能,以便它们从数据库中提取恶意代码,尤其是wp_options键/值存储表

评论


是的,我肯定是通过Google网站管理员工具重新提交了该网站,现在看来“已清除”。

–杰夫·阿特伍德
2011年6月11日下午0:38

#6 楼

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

并在users表中检查不可见的用户;我见过未在WP Admin >>用户中显示的表中的用户。

清洁选项«WordPress插件将显示数据库中是否存在旧的和可能易受攻击的插件中的垃圾。

您的主题也缺少<head>标记,因此如果您编辑了主题以删除不良链接,我将进行检查。

和通常的方法一样:以及如何查找遭黑客入侵的WordPress中的后门并强化WordPress«WordPress Codex

#7 楼

“还有什么我需要检查的吗?”
您需要检查您的过程,并找出您如何被黑客入侵(几乎可以肯定,因为您没有及时或正确地打补丁)并进行修复,而不仅仅是症状。

评论


我怀疑这与不更新WordPress有关(尽管有可能,但这只是不可能)。 WordPress本身几乎从来不是漏洞利用媒介。常见的媒介是不安全的主机配置和被盗的FTP凭据。

–芯片Bennett
2011年6月10日16:03

#8 楼

这一次发生在我身上,是因为Mediatemple的漏洞。我必须编写一个插件来检查数据库中是否存在注入的链接。您可以在这里将其作为github的要领来抓。

它非常易于使用,有几个步骤可提供反馈并在完成后重新检查数据库。

好好运!

#9 楼

我有一个非常相似的hack,必须在我的一个客户端站点上进行修复。

文件系统中存在恶意脚本(php base64_decode东西)。但是,数据库的“ posts”和“ comments”表已被破坏,iframe代码也分散在这些数据中。

我至少在数据库上进行了几次搜索,只是为了注意安全。 :)

#10 楼

检查您的插件!到目前为止,今年到目前为止已有60个来自.org插件的漏洞利用发布版,我怀疑实际数字会更高,因为没有人真正做过这全职。

您列出了您只有一个插件,那么它有一个安全漏洞(不确定它出了多长时间,并且可能不是矢量)。


wp-recaptcha-plugin
该漏洞利用程序已发布:2011-03-18
漏洞利用程序版本:2.9.8


作者表示他重写了3.0版,但未提及安全补丁。

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

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

#11 楼

我使用一台云服务器,并且具有随机古怪的ssh端口号,而没有ftp。密码很难破解。完全拒绝所有root访问。我同意WordPress不会成为您的罪魁祸首。要检查的另一件事是ftp会话没有关闭,个人计算机上的病毒(请记住,您可以将文件上传到您的站点,并且加载该文件的人也可能感染相同的病毒),也不要在公共站点或私有站点上保留密码网站总是将它们放在纸上,永远不要放在word文档或记事本上。

最后问您的主机最近是否有漏洞,因为它们应该有防火墙设置

#12 楼

检查文件的日期。文件中没有任何更改数据比您上次编辑/安装新!

但是这也可以被伪造。确保的唯一方法是将所有文件与原始安装文件进行比较(例如,哈希比较)。