解析惡意軟體Fractureiser

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使用的程式碼,並傳入可作為感染路徑追蹤方式的參數。

圖片來源:BleepingComputer
  • 階段1

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

圖片來源: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的實作。

該程式會進行以下行為:

  • 進行完整掃描(包括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

  要確認主機是否感染首先需要檢查主機內是否存在階段0的惡意程式檔案。目前在網路上已經有以下幾個自動化掃描器可以使用:

  如果階段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

https://hackmd.io/@AiNoAino/Hke9ohaLn

https://www.bleepingcomputer.com/news/security/new-fractureiser-malware-used-curseforge-minecraft-mods-to-infect-windows-linux/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。