Jump to content

攻擊者NOBELIUM最近加強了通過基於電子郵件的攻擊,郵件釣魚攻擊自2021 年初以來一直在進行。我們將繼續監視這種主動攻擊活動,並發布更多詳細信息。在本文中,我們重點介紹了代表NOBELIUM 使用的獨特感染鏈的四個工具:EnvyScout、BoomBox、NativeZone 和VaporRage。據觀察,這些工具早在2021 年2 月就在野外使用,試圖攻擊各種敏感的外交和政府目標。

本文中討論的每個NOBELIUM 工具都是為靈活性而設計的,使使用者能夠隨著時間的推移適應場景。 NOBELIUM 的安全能力可能影響了該工具集的設計,該工具集為在潛在高風險和高對抗環境中的使用者提供了更好的隱藏功能。這些安全功能是:

使用可信通道:BoomBox是一款獨特開發的下載程序,用於從攻擊者控制的Dropbox帳戶獲取後期有效負載。所有初始通信都通過HTTPS利用Dropbox API。

環境分析:與NOBELIUM、BoomBox、VaporRage 和一些NativeZone 變體使用的其他工具一致,樣本會對受影響的系統環境進行一定程度的分析。

混淆:VaporRage 是一個獨特的shellcode 加載器,被視為第三階段的有效載荷。 VaporRage 可以完全在內存中下載、解碼和執行任意負載。這種設計和部署模式,其中還包括在受感染網站上暫存有效載荷,阻礙了傳統的工件和取證調查,允許獨特的有效載荷不被發現。

儘管自2020 年底SolarWinds 攻擊事件曝光以來,社區知名度不斷提高,但NOBELIUM 仍繼續以全球政府和外交實體為目標。我們預計,隨著這些業務的進展,NOBELIUM 將繼續完善其工具和策略,以面向全球目標。

0x01 EnvyScout:NV.html(惡意HTML 文件)NV.html被Microsoft 跟踪為EnvyScout,最好將其描述為一個能夠對惡意ISO 文件進行反混淆並將其寫入磁盤的惡意投放器。 EnvyScout 主要通過魚叉式網絡釣魚電子郵件的附件發送給NOBELIUM 的目標。

NV.html的HTML

組件#1:跟踪和憑據收集URL

img

在EnvyScout 的一種變體中,

第一個以file://協議處理程序為前綴,表示試圖誘使操作系統通過端口445 將敏感的NTLMv2 信息發送到指定的攻擊者控制的IP 地址。 攻擊者很可能正在運行憑據在這些事務的另一端捕獲服務,例如Responder。

第二個URL 在分析時解析為與前者相同的IP 地址,遠程獲取作為HTML 誘餌一部分的圖像。這種技術有時被稱為“網絡錯誤”,作為對NOBELIUM 的各種讀取返回,驗證預期目標是否已打開惡意附件。

組件#2:FileSaver JavaScript 幫助程序代碼

img

EnvyScout 的第二部分是開源工具FileSaver的修改版本,旨在幫助通過JavaScript 將文件寫入磁盤。該代碼直接從公開可用的變體中藉用,並進行了細微改動,包括去除空格、將十六進制參數轉換為十進制以及重命名變量。通過將此代碼與下面詳述的組件#3 和#4 相結合,NOBELIUM 有效地實現了HTML 走私方法。這種方法可以通過在執行時在動態更改的內容中隱藏已知惡意文件類型來規避對已知惡意文件類型的靜態分析。

https://github.com/eligrey/FileSaver.js

https://outflank.nl/blog/2018/08/14/html-smuggling-explained/組件#3:混淆的ISO 文件

img

EnvyScout 的第三部分包含存儲為編碼blob 的有效負載。此有效負載通過使用單字節密鑰對每個字符進行異或來解碼,然後生成Base64 有效負載,然後通過組件#2 和#4 解碼並寫入磁盤。

組件#4:去混淆器和釋放器腳本

img

EnvyScout 的最後一個組件是一個簡短的代碼片段,負責解碼Base64 編碼/XOR'd blob 中的ISO,並將其作為NV.img保存到磁盤,並使用mime 類型“application/octet-stream”。在感染的這個階段,用戶應該通過雙擊打開下載的ISO NV.img。

EnvyScout 變體#1:

img

在攻擊者的網絡釣魚活動的某些迭代版本中,EnvyScout 包含被window.location.pathname調用的守護進程,並利用其值來確保返回的字符數組中的前兩個條目是“C”和“:”。如果不滿足這個條件,表明樣本不是從C:驅動器執行,那麼嵌入的ISO 就不會寫入磁盤。

img

EnvyScout 變體#2:

img

在至少一個EnvyScout 實例中,我們觀察到了對正在執行的瀏覽器環境的進一步枚舉,其中用戶代理用於確定Windows 機器是否收到了ISO 負載。

1.NV.img(惡意ISO 文件)當目標用戶通過雙擊打開NV.img時,Windows 10 上的默認行為是在下一個可用驅動器上安裝ISO 映像。 Windows 資源管理器隨後會在一個窗口中顯示已安裝ISO 的內容,類似於用戶打開文件夾或壓縮檔案時看到的內容。

img

如上所示,掛載的ISO 包含一個可見文件,一個名為NV的快捷方式文件。但是,在Windows 中調整文件和文件夾設置以顯示隱藏文件和文件夾會暴露一個名為NV的隱藏文件夾和一個名為BOOM.exe的隱藏可執行文件:

img

用戶很可能會與NV.lnk進行交互,但是手動執行隱藏文件BOOM.exe也會導致系統被感染。下面詳細介紹了每個文件的各個內容。

2.NV.pdf(釣魚文件)掛載的ISO 中隱藏的NV 目錄包含一個名為NV.pdf的誘餌PDF 文件:

img

如本分析稍後所述,NV目錄的內容通過BOOM.exe顯示給用戶。

3.NV.lnk(惡意快捷方式)NV.lnk是隱藏文件BOOM.exe的快捷方式、啟動器。如下所示,該快捷方式利用了一個二進製文件(LOLBin) 來使用以下硬編碼的快捷方式目標值來代理BOOM.exe的執行:C:\Windows\System32\rundll32.exe c:\ windows\system32\advpack.dll,註冊OCX BOOM.exe。

img

還發現了此LNK 文件的變體,其中包含以下快捷方式目標值:C:\Windows\System32\cmd.exe /c start BOOM.exe。

圖標通常是文件夾,旨在誘使目標用戶認為他們正在打開文件夾的快捷方式。

還觀察到已知LNK 文件的以下目標:

C:\Windows\System32\rundll32.exe IMGMountingService.dll MountImgHelper

C:\Windows\System32\rundll32.exe diassvcs.dll InitializeComponent

C:\Windows\System32\rundll32.exe MsDiskMountService.dll DiskDriveIni

C:\Windows\system32\rundll32.exe data/mstu.dll,MicrosoftUpdateService

0x02 BoomBox:BOOM.exe(惡意下載器)BOOM.exe被微軟追踪為“BoomBox”,可以說是一個惡意下載程序。下載器負責下載和執行感染的下一階段組件。這些組件是從Dropbox 下載的(使用硬編碼的Dropbox Bearer/Access 令牌)。

執行時,BoomBox 確保在其當前工作目錄中存在名為NV 的目錄。如果該目錄存在,BoomBox 會在新的Windows 資源管理器窗口中顯示NV目錄的內容(讓用戶打開PDF 文件)。

img

接下來,BoomBox 確保系統上不存在以下文件:%AppData%\Microsoft\NativeCache\NativeCacheSvc.dll(此文件將在本分析的後面部分介紹)。 BoomBox 會枚舉受害者係統的各種受害者主機信息,例如受害者係統的主機名、域名、IP 地址和用戶名,以編譯以下字符串:

img

接下來,BoomBox 使用硬編碼的加密密鑰“123do3y4r378o5t34onf7t3o573tfo73”和初始化向量(IV) 值“1233t04p7jn3n4rg”對上面的主機信息字符串進行加密。為了將數據偽裝成PDF 文件的內容,BoomBox 將PDF 的magic標記添加到上面的AES 加密主機信息字符串中:

img

BoomBox 繼續將上述數據(偽裝成PDF 文件)上傳到Dropbox 中的一個專門針對每個受害者的系統文件夾。出於演示目的,下麵包含用於將文件/數據上傳到Dropbox 的示例HTTP(s) POST 請求。

img

為確保文件已成功上傳到Dropbox,BoomBox 使用一組正則表達式值來檢查來自Dropbox 的HTTP 響應。如下所示,正則表達式用於檢查從Dropbox 收到的HTTP 響應中是否存在is_downloadable、path_lower、content_hash和size字段。值得注意的是,即使上傳操作不成功,BoomBox 也會忽略此檢查的結果並繼續進行。

img

接下來,BoomBox 從Dropbox 下載加密文件。出於演示目的,下面顯示了用於從Dropbox 下載加密文件的示例HTTP(s) POST 請求。

img

從Dropbox 成功下載加密文件後,BoomBox 丟棄加密文件頭部的前10 個字節和尾部的7 個字節,然後使用硬編碼的加密密鑰“123do3y4r378o5t34onf7t3o573tfo73”和IV 值對文件的其餘部分進行AES 解密“1233t04p7jn3n4rg”。 BoomBox 將解密後的文件寫入文件系統%AppData%\Microsoft\NativeCache\NativeCacheSvc.dll。然後,它通過創建名為MicroNativeCacheSvc的Run 註冊表值來為NativeCacheSvc.dll建立持久性:

HKCU\Software\Microsoft\Windows\CurrentVersion\Run\MicroNativeCacheSvc

Run 註冊表值使用以下命令填充,該命令用於使用rundll32.exe並通過調用其名為“ _configNativeCache ”的導出函數來執行NativeCacheSvc.dll:

rundll32.exe %AppData%\Microsoft\NativeCache\NativeCacheSvc.dll _configNativeCache

接下來,BoomBox 從Dropbox 路徑/tmp/readme.pdf下載第二個加密文件,丟棄加密文件頭部的前10 個字節和結尾的7 個字節,然後對文件的其餘部分進行AES 解密(使用與上述相同的AES IV 和密鑰)。它在%AppData%\SystemCertificates\CertPKIProvider.dll 中寫入解密文件,然後使用與上面相同的rundll32.exe命令繼續執行先前刪除的文件NativeCacheSvc.dll。

如果系統已加入域,BoomBox 會執行LDAP 查詢以通過過濾器((objectClass=user)收集所有域用戶的專有名稱、SAM 帳戶名稱、電子郵件和顯示名稱等數據) (objectCategory=person))。

img

枚舉數據經過AES 加密(使用與之前相同的IV 和密鑰),封裝在偽造的PDF 文件中,並上傳到Dropbox 路徑/new/

0x03 NativeZone:NativeCacheSvc.dll(惡意加載器)NativeCacheSvc.dll,被稱為“NativeZone”,最恰當的描述是一個惡意加載器,它負責利用rundll32.exe加載惡意下載組件CertPKIProvider.dll。

NativeCacheSvc.dll的惡意功能位於configNativeCache的DLL 導出函數中。

img

如上所示,導出函數通過調用名為eglGetConfigs的導出函數執行rundll32.exe來加載*%AppData%\SystemCertificates\Lib\* CertPKIProvider.dll。

0x04 VaporRage:CertPKIProvider.dll(惡意下載器)CertPKIProvider.dll,被稱為“VaporRage”,被描述為一個shellcode 下載器。此版本的VaporRage 包含11 個導出函數,包括eglGetConfigs,它包含DLL 的惡意功能。

img

正如前面所提到的,NativeZone利用RUNDLL32.EXE執行eglGetConfigs的導出功能CertPKIProvider.dll。執行時,導出函數首先確保系統上存在NativeZone DLL %AppData%\Microsoft\NativeCache\NativeCacheSvc.dll(否則會終止)。接下來,導出功能向合法但受到攻擊的WordPress 站點holescontracting[.]com發出HTTP(s) GET 請求。 GET 請求由動態生成和硬編碼的值組成,例如:

img

GET 請求的目的是首先將系統註冊為受到威脅,然後從WordPress 站點下載XOR 編碼的shellcode blob。成功下載後,導出函數XOR 對shellcode blob 進行解碼(使用硬編碼的多字節XOR 密鑰“346hrfyfsvvu235632542834”)。

img

然後通過跳轉到可執行內存區域中shellcode blob 的開頭,繼續在內存中執行解碼的shellcode。下載、解碼、執行過程無限期地重複,大約每小時一次,直到從內存中卸載DLL。 VaporRage 可以執行其C2 服務器提供的任何兼容shellcode,包括Cobalt Strike 階段shellcode。

定制Cobalt Strike 加載器NOBELIUM 使用了多個自定義Cobalt Strike Beacon 加載器(可能使用自定義Artifact Kit 模板生成)來啟用其惡意活動。其中包括TEARDROP、Raindrop 和其他自定義加載器。

img

新的加載器DLL 包含誘餌導出名稱和函數,以及從合法應用程序借用的代碼和字符串。新的NativeZone 加載器可以分為兩種變體:

變體#1:這些加載器嵌入了編碼/加密的Cobalt Strike Beacon shellcode

變體#2:這些加載器從另一個附帶文件(例如,RTF 文件)加載編碼/加密的Cobalt Strike Beacon shellcode。

在接下來的部分中,我們將討論我們在調查中觀察到的一些新的NativeZone Cobalt Strike Beacon 變體。

NativeZone 變體#1與之前的NOBELIUM 自定義Cobalt Strike 加載器(例如TEARDROP 和Raindrop)類似,這些NativeZone 加載器負責解碼/解密嵌入式Cobalt Strike Beacon 階段shellcode 並在內存中執行它。一些NativeZone 加載程序具有反分析反調試功能以阻止對樣本的分析。

在這些版本的NativeZone 中,攻擊者使用了各種編碼和加密方法來混淆嵌入的shellcode。例如,在下面的示例中,NativeZone 變體使用簡單的字節交換解碼算法來解碼嵌入的shellcode:

img

img

另一個示例採用不同的解碼方法來解碼嵌入式shellcode,如下所示:

img

另一個示例採用去混淆方法,利用AES 加密算法解密嵌入的shellcode,如下所示:

img

下面顯示了另一個利用AES 解密嵌入式Cobalt Strike shellcode blob 的NativeZone 示例:

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...