2020年2月發現Winnti Group新的模組化後門PipeMon。其主要目標是韓國和台灣多人線上遊戲和視訊公司,惡意軟體可發動對供應鏈的攻擊。攻擊者可在發行的遊戲中植入木馬,或攻擊遊戲伺服器,利用遊戲貨幣取得經濟利益。 Winnti Group自2012年以來一直保持活躍,該組織針對軟體產業供應鏈攻擊。最近ESET研究人員也發現了其針對香港幾所大學的攻擊。
在目標公司中發現了PipeMon的兩個變體,PipeMon的第一階段包括啟動嵌入在.rsrc中受密碼保護的可執行檔。啟動程式將RARSFX會在自動產生目錄下寫入setup0.exe,透過參數提供密碼,利用CreateProcess執行RARSFX,如下所示:
setup0.exe -p*|T/PMR{|T2^LWJ*
每個樣本的密碼都不相同,然後將RARSFX的內容擷取至%TMP%\RarSFX0:
setup.dll – 安裝dll##Windows# setup.dll – 安裝dllCrLnc.dat – 加密負載
Duser.dll – UAC bypass
osksupport.dll – UAC bypass
osksupport.dll – UAC bypass
PrintDialog.dll – 惡意軟體初始化
PrintDialog.exe – 載入PrintDialog.dll的合法軟體初始化
PrintDialog.exe – 載入PrintDialog.dll的合法檔案
## . exe – 主程式
如果資料夾名稱發生衝突,RarSFX0字串末尾的數字將遞增,直到沒有衝突為止。提取檔案後,setup.exe將不帶參數地執行,使用LoadLibraryA載入setup.dll。載入後,setup.dll將檢查形如‘–x:n’的參數,n不同操作模式也不同。表1中顯示了支援的參數及其對應的行為。
RARSFX在沒有參數的情況下執行setup.exe,檢查它是否以特權運作。如果不是,進一步判斷Windows版本是否低於Windows 7 build 7601,若符合條件則會利用token impersonation取得權限。否則它將嘗試使用不同的UAC bypass技術,可將有效載荷載入安裝到以下其中一項:
C:\Windows\System32\spool\prtprocs\x64\DEment.dll
C:\Windows\System32\spool\prtprocs\x64\EntAppsvc.dll
#HKLM\SYSTEM\CurrentControlSet Driver = “EntAppsvc.dll” 請注意PrintFiiterPipelineSvc中的拼字錯誤(由於可以使用任何名稱,因此對列印處理器的安裝沒有影響)。HKLM\SYSTEM\ControlSet001\ Control\Print\Environments\Windows x64\Print Processors\PrintFiiterPipelineSvc\Driver = “DEment.dll”
#HKLM\SYSTEM\CurrentControlSetorsControl\Print\Environments\
註冊列印處理器後,PipeMon重新啟動列印後台處理服務(spoolsv.exe),將載入惡意列印進程。 Print Spooler服務會在每次PC啟動時啟動,從而確保了惡意程式的持久性。根據安裝程式的不同,會將CrLnc.dat寫入登錄中的下列位置:
HKLM\SOFTWARE\Microsoft\Print\Components\DC20FD7E-4B1B-4B88-8172-61F0BED7D9E8
#################### ####HKLM\SOFTWARE\Microsoft\Print\Components\A66F35-4164-45FF-9CB4-69ACAA10E52D#########整個PipeMon執行過程如下圖所示: ######### ###PipeMon#########PipeMon是一個模組化後門,每個模組都是一個DLL,可導出IntelLoader函數,使用反射載入技術來載入。每個模組具有不同的功能,如表2所示。 ###############負責載入主要模組(ManagerMain和GuardClient)的載入程式是Win32CmdDll.dll,位於列印處理器目錄中。這些模組以加密的方式儲存在相同位置,命名如下:######### banner.bmp###### certificate.cert####### License.hwp###### # JSONDIU7c9djE###### D8JNCKS0DJE###### B0SDFUWEkNCj.logN#########.hwp是韓文文字處理程式所使用的副檔名,在韓國非常流行。模組經過R**加密,解密金鑰‘Com! 123Qasdz’會硬編碼在每個模組之中。 Win32CmDll.dll解密並注入ManagerMain和GuardClient模組。 ManagerMain模組負責解密和注入Communication模組,而GuardClient模組將確保Communication模組正在運行,並在必要時重新載入。下圖概述了PipeMon的工作方式。 ###
Win32CmDll.dll首先嘗試將ManagerMain和GuardClient模組注入以下名稱之一的進程中:lsass.exe,wininit.exe或lsm.exe。如果失敗,它將嘗試注入已註冊的Windows服務進程之一,但不包含名為spoolsv.exe,ekrn.exe(ESET),avp.exe(Kaspersky)或dllhost.exe的進程。如果所有操作都失敗,它將嘗試進程taskhost.exe,taskhostw.exe或explorer.exe。
可以使用專用指令按需載入其他模組,但尚未發現其中的任何模組。模組間透過命名管道通信,每個模組之間通信通道使用兩個命名管道,一個用於發送,一個用於接收。
從C&C伺服器收到%CNC_DEFINED%字串,變數%B64_TIMESTAMP%是base64編碼的時間戳:
#通訊模組負責透過管道管理C&C伺服器與其他模組之間的通訊,其C&C位址硬編碼在ManagerMain模組中。通訊協定是基於TCP的TLS,透過HP-Socket庫處理。所有訊息均使用硬編碼密鑰進行R**加密。如果傳輸內容大於或等於4KB,則先使用zlib對其進行壓縮。
啟動與C&C伺服器的通信,首先發送信標訊息,其中包含以下資訊:
OS version
physical addresses of connected network adapters concatenated with �4_TIMESTAMP%
## victim's local IP address backdoor version/campaign ID; we've observed the following values# ## 「1.1.1.4Bata」
「1.1.1.5」
Victim computer name
# 支援
##攻擊者也使用了PipeMon的更新版本,R**替換為簡單的XOR,以0x75E8EEAF作為密鑰,刪除了所有硬編碼的字串,使用隨機值命名模組間通訊管道。只有主載入程式以檔案儲存在磁碟上,更新的模組如下表說明:
#後門配置被加密並嵌入到載入程式DLL中。
PipeMon模組和安裝程式都使用相同的簽名,該憑證可能是Winnti組織在上一次攻擊中盜取的。
以上是如何實現Winnti Group新變體分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!