疑似Lazarus組織針對韓國的攻擊活動分析
時間 : 2022年11月01日 來源: 安天CERT
1.概述
近期,安天CERT發(fā)現(xiàn)一起針對韓國的攻擊活動,誘餌文檔標(biāo)題為“Sogang KLEC.docx”(西江大學(xué)韓國語言教育中心.docx)。對獲取到的樣本以及關(guān)聯(lián)到的惡意載荷進(jìn)行分析研判,最終將其關(guān)聯(lián)到Lazarus組織。
Lazarus組織,又稱為HIDDEN COBRA、APT38、Zinc、Guardians of Peace等,是半島地區(qū)最活躍的APT組織之一。該組織的攻擊目標(biāo)涉及波蘭、智利、美國、墨西哥、巴西等數(shù)十個國家,針對銀行、比特幣交易所等金融機(jī)構(gòu)及個人實施定向攻擊活動,以獲取經(jīng)濟(jì)利益,堪稱全球金融機(jī)構(gòu)的最大威脅之一。此外,該組織還針對航空航天、COVID-19疫苗技術(shù)、政府、媒體等機(jī)構(gòu)及企業(yè)進(jìn)行滲透,以竊取重要資料并進(jìn)行破壞勒索。
2.攻擊流程
此次攻擊活動的攻擊流程大致如下所示:
1.采用模板注入的方式,等待誘餌文檔被打開后將攻擊者構(gòu)造的惡意模板下載到主機(jī)執(zhí)行。
2.模板中的宏代碼請求指定的URL,下載惡意載荷并將其注入到WINWORD.exe中執(zhí)行。
3.下載到的惡意載荷主要用于釋放下載工具IEUpdate.exe并執(zhí)行,以及將其添加至注冊表RUN中實現(xiàn)持久化。
4.IEUpdate.exe得到執(zhí)行后發(fā)送消息獲取后續(xù)通信使用的C2,根據(jù)回傳的信息下載不同惡意載荷執(zhí)行。
5.目前已知存在兩種載荷hvncengine.dll和shellengine.dll,用于與C2通信以實現(xiàn)遠(yuǎn)程控制。
圖2?1 攻擊流程示意圖
3.樣本分析
3.1 誘餌文檔
表3?1 誘餌文檔
病毒名稱 |
|
原始文件名 |
Sogang
KLEC.docx |
MD5 |
f1a61ee026eac8583ee840d297792478 |
文件大小 |
|
文件格式 |
|
利用漏洞 |
無 |
釋放手法 |
遠(yuǎn)程模板注入 |
創(chuàng)建時間 |
2022-04-06
8:40:00 UTC |
最后編輯時間 |
2022-08-05
2:40:00 UTC |
創(chuàng)建者 |
無 |
最后保存者 |
exciting |
正文國家語言 |
ko-KR |
VT首次上傳時間 |
2022-08-16
21:05:35 UTC |
VT檢測結(jié)果 |
16/65 |
通過公開情報平臺的關(guān)聯(lián)功能發(fā)現(xiàn)誘餌文檔的下載鏈接,信息說明誘餌文檔是在Naver Mail提供的大附件存儲站點下載得到,猜測攻擊者可能通過Naver Mail發(fā)送釣魚郵件進(jìn)行攻擊。已知Naver Mail是由韓國互聯(lián)網(wǎng)集團(tuán)Naver Corporation提供的電子郵件服務(wù)。
圖3?1 誘餌文檔下載鏈接
SaniTOX為韓國Jiransecurity公司的一款安全防護(hù)軟件,誘餌文檔仿冒SaniTOX誘導(dǎo)受害者啟用宏,惡意文檔正文內(nèi)容如下。
圖3?2 此次攻擊活動誘餌文檔正文內(nèi)容
對文檔正文內(nèi)容關(guān)聯(lián)后發(fā)現(xiàn),誘餌文檔正文內(nèi)容并非第一次出現(xiàn)。
圖3?3 以往攻擊活動誘餌文檔正文內(nèi)容[1]
攻擊者使用Word模板注入的方式,在受害者打開誘餌文檔后下載惡意模板執(zhí)行,模板所在的地址為http://23.106.160.173/temp2.dotm。
圖3?4 遠(yuǎn)程模板鏈接
3.2 模板文件
表3?2 模板文件
病毒名稱 |
|
原始文件名 |
|
MD5 |
8D7C3F3C56AD3069908901790ADFA826 |
文件大小 |
|
文件格式 |
|
利用漏洞 |
無 |
釋放手法 |
宏文檔 |
創(chuàng)建時間 |
2022-07-31
2:45:00 UTC |
最后編輯時間 |
2022-08-03
14:48:00 UTC |
創(chuàng)建者 |
exciting |
最后保存者 |
exciting |
VT首次上傳時間 |
2022-08-16
21:13:22 UTC |
VT檢測結(jié)果 |
37/65 |
模板中包含惡意宏代碼,當(dāng)打開文檔后自動執(zhí)行。宏代碼主要功能為下載惡意載荷,若成功下載,便將下載到的惡意載荷注入到Winword程序中執(zhí)行。
圖3?5 下載惡意載荷
此函數(shù)將下載的惡意載荷注入到WinWord中執(zhí)行。
圖3?6 注入函數(shù)
注入到Winword進(jìn)程中的惡意載荷運行后會在%LocalAppData%\Microsoft\PlayReady下釋放IEUpdate.exe和error.log文件,之后通過fodhelper.exe繞過UAC提升IEUpdate.exe權(quán)限執(zhí)行,error.log文件中記錄了后續(xù)所需要訪問的部分URL鏈接“s/ucnpe74wo87d3mm/server.txt?dl=0”。
圖3?7 惡意載荷釋放的文件以及error.log中的內(nèi)容
修改注冊表啟動項實現(xiàn)持久化功能。
圖3?8 將IEUpdate.exe文件添加到注冊表RUN中
3.3 IEUpdate.exe 下載工具
表3?3 二進(jìn)制可執(zhí)行文件
病毒名稱 |
|
原始文件名 |
IEUpdate.exe |
MD5 |
c073012bc50b6a4f55f8edcce294a0b4 |
處理器架構(gòu) |
Intel
386 or later, and compatibles |
文件大小 |
92.00
KB (94208 bytes) |
文件格式 |
Win32
EXE |
時間戳 |
2022-08-03
03:27:06 UTC |
數(shù)字簽名 |
無 |
加殼類型 |
無 |
編譯語言 |
Microsoft
Visual C++ v.11 - 2012 |
VT首次上傳時間 |
2022-08-16
21:13:22 UTC |
VT檢測結(jié)果 |
49/72 |
首先判斷自身所處路徑是否包含“:\myapp.exe”,若包含則退出。
圖3?9 判斷自身所處路徑
通過sleep設(shè)置延遲時間,判斷延遲時間是否生效,以此繞過部分修改sleep時間的沙箱。
圖3?10 沙箱檢測
獲取主硬盤的設(shè)備描述信息,并將其與“VDEVICE”進(jìn)行拼接,拼接后的字符串通過CRC散列后與“0”進(jìn)行拼接,格式為“0+CRC散列后的值”。
圖3?11 獲取主機(jī)信息并生成主機(jī)標(biāo)識
通過在系統(tǒng)目錄下創(chuàng)建目錄,判斷其是否具有管理員權(quán)限。
圖3?12 權(quán)限判斷
獲取操作系統(tǒng)的版本信息。
圖3?13 獲取操作系統(tǒng)版本信息
獲取進(jìn)程快照,并判斷當(dāng)前運行的進(jìn)程中,是否包含“v3l4sp.exe”、“AYAgent.aye”、“IEUpdate.exe”。其中“v3l4sp.exe”為韓國AhnLab公司免費殺毒軟件V3 Lite的子程序,“AYAgent.aye”為韓國公司ESTsoft的互聯(lián)網(wǎng)安全套件ALYac的一部分。
圖3?14 檢測指定殺軟
如果存在路徑為“%LocalAppData%\Microsoft\PlayReady\IEUpdate.exe”且進(jìn)程ID與當(dāng)前進(jìn)程不符,則關(guān)閉先前的IEUpdate.exe進(jìn)程。
圖3?15 關(guān)閉先前進(jìn)程
根據(jù)cmdline的參數(shù)中是否包含“/s”、“/a”來設(shè)置標(biāo)記,并根據(jù)先前設(shè)置的管理員權(quán)限標(biāo)記選擇不同分支執(zhí)行。
圖3?16 根據(jù)參數(shù)設(shè)置標(biāo)記
判斷先前的提權(quán)操作是否成功。如果為管理員權(quán)限,則會通過PowerShell命令將自身添加到Windows Defender排除列表中。
圖3?17 將此文件添加到Windows Defender白名單
如果非管理員權(quán)限,創(chuàng)建新線程并循環(huán)執(zhí)行,具體如下所示。
圖3?18 創(chuàng)建線程
線程創(chuàng)建另一個線程函數(shù),該線程函數(shù)用作同C2進(jìn)行通信。
首先將“dl.dropboxusercontent.com”與從error.log文件中獲取到的內(nèi)容進(jìn)行拼接,并從拼接后形成的URL中獲取接下來通信的C2地址。
圖3?19 從Dropbox中獲取C2地址
然后將操作系統(tǒng)版本信息、是否存在指定的殺軟、先前生成的uid作為上線包回傳。
圖3?20 構(gòu)造上線包
上線包回傳函數(shù),將收集到的信息發(fā)送到post2.php。
圖3?21 發(fā)送上線包
隨后從拼接的URL中接收數(shù)據(jù),并對數(shù)據(jù)進(jìn)行處理,獲取數(shù)據(jù)中第三個“%”后的內(nèi)容,并以“\r”、“\n”作為結(jié)束符。此內(nèi)容將作為后續(xù)下載URL的資源地址。獲取數(shù)字0-9的阿拉伯?dāng)?shù)字,經(jīng)處理后得到指令I(lǐng)D。
圖3?22 發(fā)送請求并接收C2的命令
循環(huán)執(zhí)行下發(fā)的命令,并會判斷是否重復(fù)執(zhí)行。
圖3?23 執(zhí)行C2下發(fā)的命令
下載dll文件并選擇導(dǎo)出函數(shù)執(zhí)行。
圖3?24 下載后續(xù)載荷執(zhí)行
通過公開情報平臺查找上述樣本的信息,在誘餌文檔關(guān)聯(lián)的PCAP文件中發(fā)現(xiàn)兩個文件,應(yīng)為IEUpdate.exe下載的惡意載荷,它們具有相同的回傳數(shù)據(jù)結(jié)構(gòu)與解密算法。
表3?4 回傳數(shù)據(jù)結(jié)構(gòu)
到數(shù)據(jù)頭的偏移 |
長度
(byte) |
解釋 |
0x0 |
0xC |
固定數(shù)據(jù),解密后為)(*&POIU:LKJ |
0xC |
0x8 |
固定數(shù)據(jù),按需可替換為接收的數(shù)據(jù) |
0x14 |
0x4 |
該部分?jǐn)?shù)據(jù),根據(jù)執(zhí)行的內(nèi)容決定 |
0x18 |
0x4 |
回傳數(shù)據(jù)的長度(size) |
0x1C |
size |
回傳的數(shù)據(jù) |
0x1C+size |
0xC |
固定數(shù)據(jù),解密后為^%$#YTREHGFD |
在回傳文件的過程中,回傳數(shù)據(jù)結(jié)構(gòu)會有適當(dāng)調(diào)整,具體如下圖所示。
表3?5 文件回傳數(shù)據(jù)結(jié)構(gòu)
到數(shù)據(jù)頭的偏移 |
長度
(byte) |
解釋 |
0x0 |
0xC |
固定數(shù)據(jù),解密后為)(*&POIU:LKJ |
0xC |
0x8 |
固定數(shù)據(jù),按需可替換為接收的數(shù)據(jù) |
0x14 |
0x8 |
整體文件大小 |
0x1C |
0x4 |
文件路徑長度 |
0x20 |
size1 |
文件路徑(size1) |
0x20+size1 |
0x8 |
當(dāng)前文件指針的位置 |
0x28+size1 |
0x4 |
當(dāng)前讀取文件內(nèi)容的大小(size2) |
0x2C+size1 |
size2 |
讀取的文件內(nèi)容 |
0x2C+size1+size2 |
0xC |
固定數(shù)據(jù),解密后為^%$#YTREHGFD |
“)(*&POIU:LKJ”與“^%$#YTREHGFD”在鍵盤上的位置如下圖所示。
圖3?25 回傳數(shù)據(jù)結(jié)構(gòu)中的固定內(nèi)容在鍵盤上的位置
3.4 hvncengine.dll hvnc
表 3?6 二進(jìn)制可執(zhí)行文件
病毒名稱 |
|
原始文件名 |
|
MD5 |
5beade9f8191c6a9c47050d4e3771b80 |
處理器架構(gòu) |
Intel
386 or later, and compatibles |
文件大小 |
|
文件格式 |
|
時間戳 |
2022-08-03
03:30:53 UTC |
數(shù)字簽名 |
無 |
加殼類型 |
無 |
編譯語言 |
Microsoft
Visual C++ v.7.10 - 11.0 - Visual 2012 |
VT首次上傳時間 |
2022-08-16
21:15:12 UTC |
VT檢測結(jié)果 |
48/71 |
惡意載荷存在兩個導(dǎo)出函數(shù)SEEnd和SEStart。SEEnd用于關(guān)閉socket連接以及等待線程,SEStart為載荷主要功能,用于與C2通信實現(xiàn)hvnc功能。
樣本運行后,首先和IEUpdate.exe一樣生成帶有主機(jī)標(biāo)識的字符串。
圖3?26 獲取主機(jī)信息并生成主機(jī)標(biāo)識
每隔十分鐘,執(zhí)行一次惡意功能。
圖3?27 設(shè)置間隔時間
以上述帶有主機(jī)標(biāo)識的字符串作為名字創(chuàng)建桌面。
圖3?28 新建桌面
進(jìn)入線程函數(shù)后,與IEUpdate.exe一樣,讀取 “error.log”中的內(nèi)容后與“dl.dropboxusercontent.com”拼接,通過GET請求獲取C2地址,而后通過socket嘗試連接。
圖3?29 從Dropbox中獲取C2并連接
如果連接成功的話,將通過socket發(fā)送先前生成的主機(jī)標(biāo)識符,并設(shè)置當(dāng)先線程與桌面的關(guān)聯(lián)。
圖3?30 發(fā)送特定字符串
依次從服務(wù)端接收命令,實現(xiàn)hvnc的功能。
圖3?31 接收命令解析并執(zhí)行
根據(jù)下發(fā)的命令,呈現(xiàn)不同的操作,逆向分析命令及對應(yīng)功能大致如下所示。
表3?7 命令及對應(yīng)功能
命令 |
功能 |
0x1 |
持續(xù)發(fā)送截屏信息 |
0x2 |
停止發(fā)送截屏信息 |
0x3 |
執(zhí)行下發(fā)的命令行 |
0x5 |
模擬鍵盤操作 |
0x6 |
模擬鼠標(biāo)操作 |
0x7 |
打開explorer.exe,并設(shè)置始終顯示任務(wù)欄 |
0x8 |
啟動chrome.exe |
3.5 shellengine.dll 后門
收集主機(jī)信息并生成主機(jī)標(biāo)識符。
圖3?32 收集主機(jī)信息并生成主機(jī)標(biāo)識符
創(chuàng)建管道用于與cmd.exe子進(jìn)程通信。
圖3?33 創(chuàng)建管道
創(chuàng)建線程,并將cmd.exe的返回結(jié)果回傳到C2。
圖3?34 獲取cmd.exe執(zhí)行的結(jié)果并回傳
創(chuàng)建與C2通信并用于實現(xiàn)主要惡意功能的線程。
圖3?35 實現(xiàn)惡意功能的線程
與之前兩個樣本相同,依舊是讀取 “error.log”中的內(nèi)容后與“dl.dropboxusercontent.com”拼接,從該地址處獲取后續(xù)通信的C2,并嘗試使用socket連接。
圖3?36 從Dropbox中獲取C2并連接
若可以建立socket連接,則接收服務(wù)端命令,根據(jù)命令實現(xiàn)不同惡意功能。
圖3?37 根據(jù)指令實現(xiàn)不同惡意功能
根據(jù)下發(fā)的命令,呈現(xiàn)不同的操作,逆向分析命令及對應(yīng)功能大致如下所示。
表3?9 命令及對應(yīng)功能
命令 |
功能 |
0x1 |
根據(jù)接受的數(shù)據(jù),改變回傳數(shù)據(jù)結(jié)構(gòu)的偏移0xC處的8個字節(jié) |
0x2 |
重啟cmd.exe進(jìn)程或者通過cmd.exe執(zhí)行命令行 |
0x4 |
獲取磁盤列表或者獲取指定目錄下的子目錄及文件名稱列表 |
0x6 |
獲取指定文件 |
0xA |
獲取截屏信息 |
0xB |
設(shè)置標(biāo)記,停止截屏 |
0xD |
模擬鼠標(biāo)點擊 |
0xE |
模擬鼠標(biāo)移動 |
0xF |
修改圖像轉(zhuǎn)換時的參數(shù) |
0x14 |
將回傳數(shù)據(jù)結(jié)構(gòu)的偏移0xC處的8個字節(jié)改為樣本中存儲的數(shù)據(jù) |
0x1E |
回傳chrome密鑰 |
0x1F |
獲取指定目錄下的文件 |
4.溯源分析
通過pdb路徑的相似性以及相同的自定義加密函數(shù)可以推測出攻擊活動中涉及的3個PE文件應(yīng)歸屬于同一個攻擊者。又根據(jù)模板文件中包含的VBA代碼以及IEUpdate.exe下載工具代碼與Lazarus組織先前攻擊活動中相應(yīng)文件的代碼具有很高的相似程度,推測本次攻擊活動同樣歸屬于Lazarus組織。
IEUpdate.exe、hvncengine.dll、shellengine.dll三個文件的pdb均在同一個目錄下。
圖4?1 IEUpdate.exe的pdb
圖4?2 hvncengine.dll的pdb
圖4?3 shellengine.dll的pdb
hvncengine.dll與shellengine.dll的自定義加密函數(shù)完全相同,但所用key不同。IEUpdate.exe和shellengine.dll的key為“LNfYIU”,hvncengine.dll的key為“WhdeEg”。
圖4?4 自定義加密函數(shù)
帶有惡意宏的模板文件和IEUpdate.exe下載工具與先前發(fā)現(xiàn)Lazarus組織的樣本代碼大部分相似。
圖4?5 此次攻擊活動涉及的vba代碼
圖4?6 以往攻擊活動涉及的vba代碼[2]
圖4?7 此次攻擊活動涉及的下載工具代碼
圖4?8 以往攻擊活動中涉及的下載工具代碼[2]
5.威脅框架映射
Lazarus組織相關(guān)攻擊活動的行為技術(shù)點的ATT&CK框架圖譜如下所示:
圖5?1 Lazarus組織攻擊活動對應(yīng)ATT&CK威脅框架映射圖
本次系列活動共涉及ATT&CK框架中11個階段的28個技術(shù)點,具體行為描述如下表:
表5?1 ATT&CK技術(shù)行為描述
ATT&CK階段/類別 |
具體行為 |
注釋 |
資源開發(fā) |
獲取基礎(chǔ)設(shè)施 |
利用DropBox存放后續(xù)連接的C2地址 |
初始訪問 |
網(wǎng)絡(luò)釣魚 |
猜測可能利用釣魚郵件傳播誘餌文件 |
初始訪問 |
水坑攻擊 |
猜測可能通過水坑攻擊傳播誘餌文件 |
執(zhí)行 |
利用進(jìn)程間通信 |
shellengine.dll后門可通過管道執(zhí)行cmd命令 |
執(zhí)行 |
誘導(dǎo)用戶執(zhí)行 |
誘導(dǎo)用戶打開攻擊者構(gòu)造的誘餌文檔 |
持久化 |
利用自動啟動執(zhí)行引導(dǎo)或登錄 |
通過修改注冊表啟動項實現(xiàn)持久化 |
提權(quán) |
濫用提升控制權(quán)限機(jī)制 |
通過fodhelper.exe繞過UAC |
提權(quán) |
進(jìn)程注入 |
將IEUpdate.exe注入到WINWORD.exe進(jìn)程 |
防御規(guī)避 |
濫用提升控制權(quán)限機(jī)制 |
通過fodhelper.exe繞過UAC |
防御規(guī)避 |
反混淆/解碼文件或信息 |
樣本種的關(guān)鍵字符串通過自定義算法加密 |
防御規(guī)避 |
削弱防御機(jī)制 |
修改Windows Defender的白名單 |
防御規(guī)避 |
進(jìn)程注入 |
將IEUpdate.exe注入到WINWORD.exe進(jìn)程 |
防御規(guī)避 |
模板注入 |
利用模板注入加載遠(yuǎn)程惡意模板執(zhí)行 |
防御規(guī)避 |
虛擬化/沙箱逃逸 |
通過判斷sleep延時是否成功規(guī)避部分沙箱 |
憑證訪問 |
竊取Web會話cookie |
竊取chrome cookie |
發(fā)現(xiàn) |
發(fā)現(xiàn)應(yīng)用程序窗口 |
發(fā)現(xiàn)應(yīng)用程序窗口,便于實現(xiàn)遠(yuǎn)程桌面控制 |
發(fā)現(xiàn) |
發(fā)現(xiàn)文件和目錄 |
發(fā)現(xiàn)目標(biāo)機(jī)中的文件和目錄 |
發(fā)現(xiàn) |
發(fā)現(xiàn)進(jìn)程 |
發(fā)現(xiàn)目標(biāo)機(jī)中的進(jìn)程信息 |
發(fā)現(xiàn) |
查詢注冊表 |
發(fā)現(xiàn)目標(biāo)機(jī) |
發(fā)現(xiàn) |
發(fā)現(xiàn)系統(tǒng)信息 |
發(fā)現(xiàn)目標(biāo)機(jī)的系統(tǒng)版本等信息 |
發(fā)現(xiàn) |
發(fā)現(xiàn)系統(tǒng)所有者/用戶 |
發(fā)現(xiàn)目標(biāo)機(jī)的當(dāng)前用戶 |
發(fā)現(xiàn) |
發(fā)現(xiàn)系統(tǒng)時間 |
發(fā)現(xiàn)目標(biāo)機(jī)當(dāng)前系統(tǒng)時間 |
發(fā)現(xiàn) |
虛擬化/沙箱逃逸 |
通過判斷sleep延時是否成功規(guī)避部分沙箱 |
收集 |
收集本地系統(tǒng)數(shù)據(jù) |
收集系統(tǒng)版本、用戶名、文件列表、文件等數(shù)據(jù) |
收集 |
輸入捕捉 |
捕獲鼠標(biāo)、鍵盤消息 |
收集 |
獲取屏幕截圖 |
獲取屏幕截圖 |
命令與控制 |
使用應(yīng)用層協(xié)議 |
使用socket同C2通信 |
數(shù)據(jù)滲出 |
使用C2信道回傳 |
數(shù)據(jù)同通過C2信道回傳 |
6.總結(jié)
Lazarus組織是半島地區(qū)的頂尖黑客團(tuán)伙,專注于針對特定目標(biāo)進(jìn)行長期的持續(xù)性網(wǎng)絡(luò)攻擊,以竊取資金和實現(xiàn)政治目的為出發(fā)點,是全球金融機(jī)構(gòu)的最大威脅之一。此次攻擊活動中Lazarus組織使用多階段下載工具,并通過Dropbox獲取C2地址,加大攻擊載荷獲取難度,同時樣本中存在檢測指定的殺軟組件以及沙箱的行為,干擾分析。樣本還利用fodhelper.exe繞過UAC提升惡意進(jìn)程的權(quán)限,通過進(jìn)程注入的方式以及更改Windows Defender的排除列表使攻擊活動更難被發(fā)現(xiàn)。樣本中檢測的殺軟ALyac以及Ahnlab均為韓國流行的殺軟,結(jié)合誘餌文件的名稱“Sogang KLEC.docx”以及誘餌文檔正文中的圖片可以推測出這是一起針對韓國的攻擊活動。