旺刺組織(APT-C-47)使用 ClickOnce 技術的攻擊活動披露
ClickOnce是近年來微軟發布的一種軟件部署技術,它可以創建基于Windows的自更新應用程序,讓這些應用程序可以在用戶交互最少的情況下安裝和運行。2019年的美國Blackhat大會上,美國國土安全部所屬CISA局的攻防專家曾公布了利用最新的ClickOnce擴展文件(.appref-ms)進行惡意攻擊的技術原理。該攻擊方式區別于常規的惡意軟件植入,由于微軟設計的安裝交互方式,使其非常容易被用于誘導安裝惡意軟件。
近期,360安全大腦檢測到多起ClickOnce惡意程序的攻擊活動,通過360高級威脅研究院的深入研判分析,發現這是一起來自朝鮮半島地區未被披露APT組織的攻擊行動,攻擊目標涉及與半島地區有關聯的實體機構和個人,根據360安全大腦的數據分析顯示,該組織的攻擊活動最早可以追溯到2018年。目前還沒有任何安全廠商公開披露該組織的攻擊活動,也沒有安全廠商公開披露利用該技術的真實APT攻擊事件。由于此次攻擊活動屬于360全球首次捕獲披露,我們根據該組織擅長攻擊技術的諧音,將其命名為“旺刺”組織,并為其分配了新編號APT-C-47。
攻擊流程分析
該組織通過向受害者投遞包含偽裝的安全插件升級釣魚郵件實施攻擊,當受害者點擊偽裝的升級釣魚鏈接后會通過ClickOnce安裝方式植入后門程序。完整的攻擊流程如下圖所示:

釣魚郵件分析
該組織偽裝成某郵箱的安全團隊向受害者發送郵件,誘導受害者升級郵箱安全插件。受害者進入偽裝的插件網頁點擊安裝鏈接,會下載安裝ClickOnce程序的部署文件(*.appref-ms)

appref-ms文件設置包含了惡意的ClickOnce程序地址

惡意的ClickOnce程序安裝完畢后,會欺騙用戶安全模塊更新完成。

攻擊者分別針對三類郵箱系統定制了偽裝的安全模塊部署網頁。釣魚域名和appref-ms文件對應,如下表所示:
| 郵箱 | appref-ms | 域名 |
|---|---|---|
| XX1 | * mail security module update_v1.89.9103535.appref-ms | *****ce.com |
| XX2 | plugin* download plugin manager40.appref-ms | **n.com |
| outlook | protocol update ver 2.23.10940.appref-ms | *****k.com |
我們捕獲發現最終下載的誘餌附件文件,是加密的word文檔,名字和內容并不具有吸引力,所以攻擊者釣魚攻擊的重點還是放在了偽裝安全模塊的誘導安裝部分。
惡意ClickOnce程序分析
執行流程
程序根據配置文件的指示安裝木馬程序,回傳受害者的系統信息,文件信息。完整執行流程如下圖所示:

惡意荷載執行釋放流程:
1.加載執行banner_M.jpg
2.加載配置文件res.jpg
3.加載執行banner_0.jpg
4.釋放安裝木馬程序
5.回傳受害者信息
Clickonce.exe分析
該程序表面上偽裝成了一個基于命令行的數學計算器,用于計算點積,叉積和求根。

實際在內部嵌入了惡意荷載加載器的代碼。在其偽裝的計算器dotProduct類的Calc方法中讀取惡意荷載banner_M.jpg文件,并解密成shellcode執行。
通過一系列反射加載,最終執行外部文件中ClassLibraryM_M.Class_GO類的DoSomething方法。

banner_M.jpg分析
該程序加載并解密res.jpg文件,從文件內容中獲取配置信息。各字段代表的含義依次是:
1.沒有檢測到殺軟時的工作模式
lS代表只將木馬程序釋放到啟動目錄;
lE代表將木馬釋放到臨時目錄并立即執行
2.指示木馬程序釋放后的名稱,同時指示釋放木馬程序的jpg文件。
3.如果此字段為“K”,則表示程序在啟動ie進程顯示安裝結果前要結束掉其它的ie的進程。
4.啟動ie進程顯示安裝結果的url。
5.C&C服務器地址
6.白利用時存放白文件以及載荷的路徑
7.殺軟列表,如果受害者機器安裝有列表中的任意一款殺軟,則退出程序。
8.aes解密的key,用于解密部分banner_*.jpg文件。
9.agent name
10.收集文件時使用的配置字段
解密加載banner_0.jpg文件,會調用該模塊的ClassLibraryM_0.Class_GO類的DoCheck方法。在DoCheck方法中完成對機器上的殺毒軟件的檢查。banner_0模塊遍歷LOCALMACHINE\SOFTWARE的下層鍵值,并通過與預定義的一批殺軟列表的哈希值進行對比,最終返回一個機器上安裝殺軟的列表。banner_0模塊內一共標識了16款殺毒軟件,每款殺軟對應一個0-16的編號。根據之前獲取到的已安裝殺軟的信息,依次加載執行對應編號的banner_[0-16].jpg。

這些模塊實現方式各有不同,核心功能都是安裝木馬程序,將木馬程序移動到啟動目錄。部分模塊功能如下表所示:
| banner_1.jpg | 復制dll劫持需要的文件,構造wmtemp.log文件 |
|---|---|
| banner_1_1.jpg | 繞過UAC啟動白進程,被加載的黑文件根據wmtemp.log安裝木馬程序。 |
| banner_2.jpg | 釋放rv.dll,執行命令“rundll32.exe %TEMP%\rv.dll, SetClassKey [path2]”,安裝木馬程序。 |
| banner_3.jpg | 使用reg命令導入drg2856.tmp,tmp文件中指定了木馬文件的路徑。 |
如果沒有檢查到任何殺軟,則根據配置文件第一個字段的內容進入不同的工作模式。“E”,將木馬程序釋放到臨時目錄并執行。“S”,將木馬程序釋放啟動目錄。

隨后會上傳受害者系統信息,根據配置文件第十個字段上傳文件信息。

程序啟動ie進程,打開配置文件中的指定url,是向受害者展示自定義的安裝完成信息。如我們捕獲發現的打開的網頁其中之一是欺騙受害者協議更新成功,隨后跳轉到郵箱網址。

C&C通信和加解密分析
在banner_M模塊的整個運行周期,時刻保持與c&c服務器的通信,通報程序執行情況。不同數據時使用的參數如下表所示:
| 通報程序執行情況 | “stage=M&value=” + value + “&e=\n\n” |
| 上傳系統信息 | “stage=2&filename=” + GetMacAddress() + “&updata=” + text |
| 上傳目錄下文件名信息 | “stage=3&filename=” + MD5Hash(folderpath) + “&updata=” + array |
攻擊過程中出現的所有模塊都以jpg文件的形式存在,經過下圖的代碼剝離出真正的載荷。

其文件的結構如下圖所示:

除去真實的圖片信息,剩余的載荷都經過一層異或加密,使用的key為9D88B3FA。

另外banner_n.jpg(n為任意數字)文件還需經過一次aes解密,解密密鑰為“148780657362178FD5ADD0CFB99EFF8BC68C72EE0B438E64EDF643EB2592D7BB”。由于采用CBC模式,其初始的iv由待解密的數據的前16字節指定。
http通訊中信息的回傳都采用aes加密,加密使用的key和iv又經過配置文件的公鑰進行RSA加密,以此保障信息的隱蔽傳送。
GO語言后門模塊分析
該程序后續執行使用的是go語言編寫成的后門模塊
系統信息收集
程序會獲取系統mac地址、主機名、系統版本信息,并創建以下目錄
lC:\Users\xxx\AppData\Roaming\Microsoft\MSDN\1.3
lC:\Users\xxx\AppData\Roaming\Microsoft\MSDN\1.4

并通過注冊表檢查系統安全產品的安裝情況,如果不存在安全產品,將程序移動到%USERPROFILE%\Startup目錄進行安裝自啟動。

DLL劫持執行
如果存在安全產品,程序將使用dll劫持方式執行惡意荷載。首先寫入%TEMP%\wmtemp.log文件,文件的內容作為劫持dll的操作指令。

解密內存數據,釋放到%TEMP%\wmtemp\msftedit.dll,該dll用于白文件dll劫持

將原來的白文件拷貝到%temp%\wmtemp目錄。
msftedit.dll分析
攻擊者利用白程序啟動時會加載msftedit.dll,通過放置在%TEMP%\wmtemp\目錄下的msftedit.dll實現dll劫持。程序會解析%TEMP%\wmtemp.log文件內容,實現相應的操作。

程序會遍歷C:\Users\xxx\AppData\Roaming\Microsoft\MSDN\1.4目錄下的文件,對dll文件加載執行,對jpg文件只是加載到內存。

通過訪問http://apple.com判斷網絡情況,直到網絡連通后才會進入后續流程。

向C&C遠程服務器回傳受害者信息。

根據服務器下發的指令執行不同的功能
| 指令字符串 | 功能 |
|---|---|
| time | 設置接受指令的時間間隔 |
| ldll | 加載dll,并調用GetVersionString函數 |
| lmem | 加載文件到內存 |
| rtel | 根據下發的端口,與c2重建新的tcp連接 |
| uweb | 上傳指定目錄下的所有文件 |
| sayo | 清理退出 |
C&C遠程服務器在下達rtel指令后,程序會根據隨指令下發的端口與遠程服務器建立新的tcp連接。

隨后,服務器會發送一個數字用于完成身份驗證

驗證通過后,服務器會下發新的指令,指令功能是后門程序的常用功能
| 指令字符串 | 功能 |
|---|---|
| !get | 上傳本地文件 |
| !quit | 退出 |
| !del | 刪除文件 |
| !put | 下載遠程文件 |
| !exec | 創建進程 |
| !cd | 切換工作目錄 |
| 無上述前綴 | 執行字符串對應的系統命令 |
總結
根據360安全大腦的遙測數據顯示,旺刺組織(APT-C-47)來源于朝鮮半島地區,最早從2018年就開始活動,該組織在此次的攻擊活動中幾乎沒有使用c\c++語言編譯的后門程序,在攻擊的前半段使用多個c#模塊,在攻擊后半段中使用go語言模塊,同時是目前唯一被披露使用ClickOnce技術進行攻擊活動的組織,使其擁有了區別于其他APT組織的獨特攻擊特點,相關的機構和個人需要提高警惕。目前,360安全大腦、360情報云、360沙箱云等360政企全線安全產品可以檢測和防御該組織的攻擊。
附錄 IOC
IP
91.235.116.232
45.64.186.78
45.64.186.159
122.155.3.201
Domain
club.mail.**.com.cn.plugin-verification.com
**.attachment-download.services.enc2global.com
attachment-download.**-service.com
test.enc2global.com
authentication-services.zzux.com
email-smtp-protocol-update-notification.safetymodule-check.com
MD5
8ad47895f3af1f06d894e5383c4c4680
c0ee329f276b01d8aeb908bead365aea
f0dd637b1f0a9005c4b30245e0e7e1ad
5011d65eeebe3eedf4b3f64dabc88e8c
366da9737c0db351ca889e2bc8dc1981
f6cf5f915fc6506c3ddad7c7f10854c4
445216627ff9280f3294d8bd3d85b560
fcc4682029a27ba7a6ff9d795bdfd415
c6dd8052335e00c111526b7095cab52c
c6dd8052335e00c111526b7095cab52c
d692b8ea9485aa0205ed83cd3140b05e
9B58A9C1C396DAAFF4D8868DC49455E3
68F07080F3B0B4729BD220E10416A51C
9C0CE7D503159C0B0C06110E875C25D6
79066365563368F379CA1A45168F9ACA
306B61A40E9051629343EEF3C69BC479
EEF1F260153D0D6573D782808754BC28
6F49F302169F391A0B614AF0FCADCB98
A8810EB38C46A8C4EEE9ABC1C5A5AFBE
11128a3c4c7e7aa47349a788d41cee4d
587b6fe405816d2d3b555fcbbe17a69a
cb4e79b6f191d0c8cb38ff91b049796f
64763f03e581510ca42fb420b71d2458
cac963f48aa812e900672b0ad1d1db4d
80cac47d7b6fa68c36b59c818ed2e35a
f4522f6486a90af0c960d86a9a5734ca
原創:高級威脅研究院 360威脅情報中心
原文鏈接:https://mp.weixin.qq.com/s/h_MUJfa3QGM9SqT...