一個過去只用於初次駭入網路的 Gootloader 惡意程式,現在進化到能使用進階 ZIP 檔技術,能串接多達 1000 個壓縮檔來防止壓縮檔解析工具的偵查,使眾多偵測工具崩潰或失效。
Gootloader 是惡意程式載入器,出現於 2020 年,許多網路犯罪活動包括勒索軟體都曾經使用過它。去年 11 月它在沈寂一段時間後又再度現身。
雖然變形 ZIP 檔手法很早就存在,但少有進步,而且早期在擷取資料時存在檔名不一致的現象。 Expel 研究人員最近發現,為了強化反偵查能力,Gootloader 操作者近日加入更進階的混淆機制。包括:
-
串接上千個 ZIP 檔: 它利用解析器從檔案末端讀取的特性,串接大量 ZIP 檔。目前僅有 Windows 內建的 ZIP 解壓縮工具能有效處理,但大部分分析工具(例如 7-Zip 、 WinRAR 及眾多數位鑑識/沙箱工具)可能會崩潰或無法正確解析檔案結構,讓防禦端難以在網路傳輸或取樣階段分析其內容。
-
使用截斷的中央目錄結尾 (End of Central Directory, EOCD): 該區段缺少兩個必要位元組,導致大部份解析工具失效。
-
隨機化磁碟碼欄位: 透過修改 Metadata 誤導偵測工具,使其預期會有不存在的多磁碟壓縮檔,進而干擾解析流程。
-
Metadata 不一致: 在本機檔頭 (Local File Header) 和中央目錄 (Central Directory) 之間增加 Metadata 的不一致性。
-
獨特樣本生成: 為每個下載檔案產生獨特的 ZIP 和 JScript 樣本,以規避靜態檢測。
-
XOR 編碼與填充: 將 ZIP 生成 XOR 編碼,並重複附加到用戶端直到達到預期的大小,藉此迴避網路層偵測。
在主機端執行時,Gootloader 的 Jscript 會從暫時目錄中啟動 Windows Script Host (WScript),在啟動資料夾加入指向第二個 Jscript 檔的捷徑,以建立永久存取。
一旦啟動後 payload 就會執行,每次系統重開機,都會觸發 NTFS shortname 的 CScript,接著是透過 PowerShell 等進一步載入第二階段酬載 (Payload) 。
雖然 Gootloader 也加入多個毁損技巧希望能不毁損檔案下規避偵測,但研究人員仍然根據結構異常處而發現這個程式。 Expel 團隊也公佈了能辨識已存在 ZIP 檔的 YARA 規則,靠的是 ZIP 標頭功能、數百個重覆本地檔頭及 EOCD 紀錄的特定組合。
研究人員建議企業變更啟用 Jscript 檔的預設應用,由 Windows Script Host 改為 Notepad 以避免其執行。為降低風險。 Expel 建議,若非必要使用 Jscript,封鎖下載執行 wscript.exe 和 cscript.exe 。
