事件概述:
近期毒霸安全團隊再次檢測到“銀狐”變種大范圍傳播,主要途徑來自于搜索引擎的廣告頁投放,頁面仿冒其他公司的推廣下載站,另一方面通過感染后的用戶微信群發病毒文件,實現裂變傳播。其中一個仿冒投放頁如下。

經過深入分析,這是“銀狐”家族的又一個新變種,與之前披露的攻擊手法不同,本次感染鏈在復雜和對抗度上進一步提升,加入UAC繞過,線程池注入結束安全軟件進程,并利用python駐留系統,BoxedAppSDK加載加密壓縮的惡意dll等。最終執行winos遠控木馬,操控用戶電腦。winos是基于Gh0st的遠控變種在黑產圈大量傳播使用。整個攻擊流程如下。

詳細分析:
母體樣本大部分命名為:“安裝包_Setup.exe,軟件包安裝程序.exe,安裝包5.2.3-doc-uninsta.exe等”。
母體樣本為增強免殺能力,使用了多個開源庫:ZeroMQ,Curl,Openssl等,其中執行邏輯使用ZeroMQ異步消息庫框架封裝了起來,通過注冊事件回調異步執行,使得惡意代碼隱藏在了龐大的庫代碼之中。
如上圖所述的執行流程,共注冊了4個有效的異步回調功能,“A”功能用于隱藏控制臺窗口?!癈HK”用于檢測沙箱和虛擬機,通過枚舉系統ACPI固件表識別。檢測通過后執行“DLS”和“EC”,這兩個步驟組合執行,先通過“DLS”下載payload解密后再傳入“EC”執行shellcode。

第一個階段Payload有兩個,其中帶gif格式的利用了語雀云文檔存儲。另一個利用了aliyun存儲。解密方式為AES256 CFB模式,前16字節為IV,后32字節為KEY,如果有gif頭的需要移除gif頭部。
Payload1解出后是一段經過兩次自解密處理的shellcode,該shellcode主要功能是內存加載內嵌的pe模塊PoolParty,此模塊利用了blackhat2023大會上公布的線程池隱蔽注入技術(詳見文末參考),注入系統關鍵進程“lsass.exe”,并在lsass.exe進程中結束安全軟件進程,相關進程名單有136個,涵蓋了國內外多個安全軟件。

Payload2內部名稱“Stage2Code.dll”,加載后首先patch ETW,再檢測是否管理員權限,如果沒有則下載BypassUAC模塊重新啟動自身。BypassUAC方式來自開源項目UACME。有管理員權限則繼續下載后續4個payload文件。各功能名稱對應關系如下:

Adobe.zip中打包了python運行環境,解壓釋放到用戶如下目錄:“C:\Program Files (x86)\Common Files\隨機名\1\”或“C:\Users\username\AppData\Local\Programs\Python\”其中“officehelper.py” 和 “scriptforge.py”是編譯成python字節碼的pyc腳本。
SchTask.x64.dll模塊通過直接RPC調用注冊pythoncopy.exe到計劃任務,命令行為“officehelper.py”。后續任務由計劃任務執行。
“officehelper.py”與“scriptforge.py”會互相啟動形成守護, officehelper利用BoxeAppSdk的虛擬文件系統加載加密壓縮的hello.dll(密碼“nsvbdfrga”)并執行導出函數startRun。BoxeAppSdk原理是hook系統Api實現的虛擬文件系統,使得在LoadDll時無須觸摸磁盤文件。這樣避開了要加載的文件被安全軟件掃描。
“hello.dll”是最終加載器,負責解密加載前面下載的“s.dat”和“a.dat”?!皊.dat”解密后的shellcode執行后會從c2拉取最終遠控“上線模塊.dll”,shellcode尾部存儲的是winos遠控配置,使用雙上線配置模式,上線分組"666888",C2:8.218.198.10:7001和8.218.198.10:7002?!癮.dat”解開后與前面的PoolParty工具一致,用于結束安全軟件進程。
IOC:
1e9ccf31bb24a3514171c3dcb19078ef
31eedd8d089ede700293719349f05d19
2b740ac0d2410d5f0bab45a3b3abbaf8
8870064f7582692e18fab0f400a1712a
78d8676c7142848aadfbd83a79284408
7b5798ffeb106b976f5afbd2c9fd774c

