
摘要
本報告深入探討最近發現的一種隱形 WordPress 後門的技術細節,特別聚焦於其在 mu-plugins 目錄中的實作方式。分析涵蓋了載入機制、Payload 傳遞、混淆技術以及攻擊者使用的持久化策略。此外,還檢視了此類後門的影響並提供檢測與緩解的技術建議。目標是為網路安全專業人士和 WordPress 管理員提供全面的技術概述。

1. 簡介
WordPress 作為全球最受歡迎的內容管理系統,經常成為 Threat actor 的目標。攻擊向量的不斷演進使得深入分析新威脅以增強防禦策略成為必要。本報告聚焦於一種特別陰險的惡意軟體形式,該惡意軟體利用「必須使用外掛」(mu-plugins)目錄來建立持久化後門。與一般外掛不同,mu-plugins 會自動啟動,且無法從 WordPress 管理面板停用,使其成為隱形且持久的惡意軟體的理想位置。本研究旨在剖析此類後門的技術組成,參考近期發現的案例,提供理解與對抗類似威脅的技術框架。
2. WordPress 後門的技術分析
2.1. wp-index.php 中的 Loader 機制
此後門的主要入口點是一個名為
wp-index.php
的 malicious file,通常被策略性地放置在
wp-content/mu-plugins/
目錄中。選擇此目錄對於攻擊者的持久化策略至關重要,因為放置在此的任何 PHP 檔案都會在每次請求時由 WordPress 自動載入,無需通過管理面板明確啟動。這確保即使網站管理員試圖停用所有外掛,或安裝監控典型外掛目錄的安全外掛,後門仍能保持活躍。
Loader 的初始功能是取得遠端 Payload。此擷取機制採用混淆技術以規避檢測。具體來說,獲取 Payload 的 URL 通常使用 ROT13 編碼,這是一種簡單的替換密碼。雖然 ROT13 不提供加密安全性,但它作為一種基本的混淆技術,能夠從表面檢查和某些自動掃描工具中隱藏 malicious URL [1]。
程式碼首先解碼 ROT13 混淆的 URL 以存取遠端 Payload。
一旦解碼 ROT13 編碼的 URL,Loader 會向遠端伺服器發起請求以下載下一階段的 Payload。此 Payload 通常以 base64 編碼,增加了另一層混淆。在處理之前,Loader 會檢查獲取的內容是否為有效的 base64,顯示出某種基本的完整性驗證或處理格式錯誤回應的嘗試。
2.2. Payload 儲存與執行
此後門隱形的一個關鍵特點是其 Payload 儲存方式。惡意軟體並未將 Payload 直接寫入檔案系統中的檔案(這容易被檔案完整性監控工具檢測到),而是將獲取的內容儲存在 WordPress 資料庫中。具體來說,它利用
wp_options
表格,這是 WordPress 用於儲存各種網站設定與 Configuration 的合法組件。Payload 被儲存在一個客制化的選項 key 下,例如
_hdra_core
,使其看似普通的資料庫進入點 [1]。這種方法使惡意軟體能夠繞過基於檔案系統的檢測機制,即使初始 Loader 檔案(
wp-index.php
)從 mu-plugins 目錄中被移除,也能保持持久化。
Payload 被儲存在 WordPress 選項表格中的 _hdra_core ,提供了一個隱形的儲存位置,避免了檔案系統檢測。腳本隨後動態解碼並執行 Payload。
從資料庫取出後,base64 編碼的 Payload 會被解碼並動態執行。此動態執行通常使用 PHP 函數如
eval()
或
create_function()
實現,允許惡意軟體運行任意程式碼,而無需以靜態檔案形式存在於伺服器上。為了進一步減少其 Footprint 並規避鑑識分析,腳本通常包含一個機制,在執行後立即刪除臨時 Payload 檔案。這使得事件回應者難以重建攻擊鏈 [1]。
2.3. 遠端 Payload:多功能框架
遠端 Payload 在解碼並執行後,揭示了一個為全面控制被入侵的 WordPress 網站而設計的複雜惡意軟體框架。對此類 Payload 的分析通常發現以下幾種 malicious 功能:
2.3.1. 隱藏檔案管理器
這些 Payload 的常見組件之一是隱藏檔案管理器,通常被注入到合法的主題目錄中(例如,作為
pricing-table-3.php
)。此檔案管理器為攻擊者提供了瀏覽、上傳和刪除被入侵伺服器上檔案的功能。存取此檔案管理器通常使用客制化的 HTTP header Token 進行限制,確保只有擁有正確 Token 的攻擊者才能與其互動 [4]。這允許直接操作網站檔案,進一步入侵或進行資料外洩。
2.3.2. 管理員帳戶建立與操作
為了確保持久化的管理存取,惡意軟體通常會建立一個新的管理員用戶,例如「officialwp」。此用戶被授予完全管理權限,使攻擊者能夠完全控制 WordPress 安裝。此外,惡意軟體還包含更改現有常見管理用戶名(例如「admin」、「root」、「wpsupport」)密碼為攻擊者設定的預設密碼的功能。此功能有兩個關鍵目的:它允許攻擊者在合法管理員更改密碼後重新獲得存取權,並可能有效鎖定其他合法管理員無法存取其網站 [4]。
2.3.3. 外掛重新感染與持久化
惡意軟體還通過下載並強制啟動遠端外掛檔案(例如
wp-bot-protect.php
)展示先進的持久化機制。此外掛作為重新感染機制,確保即使初始後門組件被檢測並移除,惡意軟體也能自我恢復。此遠端外掛的 URL 也通常以 ROT13 編碼,類似於初始 Payload URL,進一步複雜化檢測 [1]。這種分層的持久化方法使得完全根除惡意軟體極為困難,除非對其各個組件有徹底的了解。
3. 影響與緩解
3.1. 惡意軟體的影響
此類隱形 WordPress 後門的影響非常嚴重。擁有完全管理存取權和持久化控制的攻擊者可以執行廣泛的惡意攻擊,包括但不限於:
- 資料竊取: 存取敏感用戶資料,包括個人資訊、Credential 和財務細節。
- 惡意軟體散佈: 使用被入侵的網站來託管和散佈其他惡意軟體,將網站變成進一步攻擊的平台。
- 網站破壞: 更改網站的內容或外觀以顯示 malicious 或不當材料。
- SEO 垃圾郵件與重新導向: 注入垃圾內容,建立惡意重新導向,或操縱搜尋引擎排名。
- 勒索軟體部署: 加密網站資料並要求贖金以釋放。
- 發動攻擊: 利用被入侵的伺服器作為發動阻斷服務(DoS)攻擊或其他針對其他網站的 惡意攻擊的基地。
惡意軟體隱藏其用戶、清理臨時檔案、在多個位置嵌入自身並躲避安全外掛的能力,使得網站擁有者難以檢測和移除。遠端命令執行和內容注入功能意味著攻擊者可以動態改變惡意軟體的行為,適應新的安全措施 [1]。
3.2. 緩解策略
對抗這些複雜的 WordPress 後門需要多層次的方法:
- 定期更新: 保持 WordPress 核心、主題和外掛更新至最新版本。更新通常包括更新已知漏洞,這些漏洞常被攻擊者利用。
- 可信來源: 僅從官方 WordPress.org 儲存庫或知名、可信的開發者下載主題和外掛。
- 強大安全實踐: 為所有帳戶(WordPress、資料庫、FTP、主機)實施強大且獨特的密碼,並為管理帳戶啟用雙因素驗證(2FA)以增強安全性。
- 檔案完整性監控: 定期審計主題和外掛檔案以檢測未經授權的更改。檔案完整性監控工具可以檢測合法檔案的修改或新 malicious 檔案的出現。
-
禁用檔案編輯:
通過在
wp-config.php
檔案中加入define('DISALLOW_FILE_EDIT', true);
來防止通過 WordPress 儀表板直接編輯檔案。這可防止攻擊者在獲得管理面板存取權後輕易注入惡意程式碼。 - 全面安全掃描: 使用能夠檢測混淆程式碼、資料庫儲存的 Payload 和隱藏管理用戶的先進安全掃描解決方案。對整個網站(包括資料庫)進行定期、深入掃描至關重要。
- 監控未授權用戶: 定期檢查 WordPress 用戶列表,尋找任何未經授權或可疑的帳戶。
- 網頁應用程式防火牆(WAF): 實施 WAF 以過濾惡意流量並保護免受常見網頁漏洞的侵害。
4. 結論
利用 mu-plugins 目錄和資料庫儲存 Payload 的隱形 WordPress 後門的發現,凸顯了網頁安全威脅的不斷演進。這些複雜的攻擊強調了持續警惕、主動安全措施以及深入了解攻擊者使用機制的必要性。通過理解這些後門的技術細節,網站管理員和安全專業人士可以實施更強大的防禦,確保 WordPress 安裝的完整性與安全性。對抗此類威脅的戰鬥仍在持續,需要不斷適應和改進安全實踐。