Aqua Nautilus近日發現了一起新的攻擊活動,該活動利用今年5月披露的Openfire漏洞(CVE-2023-32315)來部署Kinsing惡意軟件和加密貨幣挖礦軟件。該漏洞導致路徑遍歷攻擊,從而授予未經身份驗證的用戶訪問Openfire安裝環境。隨后,這讓威脅分子得以創建一個新的管理員用戶,并上傳惡意插件。最終,攻擊者可以全面控制服務器。我們在這篇博文中解釋了這個漏洞、Kinsing的活動,并且量化了可能暴露于這個特定漏洞的實例的范圍。比如說,結果表明我們專用的Openfire蜜罐在不到兩個月的時間里遭到了1000多次攻擊。
Openfire漏洞
Openfire是一種實時協作(RTC)服務器系統,用作聊天平臺,通過XMPP(可擴展消息傳遞和存在協議)發送即時消息。它旨在充當企業的內部即時消息服務器,支持50000多個并發用戶,并為他們提供一條安全的獨立通道,用于跨組織內不同部門之間的通信。
今年5月,Openfire控制臺上曝出了一個新的漏洞(CVE-2023-32315)。這個漏洞是在控制臺中發現的,與安裝環境中的路徑遍歷有關。該漏洞允許未經授權的用戶利用已建立的Openfire配置中未經身份驗證的Openfire安裝環境。因此,威脅分子可以訪問通常在Openfire管理控制臺中受限制的管理設置文件。接下來,威脅分子可以選擇向控制臺添加管理員用戶或者上傳一個插件,最終便于全面控制服務器。
剖析Kinsing活動
這起Kinsing活動利用了這個漏洞,在運行時投放了Kinsing惡意軟件和加密貨幣挖礦軟件,試圖逃避檢測并獲得持久性。下面的攻擊流程圖表明了這一點:

圖1
威脅分子掃描整個互聯網查找Openfire服務器(示例如下),一旦找到了服務器,就會自動測試該服務器是否容易受到CVE-2023-32315的攻擊。
該漏洞允許創建能夠上傳插件的新管理員用戶。在這起活動中,威脅分子使用該漏洞創建了一個新的管理員用戶,并上傳一個插件(cmd.jsp),該插件旨在部署主載荷:Kinsing惡意軟件。
如下面圖2所示,威脅分子向user-create.jsp發送user create(用戶創建)命令。

圖2. 攻擊者發送請求,以便在Openfire服務器上創建新用戶
請求由以下字段構成:
? Create——create =%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7參數是一個html編碼,轉換為中文“創建用戶”。
? CSRF——在服務器端生成并與客戶端共享的獨特令牌,以防范CSRF攻擊。使用GET方法時對令牌的不正確驗證允許繞過驗證。
? Username——添加新創建的用戶的名稱。
? Password——為新創建的用戶添加密碼。
? Confirm——為新用戶重新輸入密碼。
? isAdmin——為新用戶授予管理員權限。
? Create ——發送上述數據以創建新用戶。
一旦成功創建了新用戶,它使威脅分子能夠完成Openfire管理面板的有效身份驗證過程,從而作為經過身份驗證的用戶獲得完整的訪問權限。此外,由于用戶是作為管理員創建的,因此這將授予威脅分子系統中的更高權限。
接下來,威脅分子上傳一個允許在服務器上執行web shell命令的惡意插件,如下圖3所示。

圖3. 成功上傳壓縮后的Metasploit框架
威脅分子上傳一個zip文件,這其實是一個Metasploit漏洞,旨在擴展cmd.jsp,使其能夠在威脅分子的支配下啟用http請求。這允許下載硬編碼在插件中的Kinsing惡意軟件。如下圖4所示,該文件在VirusTotal(VT)中被兩家供應商標記為惡意文件(后門/Kinsing)。

圖4. 壓縮后Metasploit文件的VirusTotal掃描
該zip文件包含惡意jar文件,但在VT中沒有檢測出來。
在下面的圖5中,你可以看到這個JAR文件的一個片段,更清楚地表明了其用途。

圖5. 攻擊中主載荷的代碼片段
這個插件包含一個名為cmd.jsp的Java類,它其實是后門,可以在服務器上下載文件和執行命令。
接下來,C2服務器與惡意軟件之間有頻繁的聯系。隨后,下載一個新的shell腳本作為輔助載荷。
該腳本創建一個cronjob(計劃任務),并刪除競爭性攻擊,因此它旨在在服務器上實現持久性,如下面的圖6和圖7所示。

圖6. 通過計劃任務建立服務器持久性

圖7. 消除舊的/競爭性的攻擊
野外易受攻擊的Openfire服務器
由于全球各地的大型組織都在使用Openfire,我們對其在野外的漏洞暴露程度很好奇。我們查詢了Shodan(IP搜索引擎),結果發現了6419臺Openfire服務在運行的聯網服務器。其中1383臺(21.5%)無法聯系上。剩余的5036臺服務器中984臺(19.5%)容易受到這個漏洞的攻擊。
在下面的圖8中,你可以看到這些服務器的地理位置分布,看起來大多數服務器位于美國、中國和巴西。

圖8. Openfire漏洞實例地圖
7月初,我們設置了一個Openfire蜜罐,它立即成為了攻擊目標。如下圖9所示,每天都有數十次針對Openfire漏洞的攻擊。然而,大多數(91%)歸因于上述的Kinsing活動。

圖9. 7月1日至8月23日Openfire蜜罐攻擊趨勢
我們發現我們的蜜罐受到了兩種不同類型的攻擊。一種是上面廣泛討論的,它部署了web shell,使攻擊者能夠下載Kinsing惡意軟件和加密貨幣挖礦軟件,所有的攻擊似乎都是相互關聯的。第二種攻擊涉及同一個Metasploit漏洞來部署web shell,但我們沒有看到在這次攻擊中使用了任何特定的工具。攻擊者收集了有關系統的信息,但沒有繼續攻擊。
如何保護組織環境?
隨著新發現的漏洞數量不斷增加,估計每年多達數萬個,我們必須提高認識,并更加致力于維護資源。這篇博文強調了漏洞如何影響整個環境,將其置于險境之中。通過利用該漏洞,威脅分子獲得了管理員用戶的身份驗證,從而能夠在Openfire管理控制臺中執行操作,并最終遠程執行惡意命令。為了防范這些類型的攻擊,我們建議遵循以下指導原則:
1. 確保環境是最新的
考慮到漏洞定期暴露,因此對更新和安全警報保持警惕至關重要。如果你發現其中一個實例易受影響,應根據經銷商的指導原則,及時進行更新。我們構建了一個易受攻擊的Openfire應用程序作為蜜罐,在下面的屏幕截圖中,你可以看到我們的驗證過程掃描新創建的容器鏡像,以驗證它是否容易受到上述漏洞的攻擊。
如圖10所示,我們將掃描器設置為嚴重性評分高或嚴重的任何鏡像都被標為失敗。在這種情況下,唯一的漏洞是Openfire CVE-2023-32315,它未符合容器鏡像。

圖10. 檢測到高危漏洞時,Aqua平臺就構建失敗

圖11. Aqua平臺中顯示的漏洞細節
2. 認真配置環境
避免使用默認設置,并確保密碼遵循最佳實踐。定期更新密文和密碼可以進一步提高環境的安全性。
3. 全面掃描環境以查找未知的威脅
威脅分子正在逐步完善其策略,將其活動偽裝成合法的行動,因此發現他們的行動成為一項艱巨的挑戰。因此,運行時檢測和響應解決方案在識別異常和發出惡意活動警報方面大有助益。我們在Aqua平臺上的運行時保護模塊檢測到了Kinsing攻擊,如下面的截圖所示。

圖12. Aqua平臺中的攻擊時間線

圖13. 事件描述——Kinsing惡意軟件進行直接聯系,以下載加密貨幣挖礦軟件

圖14. Aqua平臺中的漂移檢測:文件kdevtmpfsi(門羅加密貨幣挖礦軟)被下載到了容器中
IoC



007bug
安全圈
CNCERT國家工程研究中心
一顆小胡椒
上官雨寶
一顆小胡椒
007bug
007bug
Andrew
虹科網絡安全
安全俠
安全俠