WinRAR和curl根據研究人員的一些監控日誌,攻擊者濫用安裝的WinRAR二進製文件和上傳的curl可執行文件來竊取文件(下圖顯示了執行的命令)。注意,可執行文件log.log是一個合法的curl二進製文件。所有洩露的數據都被收集並發送回攻擊者控制的FTP(文件傳輸協議)服務器。
使用WinRAR和curl洩露數據
在某些示例中,研究人員偶然發現了FTP服務器的帳戶和密碼。在檢查FTP服務器後,研究人員了解到攻擊者主要專注於敏感和機密文件,其中大部分都經過壓縮並使用密碼保護。根據觀察,這些文件是通過對受害者的主機名和磁盤驅動器進行分類來組織的。
有被盜文件的FTP服務器
HackTool.Win32.NUPAKAGE除了眾所周知的合法工具外,攻擊者還製作了高度定制的用於洩露的工具。研究人員將這個惡意軟件命名為“NUPAKAGE”,該名稱源自其唯一的PDB字符串D:\Project\NEW_PACKAGE_FILE\Release \NEW_PACKAGE_FILE.PDB。
NUPAKAGE惡意軟件需要一個唯一的密碼才能執行,被竊取的數據被封裝在自定義文件格式中。攻擊者似乎在不斷更新該工具,以提供更大的靈活性並降低檢測的可能性,包括添加更多的命令行參數和混淆機制。默認情況下,它只收集文件,包括具有以下擴展名的文件:
doc
.docx
.xls
.xlsx
.ppt
.pptx
它避免收集文件名以“$”或“~”開頭的文件,因為這些類型的文件通常要么是系統生成的臨時文件,要么是偽裝成誘餌文件的PE文件。
此工具的用法如下:
NUPAKAGE惡意軟件的參數
每一個NUPAKAGE惡意軟件都需要一個唯一的密碼作為它繼續執行的首個參數。如下圖所示,它首先檢查密碼是否存在。否則,惡意軟件執行過程將終止。在檢測過程中,研究人員觀察到每個惡意軟件中都有不同的密碼。
NUPAKAGE中的密碼檢查例程
NUPAKAGE中的密碼
執行後,NUPAKAGE將釋放xxx.zip和xxx.z兩個文件。 xxx.zip文件是一個日誌文件,其虛假zip標頭以0x0偏移量為前綴,佔用了前0x100個字節。從偏移量0x100開始,在XOR操作中使用單個字節對日誌記錄字符串進行加密,如下圖所示。
原始日誌文件(頂部),解密後的日誌文件(底部)中顯示純文本
以其中一個執行結果為例,保存了被洩露數據的大部分信息,包括原始文件路徑、原始文件大小和壓縮文件大小。研究人員認為攻擊者利用它來進一步追踪哪些文件被處理過。對於安全研究人員來說,這個日誌文件還有助於揭示有多少數據被洩露,並提供有關影響範圍的信息。
擴展名為.z的文件是一個自定義文件格式的洩露數據blob。 NUPAKAGE惡意軟件首先隨機生成一個密鑰blob,密鑰在自定義算法中加密。之後,它將加密的密鑰blob存儲到擴展名為.z的文件的前0x80字節中。從偏移量0x80開始,存在一個包含所有已過濾數據的長數組。
洩露文件中的大部分信息都會被保存,例如MD5哈希、文件名長度、壓縮文件大小、原始文件大小、文件名和文件內容。為了分離文件blob,它在每個blob的末尾放置一個唯一的字節序列,55 55 55 55 AA AA AA AA FF FF FF 99 99 99 99。
NUPAKAGE生成的擴展名為.z的文件中的自定義格式
NUPAKAGE生成的擴展名為.z的文件中的自定義格式描述
值得一提的是,在NUPAKAGE的最新版本中,越來越多的混淆被用來阻止靜態分析。
NUPAKAGE最新版本的垃圾代碼
HackTool.Win32.ZPAKAGEZPAKAGE是另一個用於封裝文件的自定義惡意軟件的示例;它的工作原理也與NUPAKAGE類似。它還需要一個密碼來確保它按預期使用。在下圖所示的示例中,密碼是“start”。
一個ZPAKAGE密碼的示例
ZPAKAGE也支持命令行參數,但它擁有的函數比NUPAKAGE少。該工具的使用方法如下:
ZPAKAGE支持的參數
ZPAKAGE也表現出與NUPAKAGE相似的行為。例如,它還避免使用名稱以“$”或“~”開頭的文件。此外,它還生成兩個文件,一個擴展名為.z,另一個擴展名稱為.zip。擴展名為.z的文件是已過濾的數據blob,擴展名為.zip的文件是日誌文件。
在生成的擴展名為.z的文件中,被洩露的文件將通過zlib算法進行壓縮,以最小化文件大小。它還定義了用於存儲的布爾字段“type”,無論文件是否被壓縮。如果壓縮後的文件大小小於原文件,則類型為1。否則,類型將被設置為0,並將選擇原始文件內容,而不是壓縮文件內容。無論文件內容是否被壓縮,它都將在異或操作中使用特定字符串qwerasdf對其進行加密。
ZPAKAGE生成的擴展名為.z的文件中的自定義格式
ZPAKAGE生成的擴展名為.z的文件中的自定義格式描述
檢測惡意攻擊自2022年10月以來,攻擊者已經更改了TTP,並開始使用受密碼保護的文件。例如,研究人員在VirusTotal上發現了一個TONEINS示例(SHA256: 8b98e8669d1ba49b66c07199638ae6012adf7d5d93c1ca3bf31d6329506da58a),該示例不能鏈接到“關係”選項卡中的任何其他文件。但是,研究人員發現在“行為”選項卡中打開了兩個文件,文件名分別為~$Evidence information.docx和~$List of terrorist personnel at the border.docx,下一階段的有效負載通常嵌入在虛假文件文件中。
打開的TONEINS示例文件
下圖顯示了在VirusTotal上查詢“邊境恐怖分子人員名單”的搜索結果。第一個文件是研究人員在本節前面提到的TONEINS DLL示例,而第二個文件是一個正常的可執行文件,最初名為adobe_licensing_wf_helper.exe,顯然是上傳到VirusTotal的,文件名為List of terrorist personnel at the border.exe。
在VirusTotal上搜索字符串邊境恐怖分子名單的結果
提交adobe_licensing_wf_helper.exe
第三個文件是受密碼保護的文件,它有完全相同的文件名List of terrorist personnel at the border[1].rar。但由於沒有密碼,研究人員無法解壓它。但它在“Relations”選項卡中有一個有趣的父項執行,這是一個名為Letter Head.docx的文件。
terrorist personnel at the border[1].rar的父項執行
在Letter Head.docx文件中,有一個谷歌驅動器鏈接和一個密碼。內容本身與緬甸聯邦共和國政府有關,並用緬甸語書寫。
Letter Head.docx
檢查下載鏈接後,研究人員發現它與之前在VirusTotal上發現的受密碼保護的文件相同。
谷歌驅動器鏈接截圖
新的攻擊載體流與之前介紹的類似,受害者將收到一個包含谷歌驅動器鏈接和相應密碼的誘餌文件,而不是嵌入在電子郵件中的文件下載鏈接,並與之交互。
至於為什麼密碼保護的文件有父項執行,通過在VirusTotal上檢查Letter Head.docx的沙箱執行行為,研究人員發現VirusTotal沙箱會選擇文件中嵌入的任何鏈接。這將導致打開帶有文件下載提示的Internet Explorer窗口。
VirusTotal上Letter Head.docx文件的沙盒截圖
當顯示下載提示時,甚至在用戶選擇“保存”按鈕之前,Internet Explorer將在後台靜默地下載該文件。
結果,該文件將被保存到名為“INetCache”的緩存文件夾中,之後會看到一個被釋放的RAR文件:
C:\Users\user\AppData\Local\Microsoft\Windows\INetCache\IE\R0IAZP7Z\List%20of%20terrorist%20personnel%20at%20the%20border[1].rar.
由於RAR文件是由Internet Explorer自動下載的,因此Letter Head.docx將被視為它的執行父文件。
在VirusTotal上被釋放的Letter Head.docx文件
為了找到嵌入谷歌驅動器鏈接的其他受密碼保護的文件,研究人員嘗試使用以下查詢:
該查詢可以查找任何加密的RAR文件,其文件足夠大,路徑中包含文件夾名稱“INetCache”。幸運的是,研究人員發現了另一個帶有文件執行父級文件“Notic(20221010)(final).docx”的RAR文件,它原來是一個TONESHELL文件。
歸檔文件的關係
文件Notic(20221010)(final).docx的內容
有趣的是,在迄今為止收集的所有示例中,攻擊者使用以相同格式(DD-MM-YYYY)編寫的日期和時間字符串作為提取密碼。
連接點在調查過程中,研究人員觀察到一些數據點與同一個人有關。例如,研究人員在收集的不同惡意軟件樣本中發現了一個特定的名稱“TaoZongjie”。此外,Avast在2022年12月的報告中提到的名為“YanNaingOo0072022”的GitHub存儲庫託管了多個惡意軟件,包括TONESHELL。研究人員還觀察到不同惡意軟件之間的混淆方法有相似之處。
用戶“TaoZongjie”分析研究人員發現一些樣本共享相同的特殊字符串/名稱“TaoZongjie”,包括Cobalt Strike惡意軟件,TONESHELL CC服務器上的Windows用戶,以及TONESHELL彈出對話框中顯示的消息。
調查始於啟用了遠程桌面服務的TONESHELL CC服務器38[.]54[.]33[.]228,研究人員發現其中一個Windows用戶叫“TaoZongjie”。
38[.]54[.]33[.]228中的Windows用戶
在尋找與此次活動相關的樣本時,研究人員看到了一條發佈於2021年4月的關於Cobalt Strike的推文。乍一看,Cobalt Strike的使用方式與此活動類似,包括使用DLL側加載,使用谷歌驅動器鏈接進行傳播,並創建日程任務。
關於Cobalt Strike的推特
感染流程如下:歸檔文件通過Google Drive鏈接傳播,其中包含一個合法的EXE文件、一個惡意的DLL文件和一個用緬甸語編寫的誘餌文件。一旦惡意DLL被側加載,它將釋放嵌入DLL文件的資源部分的合法EXE文件和惡意DLL文件。在這個示例中,字符串By:Taozongjie被用作事件名稱。
Cobalt Strike的攻擊流
示例中的特殊字符串
在一個TONEINS示例(SHA256: 7436f75911561434153d899100916d3888500b1737ca6036e41e0f65a8a68707)中,研究人員還觀察到用於事件名稱的字符串taozongjie。
在TONEINS創建活動taozongjie
在另一個TONESHELL示例(SHA256: d950d7d9402dcf014d6e77d30ddd81f994b70f7b0c6931ff1e705abe122a481a)中,有一些無關緊要的導出函數,它們將通過消息框出現,字符串為Tao或zhang!儘管這兩個字符串的拼寫方式與taozongjie不完全相同,但它們的拼寫仍然相似。
TONESHELL的消息框
根據研究人員在不同樣本中發現的情況,研究人員假設taozongjie可能是攻擊者使用的標誌之一。
GitHub用戶“YanNaingOo0072022”分析在Avast和ESET報告中都提到了GitHub用戶“YanNaingOo0072022”。用戶的存儲庫託管各種惡意軟件,包括最新版本的TONEINS、TONESHELL和一個名為MQsTTang的ESET新工具QMAGENT。在撰寫本文時,這個GitHub空間仍然可以訪問,有五個存儲庫:“View2015,” “View2016,” “1226,” “ee,” 和“14.” 。其中,“View2015” 和“View2016”是空的。
YanNaingOo0072022 GitHub空間
1226此存儲庫中的歸檔文件都相同,但具有不同的文件名。研究人員認為這些文件是針對不同的受害者的。
Recommended Comments