验证我已经完全删除了WordPress hack?


105

我在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"> 

我做了以下

  1. 通过内置的WordPress升级系统升级到3.1.3
  2. 安装了漏洞利用扫描程序(对非正常文件有很多严重警告)和防病毒软件(显示为绿色,干净,因此我在运行后将其卸载并删除了)
  3. 更改了MySQL密码。
  4. 更改了所有WordPress用户密码。
  5. 通过FTP连接并下载了整个文件系统(不大,这是仅WordPress的Linux共享主机)
  6. 将文件系统与WordPress 3.1.3的官方ZIP文件区别开来,并删除覆盖了所有不匹配的内容。

我很确定

  • 磁盘上的所有文件均为官方WordPress 3.1.3文件
  • 除了我的磁盘/theme,Exploit Scanner插件(我刚刚下载),/uploads文件夹和少量其他预期文件之外,磁盘上没有“多余” 文件。我的其他插件wp-recaptcha与当前的官方下载版本匹配。
  • 我还检查了.htaccess文件,那里没有任何问题

超越比较中的wordpress 3.1.3文件比较

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

我的WordPress博客现在可以正常运行并且没有受到黑客攻击(我认为),但是还有什么我需要检查的吗?


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

Answers:


80

您确定了漏洞利用媒介吗?如果没有,您可能会敞开心future,以备将来被利用。

要考虑的其他事项:

  1. 更改WordPress管理员用户密码- 完成
  2. 更改托管帐户用户密码
  3. 更改FTP密码
  4. 更改MySQL数据库用户密码- 完成
  5. 更改数据库表前缀
  6. 更新您的wp-config随机数/盐
  7. 检查您的目录/文件权限
  8. 通过阻止目录浏览访问 .htaccess
  9. 浏览Harding WordPress Codex条目中的所有内容
  10. 浏览“ 常见问题”中的所有内容“ 我的网站被黑抄本”条目

1
抱歉,忽略提及-我当然更改了WordPress密码。更新了帖子,并在此处的列表中选中了!我想不通以进入WordPress的方式来拥有我的托管密码或FTP密码的任何方式。该信息不在文件系统或数据库中。
Jeff Atwood

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

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

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

3
仅供参考,如果您可以访问命令行,WP-CLI有一个verify checksums命令,它将根据wordpress.org检查每个文件
William Turrell 2015年

26

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

希望这可以帮助!


4
我要补充一点SELECT * FROM wp_* WHERE comment_content LIKE '%<?%'SELECT * FROM wp_* WHERE comment_content LIKE '%<?php%'只是要确保...
SeanJA 2011年

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

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

20

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

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


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

@杰夫·阿特伍德,我不会依靠这一点。您的用户表不是很大。您无需任何插件即可轻松阅读它。
fuxia

我检查了wp_users表,只有2行,都在预期中.. /upload文件夹中没有任何异常(只是gif,png和jpeg)
Jeff Atwood

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

4
图像文件是一种相当常见的有效负载传递方法。参见此处,主题审查团队也使用类似的TIFF漏洞来处理主题。)所以,是的:我会检查每个主题,以确保它是媒体库的一部分。(轻松进行高级扫描:检查未定义缩略图大小的图像。)
Chip Bennett

13

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

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

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

我不确定它是否检查除帖子和评论以外的其他表格,是否值得/wp-admin/options.php一眼快速查看一下,看看是否发现任何奇怪的地方。

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


在users表上运行MySQL查询绝对是个好主意,以确保那里没有意外,我做到了。好提示!
杰夫·阿特伍德

8

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

  • 验证您的网站未被标记为已受到威胁,如果已将其标记为重新考虑
  • 将您的网站作为Googlebot进行检查,并确认没有插入仅对Googlebot可见的垃圾邮件-例如WP Pharma hack

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


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

6

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

并在用户表中检查不可见的用户;我在未在WP Admin >> Users中显示的表中看到了用户。

清除选项«WordPress插件将显示数据库中剩余的旧的和可能易受攻击的插件中的垃圾内容。

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

和通常的做法:以及如何在被黑的WordPress中找到后门强化WordPress«WordPress Codex


5

“还有什么我应该检查的吗?” 您需要检查您的过程,并找出被黑客入侵的方式(几乎可以肯定,因为您没有及时或正确地打补丁),并且也要解决此问题,而不仅仅是症状。


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

4

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

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

祝好运!


4

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

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

为了安全起见,我至少要在数据库上运行一些搜索。:)


3

检查您的插件!,到目前为止,今年到目前为止已有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/


2

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

最后询问您的主机最近是否受到破坏,因为它们应该具有防火墙设置


2

检查文件的日期。任何文件的更改数据都不得超过上次编辑/安装!

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.