針對(duì)軍工和教育行業(yè)的CNC組織“擺渡”木馬分析

1??????? 概述
近期,安天應(yīng)急響應(yīng)中心(安天CERT)在梳理攻擊活動(dòng)時(shí)發(fā)現(xiàn)CNC組織使用的兩個(gè)下載器,其中一個(gè)下載器具有擺渡攻擊的能力,利用移動(dòng)存儲(chǔ)設(shè)備作為“渡船”,間接從隔離網(wǎng)中竊取攻擊者感興趣的文件;另一個(gè)下載器使用欺騙性的具有不可信數(shù)字證書的C2節(jié)點(diǎn)進(jìn)行通信。
CNC組織目前已知最早于2019年被發(fā)現(xiàn),當(dāng)時(shí)由于其使用的遠(yuǎn)控木馬的PDB路徑信息中包含了cnc_client,因此該組織被命名為CNC。該組織主要針對(duì)軍工和教育行業(yè)進(jìn)行攻擊。
2??????? 樣本分析
2.1??????? PrivateImage.png.exe(下載器1)
2.1.1???????? ?樣本概述
PrivateImage.png.exe會(huì)根據(jù)該文件是否在%localappdata%路徑下選擇兩種方式執(zhí)行。
1.?如果在%localappdata%路徑下,不斷檢測(cè)是否有新設(shè)備接入;若有,則將文件本身復(fù)制到新設(shè)備中,以便通過可移動(dòng)設(shè)備傳播。
2.?如果不在%localappdata%路徑下,首先判斷%localappdata%\ImageEditor.exe是否存在:
1)?????? 如果存在,跳過后續(xù)操作退出。
2)?????? 如果不存在,判斷互聯(lián)網(wǎng)連接狀態(tài):
a)?????? 如果可連網(wǎng),下載后續(xù)下載器。
b)?????? 如果不可連網(wǎng),從Recent文件夾下的快捷方式中獲取.docx或.pptx后綴的文件,復(fù)制文件到當(dāng)前目錄下新建的以用戶名命名的隱藏文件夾中,并以符號(hào)替換后的文件路徑命名。
2.1.2???????? ?詳細(xì)分析
表 2?1 PrivateImage.png.exe

樣本運(yùn)行后,首先會(huì)獲取當(dāng)前用戶名,用在后續(xù)路徑拼接的操作中。

獲取當(dāng)前文件的路徑,并判斷是否在%localappdata%目錄下。

如果在%localappdata%目錄下,則會(huì)獲取系統(tǒng)中的所有驅(qū)動(dòng)器字符串。

通過判斷前一次的驅(qū)動(dòng)器字符串與本次獲取到的驅(qū)動(dòng)器字符串是否相同,來(lái)確定是否有新設(shè)備接入。

如果存在新設(shè)備,獲取新設(shè)備的名稱,若新設(shè)備中不存在當(dāng)前文件,則將當(dāng)前文件復(fù)制到新設(shè)備。然后將指示單詞“-firstcry”拼接到主機(jī)名后,用于同攻擊者控制的設(shè)備通信。若新設(shè)備中已存在當(dāng)前文件,則將指示單詞“-alleat”拼接到主機(jī)名后。

樣本與攻擊者控制的設(shè)備通信。

如果不在%localappdata%目錄下,加載樣本資源中的圖片并將其釋放到同目錄下打開。

資源節(jié)中包含的圖片。

首先進(jìn)行字符串拼接。

然后判斷%localappdata%\ImageEditor.exe是否存在,如果存在跳過后續(xù)操作,結(jié)束進(jìn)程。

測(cè)試與www[.]baidu.com的通信,判斷當(dāng)前環(huán)境下互聯(lián)網(wǎng)連接狀況。

如果互聯(lián)網(wǎng)不可用,拼接字符串,在樣本所在目錄創(chuàng)建以當(dāng)前用戶名命名的隱藏文件夾。

從Recent文件夾下的快捷方式中獲取.docx或.pptx后綴的文件,查找最近打開的.docx和.pptx后綴的文件。

若找到,則將其復(fù)制到創(chuàng)建的隱藏文件夾中,文件采用將文件完整路徑中的“\”、“:”修改為“_”的方式命名。

測(cè)試機(jī)中收集的文件及其命名方式如下。

如果互聯(lián)網(wǎng)可用,判斷C:\ProgramData\USOshared文件夾是否存在,若不存在創(chuàng)建該文件夾。

隨后將會(huì)從185.25.51.41/control/utility/YodaoCloudMgr處下載惡意的后續(xù)的下載器,并將其復(fù)制到USOshared文件夾中,隨后將會(huì)刪除%temp%中下載的文件。

如果成功下載到文件,將其保存到%temp%下的YodaoCloudMgr中。

將YodaoCloudMgr從%temp%復(fù)制到C:\ProgramData\USOshared\YodaoCloudMgr.exe后刪除%temp%下的YodaoCloudMgr文件。

創(chuàng)建任務(wù)計(jì)劃,將C:\ProgramData\USOshared\YodaoCloudMgr.exe添加到任務(wù)計(jì)劃程序庫(kù)中,每隔2分鐘執(zhí)行一次。并根據(jù)下載和創(chuàng)建任務(wù)計(jì)劃的結(jié)果構(gòu)建回傳信息:23Fi45XX代表下載成功,23Fi45NNXX代表下載失?。?5tDdd43543代表任務(wù)計(jì)劃創(chuàng)建成功,45tDnn43543代表任務(wù)計(jì)劃創(chuàng)建失敗。

測(cè)試機(jī)中創(chuàng)建的任務(wù)計(jì)劃如下。

獲取當(dāng)前環(huán)境下的進(jìn)程列表。

將獲取到的進(jìn)程列表同先前構(gòu)造的回傳信息進(jìn)行拼接,并采用base64編碼方法處理拼接后的內(nèi)容。

使用URLDownloadToFileW與控制端通信,回傳收集的信息。如果任務(wù)計(jì)劃創(chuàng)建失敗,則通過CreateProcessA執(zhí)行C:\ProgramData\USOshared\YodaoCloudMgr.exe。根據(jù)靜態(tài)分析推測(cè),如果YodaoCloudMgr.exe啟動(dòng)失敗,刪除文件后會(huì)從github存儲(chǔ)庫(kù)中獲取內(nèi)容執(zhí)行。

2.2??????? YodaoCloudMgr.exe(下載器2)
2.2.1???????? ?樣本概述
YodaoCloudMgr.exe由PrivateImage.png.exe下載并執(zhí)行,主要用于下載后續(xù)載荷。分析時(shí)發(fā)現(xiàn)文件內(nèi)部存在文件搜尋、啟動(dòng)進(jìn)程等相關(guān)代碼,同時(shí)發(fā)現(xiàn)樣本在通信時(shí)使用的不可信證書。

2.2.2?? ? ? ???詳細(xì)分析
表 2?2 YodaoCloudMgr.exe文件

樣本中存在待解密的字符串。

字符串通過對(duì)稱加密XXTEA算法進(jìn)行解密操作。

通過stat函數(shù)獲取文件信息,判斷RNGdTMP899是否存在。

如果不存在該文件,則生成15字節(jié)的隨機(jī)字符串,隨機(jī)字符串用于URL拼接。字節(jié)的取值在“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”中。

若當(dāng)前環(huán)境下不存在RNGdTMP899文件,創(chuàng)建RNGdTMP899文件。

而后將隨機(jī)字符串寫入該文件。

判斷RNGdTMP899文件屬性,若文件不為隱藏屬性則將其設(shè)置為隱藏屬性。

獲取RNGdTMP899中的隨機(jī)字符串,此次生成的隨機(jī)字符串為RLCTEJddUbAJMJR,并拼接成https[:]//45.86.162.114/query=RLCTEJddUbAJMJR/%20%getting,forum。

根據(jù)網(wǎng)絡(luò)行為觀測(cè),樣本首先會(huì)請(qǐng)求拼接的https[:]//45.86.162.114/query=RLCTEJddUbAJMJR/%20%getting,forum,然后請(qǐng)求https[:]//45.86.162.114/images-css/RLCTEJddUbAJMJR/imagelogo.css獲取數(shù)據(jù)。

之后每隔1分鐘,循環(huán)請(qǐng)求https[:]//raw.githubusercontent.com/yuiopk1456/beutifymyapp/main/LICENSE。通過URL可以看出攻擊者有可能在指定IP失效后通過github平臺(tái)傳輸數(shù)據(jù),猜測(cè)傳輸?shù)臄?shù)據(jù)可能為XXTEA算法加密后的攻擊者指定的IP或域名。

查找接收到數(shù)據(jù)的標(biāo)記位置。

對(duì)其后數(shù)據(jù)應(yīng)存在解密操作。

通過在github上搜索beutifymyapp,關(guān)聯(lián)到疑似該組織的github存儲(chǔ)庫(kù),存儲(chǔ)庫(kù)的創(chuàng)建者名字也與本次攻擊活動(dòng)中g(shù)ithub存儲(chǔ)庫(kù)的創(chuàng)建者名字yuiopk1456相似。僅在2021年11月存在對(duì)該存儲(chǔ)庫(kù)的操作,在這之后也未創(chuàng)建其他存儲(chǔ)庫(kù)。

在關(guān)聯(lián)到的相似存儲(chǔ)庫(kù)中,發(fā)現(xiàn)可疑的字符串,可能為加密后的域名或IP。

連接github存儲(chǔ)庫(kù)中存放的IP或域名。

由于域名、IP以及github地址均失效,故無(wú)法繼續(xù)跟進(jìn)。通過靜態(tài)分析樣本推測(cè),攻擊者與控制端通信后可能存在獲取指定目錄文件列表、啟動(dòng)進(jìn)程等操作。
獲取指定目錄文件列表。

創(chuàng)建管道。

啟動(dòng)進(jìn)程。

3??????? 歸因分析
在先前觀測(cè)中發(fā)現(xiàn),部分CNC組織人員會(huì)在開發(fā)環(huán)境中集成vcpkg,此次發(fā)現(xiàn)的樣本中同樣存在該特點(diǎn),且路徑也同以往使用的路徑一致。


樣本中的部分代碼也十分相似。


加密函數(shù)大致相同。


綜上所述,初步將此次攻擊活動(dòng)歸因到CNC組織。
4??????? 威脅框架映射
本次攻擊活動(dòng)共涉及ATT&CK框架中的8個(gè)階段的15個(gè)技術(shù)點(diǎn),具體行為描述如下表:
表 4?1 近期CNC組織攻擊活動(dòng)的技術(shù)行為描述表

CNC組織相關(guān)攻擊活動(dòng)的行為技術(shù)點(diǎn)的ATT&CK框架圖譜如下圖所示:

5??????? 總結(jié)
近些年,APT組織向隔離網(wǎng)絡(luò)攻擊的意圖越發(fā)明顯,滲透隔離網(wǎng)絡(luò)的攻擊樣本不斷增多,以Darkhotel[1]、幼象[2][3]為典型代表的攻擊組織均自研相關(guān)攻擊武器并不斷更新。此次攻擊活動(dòng)中的CNC組織樣本同該組織以往的樣本相比也進(jìn)行了升級(jí),在開發(fā)階段同樣集成了vcpkg開發(fā)環(huán)境,也存在從github存儲(chǔ)庫(kù)中獲取內(nèi)容的行為。在橫向移動(dòng)階段,在判斷是否有新存儲(chǔ)設(shè)備接入的手法上,與此前通過GetDriveTypeA獲取接入設(shè)備的類型的判斷方法不同,本次攻擊活動(dòng)的樣本通過不斷獲取驅(qū)動(dòng)器列表的方法,一旦發(fā)現(xiàn)有新存儲(chǔ)設(shè)備接入,則將文件復(fù)制到新接入的存儲(chǔ)設(shè)備中,以便達(dá)成在隔離網(wǎng)中傳播的目的。
6? IOC

參考資料
[1]???? Darkhotel組織滲透隔離網(wǎng)絡(luò)的Ramsay組件分析
https://www.antiy.cn/research/notice&report/research_report/20200522.html
[2]???? “幼象”組織針對(duì)巴基斯坦國(guó)防制造商的攻擊活動(dòng)分析報(bào)告
https://www.antiy.cn/research/notice&report/research_report/20210222.html
[3]???? “幼象”組織在南亞地區(qū)的網(wǎng)絡(luò)攻擊活動(dòng)分析
https://www.antiy.cn/research/notice&report/research_report/20211119.html