DarkPink近期攻擊活動分析報告

1??????? 概述
安天CERT近期監(jiān)測到多起APT組織DarkPink針對印度尼西亞外交部門及菲律賓軍事部門的攻擊活動。DarkPink(又稱saaiwc)組織最早在2021年年中開始活躍,其主要攻擊目標為柬埔寨、印度尼西亞、馬來西亞、菲律賓、越南、波斯尼亞和黑塞哥維那等國家的外交、軍事等部門及行業(yè)。
本次發(fā)現(xiàn)的攻擊活動的初始樣本均為打包的ISO文件,按照攻擊流程可分為兩類:一類是采用DLL側(cè)加載的方式,釋放包含惡意XML文件載荷并通過修改注冊表實現(xiàn)持久化。惡意DLL還會創(chuàng)建計劃任務(wù)定時注銷登錄用戶,在登錄Windows用戶時,通過調(diào)用MSBuild.exe(Microsoft 生成引擎)啟動惡意載荷KamiKakaBot[1],實現(xiàn)遠程控制功能;另一類采用DLL側(cè)加載攻擊的方式進行初始攻擊,惡意DLL解密出PE文件并在內(nèi)存中加載執(zhí)行,內(nèi)存中的PE文件會將啟動代碼添加至注冊表中實現(xiàn)持久化,啟動代碼用于解密并啟動惡意載荷TelePowerBot[1],實現(xiàn)遠程控制功能。
2??????? 樣本分析
2.1??????? 使用KamiKakaBot的攻擊活動
2.1.1???????? 誘餌信息
攻擊者使用名為“~MSTIP ROTCU Roster of Cadets and List of Training? Staff_emb.doc”(意為“MSTIP ROTCU學(xué)員名冊和培訓(xùn)人員名單”)的誘餌文檔,用來偽裝成菲律賓馬卡蒂科學(xué)技術(shù)學(xué)院預(yù)備役軍官訓(xùn)練團的學(xué)員名冊和培訓(xùn)人員名單。

攻擊者使用名為“Availability of HPA Parade Ground.pdf”(意為“HPA 閱兵場的可用性”)的誘餌文檔,用來偽裝成菲律賓首都地區(qū)社區(qū)防御集團請求使用HPA 閱兵場的文檔。

攻擊者使用名為“~Concept Note Strategic Dialog Version 30.1.docx”(意為“概念說明戰(zhàn)略對話版本 30.1”)的誘餌文檔,用于偽裝成印尼-德國戰(zhàn)略會話內(nèi)容相關(guān)的誘餌。

攻擊者使用名為“009 -Visit of Norwegian senior diplomats to Jakarta 6-9 February.pdf”(意為“009-挪威高級外交官于2月6日至9日訪問雅加達”)的誘餌文檔,用來偽裝成挪威皇家大使館發(fā)送關(guān)于外交官訪問雅加達的誘餌,根據(jù)誘餌文件內(nèi)容猜測,攻擊目標為印度尼西亞共和國外交部或相關(guān)人士。

攻擊者使用名為“~Concept note - A Sustainable Forum - Building the Online Resources of the EAMF 16 Dec 2022_emb.doc”(意為“概念說明-可持續(xù)論壇-建設(shè)EAMF的研究能力2022年12月16日”)的誘餌文檔,用來偽裝成發(fā)件人MA. THERESA P. LAZARO(菲律賓外交部負責雙邊關(guān)系和東盟事務(wù)的副部長)的身份,誘餌內(nèi)容與“澳大利亞關(guān)于擴大東盟海事論壇提案的修訂概念說明”相關(guān),根據(jù)其內(nèi)容及收件人猜測其攻擊目標為東盟高管會的領(lǐng)導(dǎo)人或相關(guān)人士。


2.1.2???????? 攻擊流程
DarkPink組織構(gòu)造包含惡意代碼及誘餌文件的ISO鏡像,通過魚叉式釣魚等方式投遞到目標機器,誘導(dǎo)用戶打開鏡像中偽裝成文檔的exe文件,以DLL側(cè)加載的形式加載惡意模塊。惡意模塊運行后會讀取誘餌文檔尾部的數(shù)據(jù),解密出XML格式的文件,并建立持久化機制,每當用戶登陸時,調(diào)用PowerShell打開MSBuild.exe文件執(zhí)行惡意XML文件,將XML文件中存放的數(shù)據(jù)解密后加載到內(nèi)存中執(zhí)行。解密后的數(shù)據(jù)為KamiKakaBot[1],用于與Telegram通信并實現(xiàn)瀏覽器數(shù)據(jù)竊取、命令執(zhí)行等功能。

2.1.3???????? 樣本標簽
表 2?1 ISO中包含的惡意模塊MSVCR100.dll

該組織采用DLL側(cè)加載的形式加載惡意模塊以規(guī)避檢測,加載的惡意模塊偽裝成MSVCR100.dll(Visual Studio 2010的一個動態(tài)鏈接庫文件)。

惡意模塊加載后,查找當前目錄下的滿足以下條件的文件:
①?????? 含有隱藏、只讀、系統(tǒng)屬性;
②?????? 文件名中包含“.doc”和“~”;
③?????? 文件名中不包含“$”。

惡意模塊從誘餌文件尾部讀取數(shù)據(jù)并進行十六進制異或0xCA的操作,直至遇到0x00停止。

惡意模塊將處理后的數(shù)據(jù)寫入到%temp%目錄下的wct1FDA.tmp文件中,該文件的內(nèi)容如下圖所示。

文件生成后通過cmd命令打開誘餌文檔,用以假扮正常的文檔打開操作。

惡意模塊新建環(huán)境變量MS、TMPT、PSS,后續(xù)設(shè)置到注冊表中的PowerShell代碼會使用到環(huán)境變量的值。

惡意模塊通過創(chuàng)建計劃任務(wù),感染機器于每周星期三、星期五的13:15強制注銷,使用戶需要重新登錄,執(zhí)行PowerShell指令。

惡意模塊設(shè)置注冊表SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell的值,在登錄Windows用戶時啟動惡意代碼。

PowerShell調(diào)用MSBuild.exe加載XML文件。首先解碼base64數(shù)據(jù),并將每個字節(jié)xor十進制248,解密后得到KamiKakaBot[1]的修改版本。而后通過GetExportedTypes與InvokeMember方法匹配到程序中的PRLiSNFR方法執(zhí)行。

KamiKakaBot[1]執(zhí)行后,首先收集當前設(shè)備名、用戶名以及部分字符串,而后獲取與Telegram通信的API KEY和CHAT ID。

KamiKakaBot[1]樣本內(nèi)部存在字符串解密函數(shù),解密函數(shù)通過FNV算法進行hash處理調(diào)用該函數(shù)的函數(shù)名,而后進行移位操作并同設(shè)定好的數(shù)值相加獲取到字符串在數(shù)組中的位置,進而獲取解密后的字符串。

KamiKakaBot[1]通過Telegram回傳數(shù)據(jù)。

KamiKakaBot[1]判斷%LOCALAPPDATA%\desktop.ini.dat文件是否存在。若不存在,創(chuàng)建該文件并以“main.APIKEY中的第15字節(jié)后15個字節(jié)長度的字符串”+“:0”的形式寫入到文件中,并將該文件設(shè)置為隱藏屬性。若存在,讀取文件內(nèi)“:”前面的內(nèi)容并與main.APIKEY中的第15個字節(jié)后15個字節(jié)長度的字符串進行比較,相同則返回“:”后面的內(nèi)容,不同則修改該文件的內(nèi)容,以“main.APIKEY中的第15個字節(jié)后15個字節(jié)長度的字符串”+“:0”的形式存儲,并將其設(shè)為隱藏屬性。

KamiKakaBot[1]通過requestMessageID函數(shù)的返回值來判斷當前機器是否首次感染當前版本的KamiKakaBot,將是否首次感染的信息與Chrome、Edge、Firefox瀏覽器的數(shù)據(jù)發(fā)送至Telegram,等待回傳至受害機的數(shù)據(jù)。

KamiKakaBot[1] 接收從Telegram回傳的數(shù)據(jù),并對數(shù)據(jù)進行解析判斷以實現(xiàn)對應(yīng)的功能,下表為KamiKakaBot中的指令及對應(yīng)功能:
表 2?2 指令及對應(yīng)功能

2.2??????? 使用TelePowerBot的攻擊活動
2.2.1???????? 誘餌信息
誘餌文檔名為“20220410_Microsoft Security Update.pdf”。該文檔為仿冒微軟安全更新主題的文檔,從誘餌文檔的正文內(nèi)容可以看出此次攻擊活動為針對菲律賓軍事領(lǐng)域的攻擊活動。

2.2.2???????? 攻擊流程
DarkPink組織構(gòu)造包含惡意代碼及誘餌文件的ISO鏡像,通過魚叉式釣魚等方式投遞到目標機器,誘導(dǎo)用戶打開鏡像中偽裝成文檔的exe文件,以DLL側(cè)加載的形式加載惡意模塊。惡意模塊運行后會讀取誘餌文檔尾部的數(shù)據(jù),解密出PE文件并在內(nèi)存中加載執(zhí)行,內(nèi)存PE文件負責打開誘餌文檔以及將啟動代碼添加至注冊表實現(xiàn)持久化。在每次開機后啟動代碼均會執(zhí)行,解密出TelePowerBot[1]惡意載荷實現(xiàn)收集信息、命令執(zhí)行功能。

2.2.3???????? 樣本標簽
表 2?3 ISO中包含的惡意模塊MSVCR100.dll

攻擊者同樣采用DLL側(cè)加載的方式規(guī)避檢測,加載的惡意模塊將會從誘餌文件尾部讀取數(shù)據(jù)并進行解密操作。

解密后的數(shù)據(jù)為PE文件,在內(nèi)存中加載PE文件并執(zhí)行。

加載到內(nèi)存中的PE文件執(zhí)行后首先會創(chuàng)建互斥量,而后通過cmd命令打開誘餌文檔掩飾惡意行為。

修改注冊表,設(shè)置后續(xù)腳本運行所需讀取的環(huán)境變量,并通過設(shè)置UserInitMprLogonScript鍵值實現(xiàn)持久化。為.abcd后綴的文件添加文件關(guān)聯(lián),從而每次系統(tǒng)啟動時鏈接到啟動代碼,啟動代碼主要通過SyncAppvPublishingServer.vbs運行PowerShell代碼,異或解密base64編碼的數(shù)據(jù)并執(zhí)行。

在系統(tǒng)每次啟動后執(zhí)行該命令,base64數(shù)據(jù)解碼后進行異或解密。

腳本經(jīng)過解混淆后,對存放的base64數(shù)據(jù)解碼并解壓縮,最終執(zhí)行的載荷為TelePowerBot[1]。腳本運行后首先會判斷與api.telegram.org的連接狀態(tài),而后將收集受害機的基本信息并傳回Telegram。之后每隔一分鐘循環(huán)同Telegram通信,接收命令并將命令結(jié)果回傳至Telegram。

3??????? 關(guān)聯(lián)分析
結(jié)合DarkPink組織以往攻擊活動樣本分析,在攻擊流程和使用的攻擊組件方面均具有高度相似性,但細節(jié)上存在一定程度變化。
本次攻擊活動中的XML文件和先前版本的內(nèi)容及功能大致相同,但在解碼base64的后續(xù)載荷數(shù)據(jù)后,又多進行一次異或操作。

??
.NET載荷功能基本相同,但同比先前版本增加了字符串加密函數(shù),提高分析難度。

4??????? 威脅框架映射
DarkPink組織相關(guān)攻擊活動的行為技術(shù)點的ATT&CK框架圖譜如下所示:

本次活動共涉及ATT&CK框架中9個階段的16個技術(shù)點,具體行為描述如下表:

?
5??????? 總結(jié)
DarkPink組織自2021年年中以來,一直處于活躍狀態(tài),持續(xù)針對東南亞地區(qū)進行攻擊,且目前使用到的工具幾乎均為其自研工具。在近期發(fā)現(xiàn)的攻擊活動中,攻擊者通過DLL側(cè)加載的形式釋放后續(xù)載荷并實現(xiàn)持久化操作,利用受信的開發(fā)工具MSBuild.exe或者直接利用加密的PowerShell腳本啟動惡意載荷,且到目前為止,發(fā)現(xiàn)受感染的主機與攻擊者之間均是基于Telegram API進行通信。在近期發(fā)現(xiàn)的攻擊活動中存在兩類攻擊載荷,PowerShell載荷TelePowerBot[1]與.NET載荷KamiKakaBot[1]。本次發(fā)現(xiàn)的KamiKakaBot和先前版本相比,功能基本相同,但新增了字符串加密函數(shù)以隱藏部分特征。從上述內(nèi)容可以看出,該組織在按照其原有的攻擊模式進行攻擊的同時也會對其自研工具做出調(diào)整,以便適應(yīng)不同的攻擊目標,進行更加隱蔽、持久的間諜活動。
參考資料:
[1]???? Group-IB:Dark Pink
https://www.group-ib.com/blog/dark-pink-apt/