新型在野遠(yuǎn)控木馬Woody RAT,針對俄羅斯航空航天組織
Malwarebytes 威脅情報團(tuán)隊發(fā)現(xiàn)了一種新的遠(yuǎn)控木馬,命名為 Woody RAT,研究人員發(fā)現(xiàn)其在野已經(jīng)存在至少一年。
攻擊者最近利用 Follina 漏洞來針對俄羅斯的實體發(fā)起攻擊,根據(jù)注冊的虛假域名推測,攻擊目標(biāo)應(yīng)該為名為 OAK 的俄羅斯航空航天與國防組織。
分發(fā)方式
Woody RAT 使用兩種方式進(jìn)行分發(fā):壓縮文件與利用 Follina 漏洞的 Office 文檔文件。
早期的樣本在 ZIP 文件中,偽裝成俄羅斯特組織的文件。當(dāng) Follina 漏洞出現(xiàn)時,攻擊者也利用其進(jìn)行分發(fā)惡意軟件。整體攻擊流程如下所示:
攻擊流程
壓縮文件
Woody RAT 被打包在壓縮文件中發(fā)給受害者,這些壓縮文件是通過魚叉郵件進(jìn)行傳播的。一些壓縮文件如下所示:
anketa_brozhik.doc.zip:其中包含同名的 Woody RAT 文件:Anketa_Brozhik.doc.exe
zayavka.zip:其中包含 Woody RAT 偽裝的程序:selection.doc.exe
Follina 漏洞
惡意文檔(Памятка.docx)使用 Follina 漏洞(CVE-2022-30190)來傳播 Woddy RAT,誘餌文檔名意為“信息安全備忘錄”,其中列舉了關(guān)于密碼和機(jī)密信息有關(guān)的安全措施。
誘餌文檔
Woody RAT
攻擊者在樣本中留下了 PDB 路徑的調(diào)試信息:
調(diào)試信息
許多 CRT 函數(shù)都是靜態(tài)鏈接的,這使 IDA 產(chǎn)生了大量的分析噪音。在初始化前,惡意軟件通過以 0x8007 作為參數(shù)調(diào)用 SetErrorMode 來有效地屏蔽所有錯誤報告。
主函數(shù)
Cookie
Woody RAT 使用 HTTP 與 C&C 服務(wù)器進(jìn)行通信。為了標(biāo)識每臺失陷主機(jī),惡意軟件會根據(jù)主機(jī)信息生成 Cookie 值。主機(jī)信息包括網(wǎng)卡信息、計算機(jī)名稱、卷信息,并且追加八字節(jié)的隨機(jī)字符,盡量使 Cookie 能夠成為唯一值。
使用 GetAdaptersInfo、GetComputerNameA 和 GetVolumeInformationW 獲取信息后,生成的 Cookie 會隨著每個 HTTP 請求一起發(fā)送。
get_cookie_data 函數(shù)
數(shù)據(jù)加密
惡意軟件使用 RSA-4096 和 AES-CBC 來加密發(fā)送到 C&C 服務(wù)器的數(shù)據(jù),其中 RSA-4096 的公鑰硬編碼在二進(jìn)制文件中,惡意軟件在運行時利用 BCryptImportKeyPair 函數(shù)導(dǎo)入。
惡意軟件在運行時通過生成 32 字節(jié)隨機(jī)值獲取 AES-CBC 的密鑰,使用 RSA-4096 算法對這 32 字節(jié)加密回傳 C&C 服務(wù)器。惡意軟件和 C&C 服務(wù)器同時使用這些字節(jié)利用 BCryptGenerateSymmetricKey 生成 AES-CBC 的密鑰,該密鑰在隨后的 HTTP 請求中用于加密和解密數(shù)據(jù)。
RSA 加密
AES 加密
C&C 請求
惡意軟件向 C&C 服務(wù)器發(fā)出的第一個 HTTP 請求是 knock,為帶有 Cookie 的 POST 請求。請求中包含 32 字節(jié)隨機(jī)值,用于生成 AES-CBC 密鑰,而這 32 個字節(jié)是經(jīng)過 RSA-4096 加密的。
請求頭
返回的響應(yīng)在解密后,包含此后該主機(jī)與 C&C 服務(wù)器通信的 URL 路徑。
隨后,惡意軟件發(fā)起 submit請求,將失陷主機(jī)相關(guān)環(huán)境信息回傳,數(shù)據(jù)經(jīng)過 AES-CBC 加密。環(huán)境信息如下所示:
操作系統(tǒng)
架構(gòu)
已安裝的反病毒軟件
計算機(jī)名稱
操作系統(tǒng)構(gòu)建版本
.NET 信息
PowerShell 信息
Python 信息(安裝路徑、版本等)
存儲驅(qū)動器信息
環(huán)境變量
網(wǎng)絡(luò)接口
管理員權(quán)限
正在運行的進(jìn)程列表
代理信息
用戶名
所有用戶帳戶的列表
目前惡意軟件通過注冊表項檢測六個反病毒軟件,分別為:Avast Software、Doctor Web、Kaspersky、AVG、ESET 和 Sophos。
最后,惡意軟件會定期向 C&C 服務(wù)器發(fā)出 ping請求。如果響應(yīng) _CRY就繼續(xù)保持輪詢,如果響應(yīng) _ACK就會包含繼續(xù)執(zhí)行的命令。
C&C 命令
惡意軟件使用一個特定線程與 C&C 服務(wù)器通信,并使用另一個線程來執(zhí)行從 C&C 服務(wù)器接收到的命令。為了保持線程同步,惡意軟件利用事件和互斥鎖。必須強(qiáng)調(diào)的是,所有通信都是經(jīng)過 AES 加密的。
命令執(zhí)行
_SET 命令
PING:此命令用于設(shè)置對 C&C 服務(wù)器的 ping 請求之間的睡眠周期
PURG:未知命令
EXIT:退出命令執(zhí)行線程
_REQ 命令
EXEC:創(chuàng)建兩個命名管道并將輸入和輸出重定向到這些管道,使用 ReadFile 從命名管道讀取命令的輸出,然后將_DAT附加到此數(shù)據(jù),再進(jìn)行 AES 加密并發(fā)送到 C&C 服務(wù)器
EXEC 命令
UPLD:下載文件到失陷主機(jī)
INFO:重新將 submit 的信息發(fā)回 C&C 服務(wù)器
INFO 命令
UPEX:在失陷主機(jī)下載文件并執(zhí)行(UPLD + EXEC)
DNLD:將失陷主機(jī)的文件上傳回 C&C 服務(wù)器
PROC:直接執(zhí)行命令,不調(diào)用 cmd.exe
UPPR:在失陷主機(jī)下載文件并執(zhí)行(UPLD + PROC)
SDEL:刪除失陷主機(jī)的文件
_DIR:列出指定目錄的所有文件與屬性(文件名、類型、所有者、創(chuàng)建時間、上次訪問時間、上次寫入時間、大小、權(quán)限)
STCK:一次執(zhí)行多個命令,按照接收順序執(zhí)行
SCRN:屏幕截圖后使用 AES-CBC 對圖像進(jìn)行加密并發(fā)送到 C&C 服務(wù)器
INJC:下發(fā)要注入的代碼并注入指定目標(biāo)進(jìn)程,使用 WriteProcessMemory 將代碼寫入遠(yuǎn)程內(nèi)存,然后使用 CreateRemoteThread 創(chuàng)建遠(yuǎn)程線程
INJC 命令
PSLS:使用 SystemProcessInformation 調(diào)用NtQuerySystemInformation 以檢索所有正在運行的進(jìn)程,將相關(guān)信息(PID、父進(jìn)程 PID、進(jìn)程名稱、所有者)發(fā)回 C&C 服務(wù)器
DMON:使用 CreateProcess 創(chuàng)建進(jìn)程不回傳輸出
UPDM:上傳文件并執(zhí)行(DMON 方式)
SharpExecutor 和 PowerSession 命令
惡意軟件還內(nèi)嵌了兩個 .NET 實現(xiàn)的 DLL 文件,分別為 WoodySharpExecutor 和 WoodyPowerSession。WoodySharpExecutor 支持惡意軟件運行從 C&C 服務(wù)器接收的 .NET 代碼, WoodyPowerSession 支持惡意軟件執(zhí)行從 C&C 服務(wù)器接收的 PowerShell 命令和腳本。WoodyPowerSession 使用管道來執(zhí)行這些 PS 命令:
SharpExecutor 和 PowerSession 命令
DLL 支持的命令有:
DN_B:使用 RunBinaryStdout 方法執(zhí)行匯編代碼
DN_D:接收由代碼、類名、方法名和參數(shù)組成的 base64 字符串?dāng)?shù)組,為攻擊者提供對執(zhí)行更精細(xì)的控制,如不將輸出回傳
PSSC:接收 base64 編碼的 PowerShell 命令并執(zhí)行
PSSS:接收 base64 編碼的 PowerShell 腳本并執(zhí)行
PSSM:接收 base64 編碼的字符串?dāng)?shù)組,解碼后導(dǎo)入命令管道并調(diào)用
惡意軟件清理
創(chuàng)建命令線程后,惡意軟件就會使用 ProcessHollowing 技術(shù)從磁盤中刪除自身。首先創(chuàng)建一個掛起的記事本進(jìn)程,然后使用 NtWriteVirtualMemory 將 Shellcode 寫入掛起的進(jìn)程。再使用 NtSetContextThread 重置線程入口點并恢復(fù)線程。
自行刪除
未知攻擊者
研究人員未能對該惡意軟件進(jìn)行歸因,暫時沒有任何可靠的證據(jù)能指向特定的攻擊者開發(fā)了 Woody RAT。
IOC
982ec24b5599373b65d7fec3b7b66e6afff4872847791cf3c5688f47bfcb8bf0
66378c18e9da070629a2dbbf39e5277e539e043b2b912cc3fed0209c48215d0b
b65bc098b475996eaabbb02bb5fee19a18c6ff2eee0062353aff696356e73b7a
43b15071268f757027cf27dd94675fdd8e771cdcd77df6d2530cb8e218acc2ce
408f314b0a76a0d41c99db0cb957d10ea8367700c757b0160ea925d6d7b5dd8e
0588c52582aad248cf0c43aa44a33980e3485f0621dba30445d8da45bba4f834
5c5020ee0f7a5b78a6da74a3f58710cba62f727959f8ece795b0f47828e33e80
3ba32825177d7c2aac957ff1fc5e78b64279aeb748790bc90634e792541de8d3
9bc071fb6a1d9e72c50aec88b4317c3eb7c0f5ff5906b00aa00d9e720cbc828d
ffa22c40ac69750b229654c54919a480b33bc41f68c128f5e3b5967d442728fb
kurmakata.duckdns[.]org
microsoft-ru-data[.]ru
194.36.189.179
microsoft-telemetry[.]ru
oakrussia[.]ru
garmandesar.duckdns[.]org:444/uoqiuwef.html
fcloud.nciinform[.]ru/main.css