瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

我們的網路安全調查團隊最近調查了一家中型公司的幾乎完全感染加密貨幣挖礦病毒的網路。 分析
收集的惡意軟體樣本顯示發現了新的修改
這種病毒,稱為 諾曼,使用各種方法隱藏其存在。 另外還發現 互動式網路外殼,這可能與採礦經營者有關。

研究概述

  • Varonis公司發現了大規模的加密貨幣挖礦軟體感染:公司幾乎所有伺服器和工作站都感染了此類軟體
  • 自一年多前首次感染以來,修改和受感染設備的數量穩步增加
  • 我們發現了一種新型門羅幣加密挖礦程式(Norman),它使用各種方法隱藏其不被安全軟體分析,以避免檢測到
  • 大多數惡意軟體變體使用 DuckDNS(免費的動態 DNS 服務)連接到控制中心(C&C 伺服器)並獲取配置參數或發送新數據
  • Norman是一款基於開源礦機-XMRig的高性能門羅幣加密貨幣礦機
  • 我們還沒有無可辯駁的證據將加密貨幣礦工與互動式 PHP shell 連結起來。 然而,有充分的理由相信它們來自同一攻擊者。 研究人員正在收集更多證據來證明這種關聯是否存在。
  • 在本文中,您可以熟悉 Varonis 關於防範遠端 Web shell 和加密貨幣挖礦程序的建議

調查

調查在下一個試點計畫期間開始 平台
網路安全瓦羅尼斯
(Varonis 資料安全平台),可以在網際網路要求期間(透過網路代理)快速識別網路層級的多個可疑異常事件,這些事件與檔案系統上的異常操作相關。
客戶立即指出我們平台識別的設備
屬於最近報告應用程式崩潰和網路速度下降的同一用戶。

我們的團隊手動檢查了客戶的環境,根據 Varonis 平台產生的警報從一個受感染的站點移動到另一個站點。 事件回應小組制定了一項特殊規則 數據警報模組 檢測正在積極挖礦的計算機,這有助於快速消除威脅。 收集到的惡意軟體樣本已發送給取證和開發團隊,他們建議有必要對樣本進行進一步檢查。
受感染的節點是由於它們發出的呼叫而被發現的 鴨子DNS,一種動態 DNS 服務,允許使用者建立自己的網域並將其快速映射到不斷變化的 IP 位址。 如上所述,事件中的大多數惡意軟體存取 DuckDNS 以連接到控制中心 (C&C),而其他惡意軟體則存取配置參數或發送新資料。

幾乎所有伺服器和電腦都感染了惡意軟體。 主要用於
加密貨幣礦工的常見變體。 其他惡意軟體包括密碼轉儲工具和 PHP shell,而許多工具已經運行了好幾年。

我們向客戶提供了結果,從他們的環境中刪除了惡意軟體,並阻止了進一步的感染。

在所有已發現的加密貨幣礦工樣本中,有一個脫穎而出。 我們給他取了個名字 諾曼.

見面! 諾曼. 加密礦工

Norman 是基於 XMRig 代碼的高性能門羅幣加密貨幣挖礦程序。 與發現的其他礦工樣本不同,諾曼使用技術隱藏其不被安全軟體分析,以逃避檢測並防止進一步傳播。

乍一看,這個惡意軟體是一個隱藏在 svchost.exe 名下的普通挖礦程式。 然而,研究發現它使用了更有趣的方法來隱藏檢測並保持運作。

此惡意軟體的部署過程可分為三個階段:

  • 表現;
  • 執行;
  • 礦業。

逐步分析

第一階段:執行

第一階段從可執行檔 svchost.exe 開始。

該惡意軟體是使用 NSIS(Nullsoft 腳本安裝系統)編譯的,這很不尋常。 NSIS 是一個用於建立 Windows 安裝程式的開源系統。 與 SFX 一樣,該系統會建立檔案存檔和安裝程式執行時執行的腳本檔案。 腳本文件告訴程式要執行哪些文件,並可以與存檔中的其他文件互動。

注: 要從可執行檔取得 NSIS 腳本文件,您必須使用 7zip 版本 9.38,因為更高版本不會實現此功能。

NSIS 檔案的惡意軟體包含以下檔案:

  • CallAnsiPlugin.dll、CLR.dll - 用於呼叫 .NET DLL 函數的 NSIS 模組;
  • 5zmjbxUIOVQ58qPR.dll - 主要有效負載 DLL;
  • 4jy4sobf.acz、es1qdxg2.5pk、OIM1iVhZ.txt - 有效負載檔;
  • Retreat.mp3、Cropped_controller_config_controller_i_lb.png 只是與進一步惡意活動無關的檔案。

下面給出了運行負載的 NSIS 腳本檔案中的命令。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

該惡意軟體透過呼叫5zmjbxUIOVQ58qPR.dll函數來執行,該函數將其他檔案作為參數。

第二階段:實施

從上面的 NSIS 腳本可以看出,檔案 5zmjbxUIOVQ58qPR.dll 是主要有效負載。 對元資料的快速分析顯示,該 DLL 最初名為 Norman.dll,因此我們將其命名為 Norman.dll。

DLL 檔案是在 .NET 中開發的,並透過三重混淆來防止逆向工程
使用著名的商業產品Agile .NET Obfuscator。

在執行過程中,自註入的許多操作都涉及自己的進程,也涉及其他進程。 根據作業系統位元深度,惡意軟體將
選擇系統資料夾的不同路徑並啟動不同的進程。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

根據系統資料夾路徑,惡意軟體將選擇不同的進程來運行。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

注入的有效負載有兩個主要功能:執行加密挖礦程序和防止偵測。

如果作業系統是 64 位元

當執行原始 svchosts.exe 檔案(NSIS 檔案)時,它會建立自己的新進程並將有效負載 (1) 注入其中。 不久之後,它啟動 notepad.exe 或 explorer.exe,並向其中註入 cryptominer (2)。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

此後,原來的svchost.exe檔退出,新的svchost.exe檔作為監控礦工進程的程式。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

如果作業系統是 32 位元

當原始 svchosts.exe 檔案(NSIS 檔案)運行時,它會複製自己的進程並將有效負載注入其中,就像 64 位元版本一樣。

在這種情況下,惡意軟體會將有效負載注入使用者的 explorer.exe 進程中。 從那裡,惡意程式碼啟動一個新進程(wuapp.exe 或 vchost.exe)並向其中註入礦工。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

該惡意軟體透過使用 wuapp.exe 的路徑和空值覆蓋先前註入的程式碼,隱藏了它已將自身註入 explorer.exe 的事實。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

與在 64 位元環境中執行時的情況一樣,原始 svchost.exe 進程會退出,如果使用者終止該進程,第二個進程將用於將惡意程式碼重新註入 explorer.exe 中。

在執行演算法結束時,惡意軟體總是將加密挖礦程式註入到其啟動的合法進程中。

它旨在透過在使用者啟動任務管理器時終止挖礦程序來防止檢測。

請注意,啟動工作管理員後,wuapp.exe 進程就會結束。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

關閉工作管理員後,惡意軟體會一遍又一遍地啟動wuapp.exe進程
礦工將其註入其中。

第三階段:礦工

考慮上面提到的 XMRig 礦工。

該惡意軟體將偽裝的 UPX 版本的礦工注入記事本、exe、explorer.exe、
svchost.exe 或 wuapp.exe,取決於作業系統位元深度和執行演算法的階段。

礦機中的 PE 標頭已被刪除,在下面的螢幕截圖中我們可以看到它被 UPX 屏蔽。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

創建轉儲並重建可執行檔後,我們可以運行它:

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

應該注意的是,對目標 XMR 站點的訪問被拒絕,這有效地壓制了該礦工。

礦機配置:

"url": "pool.minexmr.com:5555","user":
"49WvfokdnuK6ojQePe6x2M3UCD59v3BQiBszkuTGE7wmNJuyAvHM9ojedgxMwNx9tZA33P84EeMLte7t6qZhxNHqHyfq9xA","pass":"x"

神秘的 PHP shell 將資料傳遞給 C&C

在調查過程中,我們的取證團隊發現了一個引起他們注意的 XSL 文件。 經過對樣本的深入分析,發現了一個新的PHP shell,不斷連接到控制中心(C&C伺服器)。

在客戶環境中的多個伺服器上發現了一個 XSL 文件,該文件是由 sysWOW64 目錄中的資料夾中的已知 Windows 可執行檔 (mscorsv.exe) 啟動的。

該惡意軟體資料夾名為 AutoRecover,包含 幾個文件:

  • XSL 檔案:xml.XSL
  • 九個DLL文件

可執行檔:

  • 可執行程式
  • 執行程式

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

XSL文件

XSL 檔案是樣式表,類似於 CSS 中使用的樣式表,描述如何顯示 XML 文件。

使用記事本,我們確定它實際上不是 XSL 文件,而是被 Zend Guard 混淆的 PHP 程式碼。 這個奇怪的事實表明
基於其執行演算法的惡意軟體的有效負載。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

九個 DLL

對 XSL 文件的初步分析得出這樣的結論:存在這樣的數字
DLL有一定的意義。 主資料夾包含一個名為 php.dll 的 DLL 以及與 SSL 和 MySQL 相關的其他三個函式庫。 在子資料夾中,專家發現了 XNUMX 個 PHP 函式庫和 XNUMX 個 Zend Guard 函式庫。 它們都是合法的,並且是從 PHP 安裝包或外部 dll 中獲取的。

在此階段,假設該惡意軟體是基於 PHP 創建的,並由 Zend Guard 進行了混淆。

執行檔

此資料夾中還有兩個執行檔:Mscorsv.exe 和 Wmiprvse.exe。

在分析 mscorsv.exe 檔案後,我們確定它沒有經過 Microsoft 簽名,儘管其 ProductName 參數設定為「Microsoft. 網路框架」。
起初這看起來很奇怪,但分析 Wmiprvse.exe 讓我們更了解情況。

Wmiprvse.exe 檔案也未簽名,但包含 PHP 群組版權符號和 PHP 圖示。 快速瀏覽它的行,就會發現 PHP 幫助中的指令。 當使用 -version 開關執行時,發現它是一個旨在運行 Zend Guard 的可執行檔。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

以類似方式啟動 mscorsv.exe 時,螢幕上顯示相同的資料。 我們比較了這兩個檔案的二進位數據,發現除了元資料之外,它們是相同的
版權和公司名稱/產品名稱。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

據此得出結論,XSL 檔案包含使用 Zend Guard 執行檔運行的 PHP 程式碼,隱藏在名稱 mscorsv.exe 下。

解析 XSL 檔案

透過網路搜索,專家很快就獲得了Zend Guard反混淆工具,並恢復了xml.XSL檔案的原始外觀:

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

原來,惡意軟體本身就是一個 PHP shell,不斷連接到控制中心(C&C 伺服器)。

它發送和接收的命令和輸出都是加密的。 由於我們擁有原始程式碼,因此我們擁有加密金鑰和命令。

該惡意軟體包含以下內建功能:

  • Eval - 通常用於修改程式碼中的現有變數
  • 本地檔案錄製
  • 使用資料庫的可能性
  • 與 PSEXEC 合作的可能性
  • 隱藏執行
  • 繪圖流程與服務

以下變數表示該惡意軟體有多個版本。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

在採集樣本時,發現了以下版本:

  • 0.5f
  • 0.4p
  • 0.4o

確保系統上持續存在惡意軟體的唯一功能是,在執行時,它會建立一個自行執行的服務及其名稱
版本之間的變化。

專家試圖在網路上尋找類似樣本,結果發現了惡意軟體
他們認為,這是現有樣本的先前版本。 該資料夾的內容相似,但 XSL 檔案不同且具有不同的版本號。

Parle-Vu 惡意軟體?

該惡意軟體可能起源於法國或其他法語國家:SFX 檔案有法語註釋,表明作者使用法語版本的 WinRAR 來創建它。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

而且,程式碼中的一些變數和函數也用法語命名。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

監控執行並等待新命令

專家修改了惡意軟體程式碼並安全地啟動了已修改的
版本來收集有關其收到的命令的資訊。

瓦羅尼斯發現了一種加密挖礦病毒:我們的調查

在第一次通訊會話結束時,專家發現惡意軟體收到了一條使用 Base64 編碼的命令作為 EVAL64 啟動密鑰的參數。
該命令被解碼並執行。 它會更改幾個內部變數(讀取和寫入緩衝區大小),之後惡意軟體進入等待命令的工作週期。

目前,尚未收到新的命令。

互動式 PHP shell 和 cryptominer:它們有關係嗎?

Varonis 專家不確定 Norman 是否與 PHP shell 有關,因為支持和反對這一假設都有強有力的論點:

為什麼它們可能有關聯?

  • 儘管在各個網段的各種設備上都發現了惡意加密貨幣挖礦軟體樣本,但它們都沒有能力獨立傳播到其他系統。 攻擊者有可能分別感染每個節點(可能使用與感染零號患者相同的攻擊向量),儘管使用 PHP shell 在作為攻擊目標的整個網路中傳播會更有效。
  • 針對特定組織的大規模、有針對性的自動化活動通常會留下技術工件或可識別的網路安全威脅痕跡。 在這種情況下,沒有發現任何此類情況。
  • Norman 和 PHP shell 都使用了 DuckDNS 服務。

為什麼他們可能沒有關係?

  • 加密挖礦惡意軟體變體和 PHP shell 之間沒有技術相似之處。 惡意挖礦程式是用 C++ 創建的,外殼是 PHP 的。 而且,程式碼結構也沒有相似之處,網路功能的實作也不同。
  • 惡意軟體變體和 PHP shell 之間沒有直接通訊交換資料。
  • 他們不共享開發人員評論、文件、元數據或數位指紋。

防禦遠端 shell 的三個建議

惡意軟體與常規病毒不同,它需要控制中心(C&C 伺服器)的命令才能運作。 他的行為不太可預測,更類似於駭客或滲透測試人員在沒有自動化工具或腳本的情況下執行的行為。 因此,在沒有惡意軟體簽章的情況下偵測這些攻擊比常規防毒掃描更具挑戰性。

以下是保護公司免受遠端 shell 攻擊的三項建議:

  1. 保持所有軟體最新
    攻擊者經常利用軟體和作業系統中的漏洞在組織的網路中傳播並搜尋感興趣的數據,以便
    盜竊。 及時修補可以顯著降低此類威脅的風險。
  2. 監控異常資料存取事件
    最有可能的是,攻擊者會試圖將組織的機密資料帶出邊界。 監控對此資料的異常存取事件將允許
    檢測受感染的用戶以及實際上可能落入攻擊者手中的整套資料夾和文件,而不僅僅是考慮這些用戶可用的所有資料。
  3. 監控網路流量
    使用防火牆和/或代理伺服器可以偵測並阻止與惡意軟體控制中心(C&C 伺服器)的惡意連接,從而防止攻擊者執行命令並使攻擊變得更加困難
    週長數據。

關注灰色挖礦問題? 六大防護建議:

  1. 讓所有作業系統保持最新狀態
    補丁管理對於防止資源濫用和惡意軟體感染非常重要。
  2. 控製網路流量和網路代理
    這樣做是為了偵測某些攻擊,並防止其中一些攻擊,您可以根據有關惡意網域的資訊阻止流量或限制不必要的資料傳輸通道。
  3. 使用和維護防毒解決方案和端點安全系統 (但絕不限於僅使用這一層保護)。
    端點產品可以檢測知名的加密貨幣挖礦程序,並在感染對系統性能和能源使用造成損害之前預防感染。 請注意,阻止檢測的新修改或新方法可能會導致端點安全性無法偵測相同惡意軟體的新版本。
  4. 監控電腦CPU活動
    通常,加密貨幣礦工使用電腦的中央處理器進行挖礦。 有必要分析有關效能下降的任何訊息(「我的電腦已開始變慢。」)。
  5. 監控 DNS 動態 DNS 服務(如 DuckDNS)的異常使用

    儘管 DuckDNS 和其他動態 DNS 服務本質上不會對系統有害,但惡意軟體對 DuckDNS 的使用使我們的調查團隊更容易偵測受感染的主機。

  6. 制定事件回應計劃
    確保您針對此類事件製定了必要的程序,以自動偵測、遏制和減輕灰色加密貨幣挖礦的威脅。

Varonis 客戶請注意。
Varonis 數據警報 包括能夠偵測加密挖礦惡意軟體的威脅模型。 客戶還可以建立自訂規則,以根據列入黑名單的候選領域進行目標軟體偵測。 為確保您運行最新版本的 DatAlert 並使用正確的威脅模型,請聯絡您的銷售代表或 Varonis 支援。

來源: www.habr.com

添加評論