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