概述
2019年奇安信威脅情報中心發布《阻擊「幻影」行動:奇安信斬斷東北亞APT組織「虎木槿」伸向國內重要機構的魔爪》全網首次披露東亞APT團伙「虎木槿」,奇安信內部跟蹤代號APT-Q-11,在此後的數年間我們一直對其保持高強度的跟蹤,該團伙在2019-2021三年間使用了多個瀏覽器0day漏洞,使用多種攻擊手法對目標進行滲透攻擊,基於奇安信大數據平台捕獲到的攻擊手法如下:
由於該團伙非常善於挖掘本土化軟件的0day漏洞,技術較為高超,我們沒有十足的把握洞悉「虎木槿」過去三年中所有的攻擊活動,本文披露的活動也只是冰山一角,希望友商對本報告進行補充擴展。本篇以年份為單位,披露漏洞細節(漏洞軟件目前均已修復)、成因以及利用,文末會公布歷史活動的IOC,相關IOC均已無法訪問,截止到報告完成前尚未捕獲到新活動。
2019年
魚叉郵件釣魚
「虎木槿」在2019年初時通過使用可信郵箱向目標人員投遞帶有invoice主題的魚叉郵件。

我們收集到的PC端釣魚頁面如下:

以新冠疫情作為誘餌的釣魚頁面:

手機端釣魚頁面如下:

會將輸入的數據和用戶名進行拼接後經過RSA加密發送到後台頁面。

加密代碼如下:

最後跳轉到帶有PDF的頁面,有些則會跳轉到合法的網盤文件下載鏈接,引導受害者下載安全的PDF。

部分郵件中的釣魚鏈接採用google白域名轉發的形式來繞過郵件檢測:
https://www.google.com/url?q=http://{domain}/index.php?addr=XXX&rc=XXX&source=gmail&ust=XXX&usg=XXX
通過奇安信大數據平台關聯我們觀察到虎木槿對海外目標的攻擊活動,冒充聯合國網站對外國駐朝鮮大使館以及朝鮮駐外國大使館進行攻擊。
cloud.unite.un.org.docs-verify.com

返回的PDF內容為波蘭駐平壤大使館邀請函:

還會仿冒office相關的(www.ms0ffice.guest-mailclouds.com)釣魚頁面,遺憾的是我們並沒有獲取到完整的html。
魚叉郵件+瀏覽器0day
攻擊者除了在郵件中投遞釣魚鏈接外,還會投遞帶有針對部分瀏覽器0day漏洞的惡意鏈接,漏洞利用流程如下:
URL
功能
/ccps/20191031.pdf
偽裝pdf後綴的腳本語言
/ccps/start00.html
判斷瀏覽器版本是不是對應瀏覽器,如果不是的話,顯示正常的pdf不攻擊
/ccps/exp.html
觸發漏洞
/ccps/exp2.html
執行惡意代碼
/ccps/d.jpg
圖片隱寫加密,一個瀏覽器控件的dll,劫持執行木馬
/ccps/e.jpg
圖片隱寫加密,解密後為木馬文件,下載帶360a.exe
郵件截圖如下:

Eml文件中包含了兩個鏈接,第一個鏈接為探針,第二個鏈接使用了某域名的白名單跳轉:
http://dict.XXXXX.com/appapi/redirect?module=compose.ComposeModule&redirectUrl=http://oversea-cnki[.]net/ccps/20191031.pdf
之後會再跳轉到http://datasectioninfo[.]com/ccps/20191031.pdf

訪問同目錄下的start00.html,進入漏洞利用流程,start00.html主要用來判斷當前瀏覽器是否可利用,無論是否可利用最後都會加載正常的PDF。

值得一提的是,PDF文件同樣有檢測機制,如果Agent包含某些設備特徵則會跳轉到404頁面。

如果存在可利用的瀏覽器則會執行exp.html。

判斷瀏覽器版本和系統版本後執行exp2.html,下載兩個隱寫的PNG文件。

並在解密後把文件下載到Mediaplay 播放器的插件目錄下,實現DLL劫持,文件名:np-mswmp.dll,在播放1.wmv 後,會默認加載該dll,然後dll執行起來後會執行360a.exe的木馬的操作。

漏洞分析
由於部分瀏覽器chrome內核版本過低,攻擊者使用了兩個Chrome內核漏洞,分別位於exp1.html和exp2.html,其中exp1.html由project zero 的lokihardt@google.com發現,通過該漏洞實現代碼執行功能。

獲取全局內存讀寫的能力。

獲取任意對應的函數地址。

之後通過代碼執行啟動shellcode修改對應內存中的部分參數。

其中修改如下的字符串為catalog。

之後通過CVE-2018-6055繞過chrome沙箱,該漏洞由laginimaineb@google.com 發現,mojo接口filesystem::mojom::Directory存在漏洞,可導致任意文件讀寫,這個接口存在於mojo server catalog中,也就是上文中通過shellcode修改的的字符。

因此,執行exp1後啟動mojo對應的catalog服務,執行exp2調用對應的漏洞接口實現沙盒逃逸,從而在系統中寫入對應的惡意插件,以實現劫持mediaplayer,此時運行一個wmv文件以實現最終的惡意代碼啟動。
惡意代碼分析
本次活動涉及到4個落地文件和5個內存加載的插件。
文件名
MD5
編譯時間
功能
360a.exe
580da4e63c9e617573831127df6e02fe
2019-10-31,07:23:22
木馬Dropper,釋放svctask.exe 和SndVolSSO.dll
np-mswmp.dll
8962b07c12f1e8d1a0cff81b94e21538
2007-04-11,00:18:18
劫持瀏覽器的控件
SndVolSSO.dll
e356e764bc0f2d2807314dae322889de
2019-10-31,07:22:16
Dropper釋放的,Bypass uac啟動svctask.exe
svctask.exe
2c5f443b2af64be2c35ebbbc56f61ff0
2019-10-31,07:20:59
遠控主文件
漏洞利用執行完畢後,會先通過Dll side-loading加載np-mswmp.dll,修改了正常的np-mswmp.dll的一個函數,被patch的地方如下:

被patch的函數會獲取CreateProcessA的地址,並運行起來360a.exe。

360a.exe基於開源putty項目,將main函數裡正常代碼替換為惡意代碼,主要功能為解密釋放loader程序SndVolSSO.dll和遠控主程序svctask.exe,使用Bypass UAC技術通過iFileOperation的方式將SndVolSSO.dll拷貝到Windows目錄下,實現explorer.exe劫持持久化。

SndVolSSO.dll被加載起來後使用另一種Bypass UAC的方法運行svctask.exe。

該樣本的具體執行流程如下:
1. 創建名字為「lb@\x06g」的互斥體,這個互斥體在第一個數據包/qn/doil.php里當參數傳遞了出去,等待數據包返回,如果數據包返回的數據通過驗證,木馬會請求下一個數據包。

2. 木馬發送的第二個數據包為/qn/doil.php?adm,該數據包是GET請求,會返回下一個數據包返回的數據的大小(插件包pkg的大小)。

3. 木馬會以POST請求發送第三個數據包,該數據包會返回加密後的插件包(webroot/dn/pkg目錄),以0x8111212為插件的分割字符,包含5個插件;加密算法為xor 0x21。


4. 把5個插件通過遠程線程注入到進程名為svctask.exe(自身)的進程里,加載起來。

返回的插件包是一個偽裝jpg的圖片,頭部16字節是jpg頭,如圖為瀏覽器打開的截圖:

文件名
功能
編譯時間
Pear.dll
網絡通信模塊,主要通過管道給其他插件下發命令
2019-11-01,04:55:02
Mango.dll
控制者下發文件到受害者(ACFVXZseD)
2019-11-01,04:55:01
Melon.dll
獲取計算機基本信息保存到文件
2019-11-01,04:55:02
Peach.dll
從受害者上傳數據到控制者(ACFVXZseU)
2019-11-01,04:55:01
Durain.dll
獲取受害者電腦上的特定目錄的文件結構和敏感文件
2019-11-01,04:55:02
Lemon.dll
注入惡意代碼到指定進程中
-
文件名
功能
ACFVXZseR
刪除指定文件
ACFVXZseE
運行指定文件
ACFVXZseU
從受害者上傳文件到控制者
ACFVXZseX
退出
ACFVXZseD
控制者下發文件到受害者
ACFVXZseL
把惡意代碼注入到指定進程
RES
命令執行後返回的結果
BUN
獲取本次會話的密鑰
RQT
獲取待執行的命令隊列
狀態碼
含義
[GET_CMD]
等待控制者下發指令
[CONNECT]
連接中
[SUCCEED]
執行成功
[FAILED]
執行失敗
URI
用途
/qn/doil.php
驗證包和接收插件包
/qn/map.php
用於接收交互命令
/qn/daily.php
未知
/qn/flight.php
用於傳送文件
MD5
Mutex
功能
0e59d990a6cd93c999481c802ff83c3d
ACFVXZseL
從管道ACFVXZseL接收過來的惡意代碼,解密後注入到指定進程
2205e0119c825b8b5086e648957edf79
ACFVXZseL
和C2進行通信lion.waitnetwork.net下載Apple.exe到本地執行起來,命令行參數「-Snmuery」
5b63114850a148dc74cce50a36778880
循環讀取temp下的q文件,解密後執行起來
2020年
內網橫向移動0day漏洞
漏洞分析
部分瀏覽器默認安裝一個獨立服務會監聽高端口實現部分功能的調用,我們推測虎木槿團伙對該服務進程進行了代碼審計,最終找到任意命令執行漏洞,凡是安裝了部分瀏覽器的終端無論在內網或者在外網映射了IP均能被穩定RCE。
奇安信威脅情報中心觀察到相關攻擊後,第一時間對漏洞進行了復盤,現將相關細節公開,供安全研究人員參考。
綁定端口代碼如下:

通過該端口接受的數據格式需要以/?開頭,以 /r/n 結尾,因此此時可以得出以下形式的exp構造/?*****/r/n

接着依次解析appid、path、channel、callback等參數,每個參數以&分割,Exp格式如下:
/?appid&path&channel&callback/r/n

之後進入一個if,該大流程為--programid=分支,漏洞觸發函數在here位置,因此可以判定我們的exp中一進入--programid=流程,其值會來自於appid,其中--msg_program_suburl=來自前面的path,--msg_program_channel=來自前面channel,因此這裡可以得出以下exp的格式,這裡通過寫入斷點觀察可以發現if中判斷的0x12的值實際是appid的長度,必須為18。

Exp構造格式如下:
/?appid=111111111111111111&&path&channel *****/r/n

最終appid轉為--programid=,channel轉為msg_program_channel,故結合我們檢測到的數據最終的EXP構造如下:
/?appid=qheejtaunxfk8pj2p9&channel=1 --no-sandbox --headless --renderer-cmd-prefix="cmd.exe /c start calc.exe&\r\n"

值得一提的是recv後會通過空格對buffer進行分割,所有空格被格式化,導致無法順利執行EXP,通過分析發現在channel轉為msg_program_channel時,會在fun_setStr中處理對應的數據。

會依次判斷該數據是否為%,+,實際上%是用於處理unicode,而會將+轉化為空格,也就是說exp中只需將空格替換為+號,後續代碼中會自動將空格恢復。

因此完整exp如下所示:
/?appid=qheejtaunxfk8pj2p9&channel=1+--no-sandbox+--headless+--renderer-cmd-prefix="cmd.exe /c start calc.exe&\r\n"
最終會調用ShellExecuteW執行對應的命令。

VBS分析
虎木槿利用該漏洞調用wscript執行v.vbs,從遠程服務器下載Payload。

遺憾的是我們捕獲到的樣本均已損壞。
2021年
OA內網水坑
在2021年攻擊者除了使用瀏覽器漏洞外還使用了一種全新的攻擊模式,即入侵內網OA系統,替換OA系統網盤上的常用工具,進行水坑攻擊。

尚不清楚攻擊者是通過何種方式入侵內網OA的,替換的文件如下:
Md5
文件名
被替換的工具
0782a0d6313fbb19a61d1fdc59234812
Filelocator pro 8.5 build 2912
文件內容搜索工具
29f84b0c138f0a8c3b1f6c9a43911984
filelocatorproportable.exe
文件內容搜索工具
d2ea8a53e5db1b1d78bdc08d66bc1cf6
Launcher_Setup (1).exe
V2Conference視頻會議
字符串解密邏輯如下:

從自身釋放出正常的軟件安裝包並啟動:

釋放惡意的SfAntiBot.exe,樣本偽裝成友商殭屍網絡查殺工具:

Md5
文件名
編譯時間
c296fc1c0d181c2e39f4fd5a8bceb70b
SfAntiBot.exe
02/10/2021 05:30:20am
樣本起始會動態加載API,並嘗試提升到管理員權限。

如果權限提升失敗,則會用內置的UACME進行bypass UAC提權。

核心邏輯在窗口回調函數中。

生成配置文件,存放經過加密的C2:

讀取配置文件解密C2。

http://190.2.147[.]128/sangfor/cloud/edrTL.php
收集本機信息,將數據上傳到遠程服務器上。

從遠程服務器讀取payload數據並寫入文件。

啟動payload,獲取屏幕截圖發送到遠程服務器

下載的payload如下:
Md5
文件名
功能
87b65abafbd51bbd30a5eae624401912
vmcret.exe
反彈shell到遠程服務器
63b80446ff4cefa9db70f6cdffaa6a05
mscowlib.dll
下載者
aef737cc72ac492ae54cf916cd60b7c1
360chkcloud.exe
下載者
vmcret.exe為攻擊者自己編譯的Cryptcat,主要功能反彈shell。

194.88.107.34:443193.9.113.180:80
攻擊者利用反彈shell執行一些cmd命令創建計劃任務和橫向移動,接着攻擊者先是下發了一個名為360ChkCloud的下載者測試文件,功能非常簡單。

接着下發了帶有混淆的下載者,但被天擎查殺。


CC=88.150.227.110:13

總結
目前,基於奇安信威脅情報中心的威脅情報數據的全線產品,包括奇安信威脅情報平台(TIP)、天擎、天眼高級威脅檢測系統、奇安信NGSOC、奇安信態勢感知等,都已經支持對此類攻擊的精確檢測。

IOC
2019年
MD5:
580da4e63c9e617573831127df6e02fe
8962b07c12f1e8d1a0cff81b94e21538
e356e764bc0f2d2807314dae322889de
2c5f443b2af64be2c35ebbbc56f61ff0
0e59d990a6cd93c999481c802ff83c3d
2205e0119c825b8b5086e648957edf79
5b63114850a148dc74cce50a36778880
CC:
Microsoft.ccivde.com
mail-hostfile.com
141.255.160.250
oversea-cnki.net
datasectioninfo.com
blue.chinfoset.com
lion.waitnetwork.net
cloud.unite.un.org.docs-verify.com
www.ms0ffice.guest-mailclouds.com
service-hq.com
netease.smartsystem36.com
www.morning-place.com
helpdesk-mailservice.com
netease.mail-drivecenter.com
2020年
CC:
http://62.112.8.79/Images/Png/p
2021年
MD5:
0782a0d6313fbb19a61d1fdc59234812
29f84b0c138f0a8c3b1f6c9a43911984
d2ea8a53e5db1b1d78bdc08d66bc1cf6
c296fc1c0d181c2e39f4fd5a8bceb70b
87b65abafbd51bbd30a5eae624401912
63b80446ff4cefa9db70f6cdffaa6a05
aef737cc72ac492ae54cf916cd60b7c1
2353c6bc28050fc95ceca63ef608bca8
fe39b7713f040e839f54edc42af7b63a
CC:
http://190.2.147[.]128/sangfor/cloud/edrTL.php
http://190.2.147[.]128/360-Cloud/Chk
194.88.107.34:443
193.9.113.180:80
88.150.227.110:13

點擊閱讀原文至ALPHA 5.0
即刻助力威脅研判