原文鏈接:ShellReset RAT Spread Through Macro-Based Documents Using AppLocker Bypass
譯者:知道創宇404實驗室翻譯組

之前我們說到:網絡犯罪分子通常會將攻擊點與熱點相聯系。近期,我們就發現有犯罪分子使用倫敦技術事件做誘餌來進行網絡攻擊。

2020年2月-5月,我們觀察到在基于.space和.xyz域的新注冊站點上托管了四個基于惡意宏的Microsoft Word文檔。由于幾個文檔的最終有效負載的部署策略、技術和過程(TTP)十分類似,我們認為這是同一個攻擊者的行為。

據了解,.NET有效負載的最終版以往從未被檢測到過,它的代碼段很小,而且與QuasarRAT相重疊,但此代碼段在運行時并未使用。根據最終有效負載中的唯一字符串我們為把該RAT命名為ShellReset。由于被檢測到的數量有限,我們認為這可能是是一種小范圍的攻擊活動,而攻擊者在這個攻擊過程中使用的主題也和今年在倫敦發生的熱點事件有關,其中還包括5G ExpoFuturebuild

其中的感染鏈涉及一些有趣的技術,如在運行時使用受信任的Windows實用程序在終端上編譯有效負載以繞過安全機制,還會從攻擊者的服務器下載混淆后的源代碼。本文我將對分發策略和攻擊的技術進行詳細分析。

分發策略

2020年2月,與此攻擊活動相關的示例文檔進行了發布,其托管網址為:hxxps://documentsharing.space/files/5G%20Expo.doc?clientEmail =

MD5 hash: 93f913f3b9e0ef3f5cedd196eae3f2ae
File name: 5G Expo.doc

本文檔的內容與5G博覽會活動有關,該活動計劃于2020年3月17日至18日在倫敦舉行,如圖所示。

啟用宏后,本文檔顯示5G Expo 2020主題

同日,我們在URL上的同一域中找到了了另一個托管文檔網址:hxxps://documentsharing.space/files/FutureBuild.doc?clientEmail =

MD5 hash: b34b74effbd8647c4f5dc61358e1555f
File name: FutureBuild.doc

該文檔的內容與本應于2020年3月3-5日在倫敦舉行的Futurebuild 2020會議有關。該文件在形式上偽裝成了本次會議的入場券,如圖所示。

啟用宏后,文檔顯示Futurebuild 2020主題

在這兩種情況下,用于承載文件的域都是documentharing[.]space。根據域的Whois記錄,它已于2019年10月21日注冊。

2020年5月發現同一攻擊者的的兩個文檔示例。

2020年5月19日,我們在URL上找到了一個托管的基于宏的惡意Word文檔,其網址為:hxxps://misrmarket[.]xyz/files/Get%20Stared.doc?clientEmail=

MD5 hash: 7bebf686b6e1d3fa537e8a0c2e5a4bdc
File name: Get%20Stared.doc

本文檔的內容是有關個人數據革命的內容,其中包括合法站點列表,如圖所示

文檔顯示有關個人數據革命的消息

經過進一步的研究,我們發現該文本是從網站datacoup.com上復制的,如圖所示

文檔中顯示的消息是從datacoup.com復制

用于承載此文檔的網站是一個欺詐網站anonfiles.com,該網站允許用戶匿名上傳文件。但該欺詐網站站點和原始站點在用戶界面上存在著細微差別。下圖顯示了欺詐網站站點的用戶界面。

anonfiles.com欺詐網站的Web用戶界面

下圖顯示了原始網站站點的用戶界面。

原始網站站點anonfiles.com

紅色標記區域不在欺詐網站區域范圍內,根據Whois數據,欺詐網站misrmarket [.xyz]已于2020年2月26日注銷。

我們在托管文檔的所有URL中觀察到其常見模式是:“?clientEmail=”,其中URL的參數還包含目標用戶的電子郵件地址。

宏的技術分析

打開宏的文檔時,它會顯示一條消息,其要求用戶啟用宏以查看內容,如下圖所示:

文檔顯示的消息,要求用戶啟用宏

啟用宏后,將調用宏的Auto_Open()子例程,這將隱藏上圖并顯示與文檔主題(5G Expo,Future Build 2020等)相對應的圖像。

部分的宏代碼也在啟用宏后取消隱藏圖像,如下圖所示:

用于取消隱藏圖像的宏代碼

為了更好進行分析,我們將使用MD5的 hash: 7bebf686b6e1d3fa537e8a0c2e5a4bdc文件。宏的內容如圖所示:

文檔中的宏代碼

該宏代碼的主要功能是:

  1. 它將工作目錄和放置文件的名稱設置為ServiceHostV1000。

  2. 它包含嵌入在宏中的完整C#代碼,這些代碼在運行時寫在了工作目錄文件ServiceHostV1000.cs中。在源代碼中混淆了C#代碼,但僅混淆了變量、類和名稱。

  3. 它將編譯器目錄設置為文件csc.exe在計算機上的位置。Csc.exe是C#代碼的命令行編譯器,一般情況下默認與Microsoft.NET框架一起安裝。宏會在計算機上搜索版本3.5和4.0.x,會根據計算機上安裝的.NET Framework版本設置相應的編譯器目錄,如圖所示。

用于在計算機上編譯C#代碼的宏代碼

  1. 它使用csc.exe和命令行參數“-target:winexe -out:”編譯代碼。編譯后的二進制文件將出現在“啟動”目錄中。

  2. 它將刪除包含源代碼的工作目錄。

  3. 它執行編譯的二進制文件。

AppLocker繞過

在這種情況下,MSbuild.exe使用.csproj文件編譯計算機上的代碼,以此作為繞過Windows安全機制(例如AppLocker和Device Guard)的方法。幾年前,凱西·史密斯首次公開了這項技術。

.NET二進制文件分析

MD5 hash: 4e0f9f47849949b14525c844005bb567
File name: ServiceHostV1000.exe

.NET二進制文件的主要子例程如圖所示:

.NET二進制文件的主要子例程

下面是此.NET二進制文件執行的主要操作:

它將HTTP GET請求發送到URL:misrmarket[.]xyz/files/app-provider/getApp,并將Content-type請求設置為:“application/json”。

下圖顯示了來自服務器的響應的內容,其中包含一個JSON文件。

包含JSON數據的服務器響應

此JSON文件包含三個鍵:

版本:設置為null

csproj:包含編譯C#項目時msbuild.exe使用的項目文件

cs:包含在運行時需要編譯的C#代碼。

  1. C#代碼使用 DataContractJsonSerializer類來解析服務器響應。.cs和.csproj文件被放置在%USERPROFILE%\ServiceTaskV1001位置,文件被命名為w.cs和w.csproj。

  2. 為了編譯C#代碼,它使用msbuild.exe。在計算機上檢查以找到msbuild.exe的.NET Framework3.5和4.0.x版本,如下圖所示:

.NET Framework版本的代碼部分

基于.NET的RAT分析

有效負載的MD5 Hash值:8f62d7499d5599b9db7eeddf9c01a061

系統信息收集

有效負載執行的第一個活動是收集有關系統的信息,如圖所示:

用于收集系統信息的代碼部分

從計算機收集有關以下屬性的信息:

  • bot ID:機器的唯一標識符

  • CPU名稱:處理器詳細信息

  • RAM –計算機上安裝的RAM總量

  • 用戶名

  • 主機名

  • 系統驅動器名稱

  • 系統目錄路徑

  • 正常運行時間

  • 操作系統類型:此字段設置為Windows。

計算唯一bot ID:有效負載首先計算機器的唯一標識符,它使用機器的各種屬性來計算這個ID,如下所示:

a = WMI查詢輸出一個“SerialNumber”字段:SELECT * FROM Win32_DiskDrive

b = WMI查詢輸出字段:SELECT * FROM Win32_Processor

c = WMI查詢輸出中的“Manufacturer”和“SerialNumber”字段:SELECT * FROM Win32_BaseBoard

d = WMI查詢輸出“Manufacturer”字段:SELECT * FROM Win32_BIOS

通過鏈接上述所有值(a,b,c和d),然后計算MD5的Hash值并使用所得MD5的Hash值前12個字符來計算最終ID。

可以表示為:MD5(a+b+c+d)[0:12]

加上整數15以以生成最終ID。

一旦從機器上收集了以上信息,它就會以HTTP POST請求的形式發送到服務器,如圖所示:

代碼部分,用于在命令與控制(C&C)服務器上注冊bot

該請求將發送到URL:hxxp://theashyggdrasil[.]xyz/api/clients/identifyClient, 并且Content-Type字段設置為“application/json”。感染后的第一個網絡請求用于使用具有唯一標識符的bot向攻擊者的服務器注冊。

網絡請求如圖所示:

在HTTP POST請求中發送到C&C服務器的系統信息

C&C

僵尸程序在服務器上注冊后,它將GET請求發送到以下路徑:/api/orders/getOrders/<bot_id>以獲取需要在機器上執行的命令。服務器響應將采用bot解析的JSON格式。

處理C&C通信的子例程如圖所示:

處理C&C通信的子例程

該程序支持四種操作,如下所述:

cmdExec:此操作允許攻擊者在計算機上執行代碼。通過解析JSON響應,檢索兩個成員的CmdReq結構,shellId命令。

cmdExec操作的子例程如圖所示:

處理cmdExec命令的子例程

如果命令等于***reset*shell***,則會在計算機上生成cmd.exe的新實例,如圖所示:

用于產生新外殼的子例程

對于任何其他命令,將使用同一外殼程序執行。

getDir:此命令可以檢索計算機上特定路徑中存在的所有文件的完整列表。

處理getDir命令的子例程

此信息將通過HTTP GET請求泄漏到服務器,該請求的路徑為:/api/files/onGetDirRun

uploadFile:此命令用于將文件從計算機上的給定路徑上載到攻擊者的服務器,如圖所示:

處理uploadFile C&C命令的子例程

AwsInfoRes是具有兩個成員的類:

  • uploadUrl

  • fileKey

通過將HTTP GET請求發送到以下路徑來從服務器檢索此信息:/api/assets/getAwsUploadUrl

從JSON響應中,提取uploadURL和fileKey值,通過將HTTP PUT請求發送到AwsInfoRes對象的uploadURL成員定義的URL中,對文件進行提取。

getScreenshot:此命令使攻擊者可以遠程獲取計算機的屏幕截圖,如圖所示:

處理getScreenshot命令的子例程

QuasarRAT代碼重疊

.NET二進制文件中有一小段代碼,其代碼與QuasarRAT重疊。重疊僅與QuasarRAT的StringHelper類一起使用。

下圖顯示了.NET二進制的部分代碼

與QuasarRAT重疊的代碼部分

這些功能與QuasarRAT中的StringHelper功能類似。但是,在這種情況下,.NET二進制文件中不會調用其中的大多數功能。

云沙箱檢測

下圖顯示了Zscaler Cloud Sandbox成功檢測到此基于文檔的威脅。

Zscaler Cloud沙箱檢測

除了檢測沙箱外,Zscaler的多層云安全平臺還可以檢測各個級別的指標,如下所示: Win32.RAT.ShellReset

結論

黑客們利用與當前事件(例如會議和展覽)相關的主題來傳播基于宏的惡意文檔。用戶應在打開此類文件之前要驗證其來源。

作為額外的預防措施,用戶不可隨便因為未知來源的Microsoft Office文件啟用宏,因為這些宏可以在計算機上隨意執行惡意代碼。

Zscaler ThreatLabZ團隊將繼續監視此攻擊以及其他攻擊,以幫助確保客戶安全。

MITRE ATT&CK TTP Mapping

IoCs

Hash

93f913f3b9e0ef3f5cedd196eae3f2ae
b34b74effbd8647c4f5dc61358e1555f
7bebf686b6e1d3fa537e8a0c2e5a4bdc
1d94b086996c99785f78bf484295027a

托管文檔的URL

hxxps://documentsharing.space/files/5G%20Expo.doc?clientEmail =
hxxps://documentsharing.space/files/FutureBuild.doc?clientEmail =
hxxps://misrmarket.xyz/files/Get%20Stared.doc
hxxps://consumerspost.xyz/files/Swissin-Voucher.doc

用于下載下一階段的URL

hxxps://misrmarket.xyz/files/app-provider/getApp
hxxps://misrmarket.xyz/files/app-provider/getLatestVersion
hxxps://centeralfiles.xyz/files/app-provider/getApp
hxxps://centeralfiles.xyz/files/app-provider/ getLatestVersion

感染后域

theashyggdrasil.xyz

感染后域中使用的API端點

/ api / cmd / onCmdRun
/ api / clients / identifyClient
/ api / assets / onCreated
/ api / assets / getAwsUploadUrl
/ api / files / onGetDirRun
/ api / orders / getOrders /


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1228/