惡意軟體手法解析!新型Fractureiser透過入侵Minecraft開發者帳號,在CurseForge等平台散佈惡意程式。本文深度剖析其四階段運作、自動化掃描器檢測與感染指標,協助玩家及開發人員阻擋潛在資安風險。


今年六月初,一個被命名為Fractureiser的惡意軟體因為占用電腦資源,以及部分Minecraft遊戲模組與套件的未授權更新中夾帶了可疑檔案而被發現。


駭客起初在Minecraft模組套件平台CurseForge及Bukkit上建立了幾個用於散佈惡意程式的帳號,同時也入侵了數個開發者帳號,並且用這些帳號上傳了包含Fractureiser的模組或模組包的更新。該惡意軟體的名稱便是以最一開始上傳此惡意程式的CurseForge帳號之一的使用者名稱命名。


經過挑選組合而成的模組包結合了各種吸引人的模組與套件,方便玩家在遊玩時切換遊戲的主題內容。這樣的遊戲性與便利性使得CurseForge及Bukkit上的模組包吸引大量玩家下載使用,也因此成為Fractureiser快速傳播的工具。


Fractureiser的傳播最早可以追溯到2023四月中旬,最早被發現的樣本(MD5:e69b50d1d58056fc770c88c514af9a82)疑似為駭客於開發階段測試用的程式,只具有最基礎的功能。該惡意程式主要鎖定Windows及Linux使用者,儘管部分程式碼無法在Linux或MacOS的環境下執行,但是該程式仍能運作並且仍有任意程式碼執行的功能。


一、Fractureiser的運作主要包含四個階段

(一)階段0

包含混淆過的惡意程式碼的受感染模組,被啟動後會連至http://85.217.144.130:8080/dl,取得階段1使用的程式碼,並傳入可作為感染路徑追蹤方式的參數。


Fractureiser

圖片來源:BleepingComputer


(二)階段1

此階段的dl.jar(SHA-1:dc43c4685c3f47808ac207d1667cc1eb915b2d82)能避免程式重複執行,會訪問C&C取得階段2使用的檔案,並試圖透過修改註冊表等方式將自身加入自啟動目錄,以達到持久化的目的。


Fractureiser

圖片來源:BleepingComputer


(三)階段2

此階段的lib.jar或libWebGL64.jar為使用demo版的Allatori混淆過的程式,會透過https://file-8ie.pages.dev:8083/ip 取得最新的C&C、下載階段3的程式,並檢查是否需要更新。


(四)階段3

client.jar是經過混淆的複雜程式碼,包含java程式以及可以透過jni調用函數的原生碼hook.dll。hook.dll從java程式碼中調用兩個功能:取得Microsoft Live憑證的retrieveMSACredentials,以及被用於anti-sandbox技術、存取剪貼簿資訊的retrieveClipboardFiles。


此階段檔案中利用retrieveClipboardFiles監視剪貼簿的內容,並用汙染剪貼簿的方式嘗試感染主機。


這是針對模組或套件開發人員在測試模組時使用的Windows Sandbox的證據,因為Windows Sandbox是唯一允許虛擬機在運行時更改主機剪貼簿的虛擬化環境。


駭客洩漏的未混淆階段3檔案,此段為嘗試脫離Windows Sandbox的實作

駭客洩漏的未混淆階段3檔案,此段為嘗試脫離Windows Sandbox的實作


二、該程式會進行以下行為

(一)進行完整掃描(包括Gradle和Maven的暫存區,但略過垃圾桶、java home path和client.jar本身),試圖感染所有.jar檔使其進入階段0狀態

(二)透過刪除META-INF/CERTIFIC.RSA、META-INF/CERTIFIC.EC、META-INF/CERT.SF和META-INF/CERTIFIC.SF來停用程式碼簽章

三)竊取瀏覽器及網頁中的cookie與憑證

(四)竊取Discord登入token及資訊,包含付款資訊與綁定的手機號碼等

(五)從各種啟動器及Windows Credential Manager中竊取MSA token

(六)存取剪貼簿,修改其中的加密貨幣錢包資訊

(七)竊取加密貨幣錢包

  

三、感染指標

(一)Unix

~/.config/.data/lib.jar

/etc/system/system/systemd-utility.service

~/.config/systemd/user/systemd-utility.service


(二)Windows

%LocalAppData%\Microsoft Edge

\.ref

\.client.jar

\.lib.dll

\.libWebGL64.jar

\.run.bat

%Temp%\installer.jar

%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\run.bat

registry:HKCU\Software\Microsoft\Windows\CurrentVersion\Run\t


檢查程式碼來源:prismlauncher.org

檢查程式碼來源:prismlauncher.org


要確認主機是否感染首先需要檢查主機內是否存在階段0的惡意程式檔案。


四、可使用的自動化掃描器:

(一)Overwolf jar-infection-scanner(https://github.com/overwolf/jar-infection-scanner/releases)

(二)Douira的線上掃描器(https://douira.github.io/fractureiser-web-detector/)

(三)Cortex的nekodetector(https://github.com/MCRcortex/nekodetector/releases)


如果階段0與階段1的程式曾經被啟動過且主機中包含階段2的檔案,代表主機基本上可以確定被感染了。除了可以透過感染指標進行確認之外,許多防毒也已經可以檢測到階段2檔案,可以透過磁碟掃描對惡意程式進行移除。linux系統除了感染指標上的路徑之外,也需要透過journalctl –exb與journalctl –exb --user的指令檢查是否有其他被修改的記錄。


五、針對階段2檔案的powershell或bash程式碼可以使用

(一)PrismLauncher automated script(https://prismlauncher.org/news/cf-compromised-alert/#automated-script)

(二)Overwolf detection-tool(https://github.com/overwolf/detection-tool)


如果確認主機中有階段2檔案存在,有極大可能性階段3的程式碼已經啟動過。建議備份重要檔案、更改所有已登入的服務的密碼並設定二次驗證、對主機進行掃描並移除所有相關的惡意程式,同時也建議安裝或更新防毒軟體以避免受該惡意程式的影響。

有任何資安問題,歡迎隨時與NEITHNET團隊聯繫!