NEITHNET 情資分享
NEITHNET 資安實驗室
今年六月初,一個被命名為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使用的程式碼,並傳入可作為感染路徑追蹤方式的參數。
- 階段1
此階段的dl.jar(SHA-1:dc43c4685c3f47808ac207d1667cc1eb915b2d82)能避免程式重複執行,會訪問C&C取得階段2使用的檔案,並試圖透過修改註冊表等方式將自身加入自啟動目錄,以達到持久化的目的。
- 階段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是唯一允許虛擬機在運行時更改主機剪貼簿的虛擬化環境。
該程式會進行以下行為:
- 進行完整掃描(包括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
- %LocalAppData%\Microsoft Edge
要確認主機是否感染首先需要檢查主機內是否存在階段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資安專家聯繫:info@neithnet.com。
參考資料:
https://github.com/fractureiser-investigation/fractureiser