今天我注意到 Apache 网络服务器上的请求率异常高,并且传入的网络流量也非常高。检查 Apache 的 mod_status 页面后,我发现有问题的 URL 来自 path www.server.com/www/wp-includes/js/tinymce/plugins/wpautoresize/
。事实上,我在那里发现了几个被黑(混淆)的 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 用户下运行的,我没有理由相信服务器本身受到了损害。
该二进制文件是如何被滥用的?
编辑:这不是广泛的“如何处理受损的服务器”问题。而是一个关于一种特定类型的滥用的问题(并且已经是一个答案),它在技术上是如何完成的,因为这个特殊案例在它的工作方式上非常有创意。看来这已经流行了好几年了(旧线程和 2012 年的问题),我本周遇到了它。
在挖掘了被冒犯的 PHP 脚本和谷歌搜索(这个线程)的源代码之后,我找到了一个解释。
这是
system.php
我发现的代码的一部分:如何
/usr/bin/host
参与更高级一些。程序使用库(.so
文件)来实现它们的某些功能。用户可以LD_PRELOAD
在启动合法二进制文件之前预链接 () 一些 .so 文件以更改其行为方式。正如你所看到的,这个脚本创建了一个文件
libworker.so
并使用LD_PRELOAD
环境变量来预加载它,所以合法host
的二进制文件正在做一些完全不同的事情。它创建一个
1.sh
shell 脚本并尝试以多种方式执行它(直接,使用at
命令,使用 cron)。之后它立即从磁盘中删除脚本和库文件,因此它不会被注意到。首先发生的事情是一些易受攻击的 Wordpress 插件被滥用,攻击者能够将他们的文件放入可写字的目录中。
缓解意味着分析该域的旧访问日志文件并尝试查找
POST
对异常位置的任何请求 - 例如直接访问 WP/Joomla 插件的 PHP 文件是不寻常的。然后删除所有发现的混淆 PHP 文件,修复目录权限,终止正在运行的host
进程并监视日志文件以查找任何重新破解的尝试。编辑:我从 ESET 得到信息,他们已经检测到这个特定的库以及其他版本。防病毒公司将其命名为Roopre,它似乎被用作Mayhem僵尸网络的一部分。
深入分析Mayhem 僵尸网络。
深入分析这个漏洞。