當前位置:
首頁 > 新聞 > 德國用戶受Gootkit及REvil惡意軟體威脅

德國用戶受Gootkit及REvil惡意軟體威脅

早在11月23日,研究人員就收到了一位合作夥伴發出的關於德國Gootkit攻擊複發的警報。Gootkit是一個功能強大的銀行木馬,自2014年起就存在了,並且具有許多功能,例如旨在竊取與財務相關的信息的按鍵或視頻記錄。

在最新的活動中,攻擊者通過使用誘餌論壇模板來誘騙用戶下載惡意文件,從而依靠受到攻擊的網站對用戶進行社交工程。

在分析複雜的惡意軟體載入程序時,研究人員找到了一個令人驚訝的發現。受害者會收到Gootkit本身,或者在某些情況下會收到REvil(Sodinokibi)勒索軟體。在對犯罪基礎設施進行檢查之後,決定是否提供一個有效載荷。

在德國觀察到的Gootkit攻擊樣本

安全研究人員TheAnalyst於11月首次公開使用複雜的載入程序公開識別一個活躍的Gootkit攻擊樣本,該載入程序最終將幕後的主使者指向了Gootkit,此前Gootkit已經沉寂了好長一段時間了。德國的計算機緊急響應小組DFN-CERT後來證實,受到攻擊的網站已成為此次攻擊的目標。

大約在同一時間,研究人員開始從一些合作夥伴及其ISP收到有關Gootkit相關流量的報告。研究人員能夠在遙測範圍內確認所有位於德國的Gootkit檢測。

德國的Gootkit攻擊情況

幾天後,研究人員修復了600多台遭到破壞的計算機。

網站上的虛假論壇模板

初始載入程序通過被黑客攻擊的網站傳播,使用一種有趣的搜索引擎優化(SEO)技術定製虛假模板,試圖欺騙用戶下載文件。

該模板模仿一個論壇主題,在該主題中,用戶以德語詢問有關特定主題的幫助,並收到一個答案,該答案似乎正是他們所尋找的。值得注意的是,託管此模板的被黑網站不是德語(只有模板);它們只是很容易受到攻擊,並被用作攻擊基礎設施的一部分。

受攻擊網站會載入誘餌模板來欺騙受害者

如果正確的受害者瀏覽了受攻擊的網站,則攻擊者會有條件地動態創建此虛假的論壇帖子。腳本從DOM中刪除合法的網頁內容,並添加自己的內容(該模板顯示指向要下載的文件的鏈接)。

誘餌模板後面的HTML代碼視圖

每次訪問頁面之前,都要進行伺服器端檢查,以確定是否已經向用戶提供了假模板,在這種情況下,Web伺服器將返回合法內容。

無文件執行和模塊安裝

一旦受害者執行了他們剛剛下載的zip存檔中的惡意腳本,攻擊過程就開始了。

嚴重模糊處理的惡意腳本

此腳本是導致執行最終有效載荷的幾個階段中的第一個階段。下圖就是一個綜述:

攻擊流程

階段1:第一個JavaScript

第一個JavaScript模塊必須由受害者手動執行的,為了隱藏其真實意圖,它被模糊處理了。模糊處理由三層組成,上一層解碼下一層的內容。

第一階段就是對下一個元素進行解碼:

第一階段腳本

解碼後的輸出是一個逗號分隔的JavaScript塊數組:

用逗號分隔的腳本數組

數組中有四個元素由它們的索引引用,例如,索引為0的元素表示「構造函數」,1是另一個JavaScript代碼塊,2是空的,3是導致調用提供代碼的包裝器。

塊1負責讀取/寫入「HKEY_CURRENT_USER\SOFTWARE\

第三層JavaScript

此代碼段負責連接到C2,它從列表中獲取域,並逐個嘗試它們。如果得到響應,它將繼續運行。

上面的下載器腳本是載入過程的第一階段,在功能方面,它在所有被刪除的文件中幾乎是相同的。變體之間的區別將從下一部分開始,下一部分是從C2伺服器獲取的另一個JavaScript。

階段2:第二個JavaScript(從C2下載)

伺服器的預期響應是一個十進位字元串,其中包含用於驗證的偽隨機標記,需要在進一步處理之前將其移除,標記由?「@[request argument]@」組成。

使用C2伺服器的GET請求

轉換為ASCII後,將顯示下一個JavaScript,並執行代碼。該JavaScript帶有嵌入式PE有效載荷,該載荷可能是Gootkit的載入程序,也可能是REvil勒索軟體的載入程序。用於去模糊化的演算法也存在一些差異。

Gootkit變體示例

下載的JavaScript

下載的代碼塊負責安裝持久性攻擊元素,它還運行一個Powershell腳本,該腳本讀取存儲,對其進行解碼並進一步運行。

階段3:存儲的有效載荷和解碼Powershell

開發者還多樣化了編碼和存儲有效載荷的方法,在研究人員的測試中,他們觀察到了兩種編碼方式。在其中一種格式中,PE存儲為Base64編碼的字元串,而在另一種格式中存儲為十六進位字元串,通過用模式替換特定的數字來模糊處理。

有效載荷通常存儲為註冊表項列表,但是研究人員還觀察到了一種變體,其中類似的內容被寫入TXT文件中。

存儲在文件中的有效載荷示例:

有效載荷作為磁碟上的文件

該文件的內容是一個模糊處理的Powershell腳本,該腳本運行另一個Base64模糊處理的層,該層最終對.NET有效內容進行解碼。

用於對文件進行模糊處理的Powershell腳本示例:

"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -windowstyle hidden -Command "IEX (([System.IO.File]::ReadAllText("C:\Users\[username]\bkquwxd.txt")).Replace("~",""));"

下面研究人員將研究載入程序的兩個示例:一個導致執行REvil勒索軟體,另一個導致執行Gootkit。

示例1:載入REvil勒索軟體

下面的示例顯示了將PE文件編碼為模糊處理的十六進位字元串的變體,在分析的案例中,整個流程導致了REvil勒索軟體的執行。

執行第二階段JavaScript將導致有效載荷以密鑰列表的形式寫入註冊表。內容被編碼為十六進位,並略微模糊處理。

存儲在註冊表中的有效載荷片段,編碼為使用模式模糊處理的十六進位字元串

編寫密鑰後,JavaScript會部署一個PowerShell命令,該命令負責解碼和運行存儲的內容。

JS組件使用Base64編碼腳本部署PowerShell

腳本的解碼內容:

解碼後的內容

它從註冊表項中讀取內容,並通過替換模式來對其進行模糊處理。在給定的示例中,將十六進位字元串中的模式?「!@#」?替換為「1000」,然後在.NET Reflection的幫助下對PE進行解碼和載入。

下一階段的PE文件(.NET):

.NET載入程序帶有一個硬編碼的字元串,該字元串是下一階段的PE:最終的惡意載荷。PowerShell腳本調用的Setup函數負責解碼和運行下一個PE:

硬編碼字元串(PE)

部署有效載荷

載入程序藉助Process Hollowing法(PE注入的經典方法之一)進入下一階段。

REvil贖金記錄

示例2:載入Gootkit

在另一個常見變體中,有效載荷另存為Base64。註冊表項以以下格式組成一個PowerShell腳本:

$Command =[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("[content]")); Invoke-Expression $Command;Start-Sleep -s 22222;

存儲有效載荷的註冊表項

解碼base64編碼的內容後,研究人員得到另一個PowerShell腳本:

更多的PowerShell

它還附帶了另一個base64編碼的片段,該片段在Reflection Assembly的幫助下進一步解壓縮和載入。它是.NET二進位文件,與上一個類似。

該腳本從.NET模塊調用函數「Install1」。此函數載入另一個PE,該PE作為base64編碼的緩衝區嵌入其中:

另一個緩衝區

部署有效載荷

這次,載入程序使用另一種PE注入方法,即手動載入到父進程中。

顯示的有效載荷是Gootkit的第一階段二進位文件:60aef1b657e6c701f88fc1af6f56f93727a8f4af2d1001ddfa23e016258e333f。該PE用Delphi編寫。在其資源中,研究人員可以找到另一個PE(327916a876fa7541f8a1aad3c2270c2aec913bc8898273d545dc37a85ef7307f),該文件已通過XOR進行了單位元組模糊處理,它被第一個文件進一步載入。

總結

此活動背後的攻擊者使用了非常聰明的載入程序,就像是俄羅斯套娃一樣。該載入程序執行了許多步驟來逃避檢測。鑒於有效載荷是使用隨機命名的密鑰存儲在註冊表中的,因此許多安全產品將無法檢測到並刪除它。

但是,在某些情況下該載入程序會負責下載REvil勒索軟體。研究人員曾經能夠在實驗室中重現此流程,但大多數時候研究人員都發現的是Gootkit。

REvil組織對新成員有非常嚴格的規定,他們必須通過測試並必須為俄羅斯人。在研究人員收集到的REvil樣本中,他們注意到的一件事是,贖金記錄仍指向cryptoror.top而不是cryptoror.cc,這表明這可能是一個較舊的樣本。

銀行木馬是一種與勒索軟體截然不同的商業模式。勒索軟體在過去幾年中蓬勃發展,部分得益於知名受害者的巨額贖金。研究人員已經看到,銀行惡意軟體(即Emotet)變成了勒索軟體的載入程序,在這些載入程序中,不同的攻擊者可以專門研究其最擅長的領域。時間會告訴我們Gootkit的回歸到底意味著什麼,以及它將如何發展。

檢測與保護

Malwarebytes通過不同的保護層來防止、檢測和刪除Gootkit和REvil。當研究人員收集到了攻擊指標後,就能夠阻止傳播網站,使用戶不下載初始載入程序。

當JavaScript通過WinRar或7-Zip等壓縮文件應用打開時,研究人員基於行為的反利用層也可以阻止惡意載入程序,而不會產生任何簽名。

阻止腳本執行

如果系統已經攻擊了Gootkit,Malwarebytes可以通過清理Gootkit隱藏的註冊表項來補救:

檢測隱藏在註冊表中的有效載荷

最後,研究人員還會檢測並終止REvil(Sodinokibi)勒索軟體:

REvil勒索軟體被阻止

攻擊指標

參考及來源:https://blog.malwarebytes.com/threat-analysis/2020/11/german-users-targeted-with-gootkit-banker-or-revil-ransomware/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

深入考察解釋型語言背後隱藏的攻擊面,Part 1(上)
安卓GO SMS PRO仍在泄露照片及視頻問題