譯者:知道創宇404實驗室翻譯組
原文鏈接:https://www.fortinet.com/blog/threat-research/deep-analysis-the-eking-variant-of-phobos-ransomware

前言

Phobos 勒索軟件 自2019年初被安全研究人員首先發現后,不斷推出新的變型,這些變型不僅進化了攻擊方法,還頻繁更改過去變型中加密文件的擴展名。

兩周前,FortiGuard實驗室采集了一個新的威脅樣本。這是一個Microsoft Word文檔,它帶有一個惡意宏,旨在傳播Phobos的EKING變型。在本篇文章中,我將展示此變型如何感染受害者的系統,以及它如何使用AES算法在受害者設備和共享網絡文件夾上掃描和加密文件。

在MS Office Word中打開捕獲的示例

打開Word文檔后,它會顯示一條警告,指示受害者單擊黃色欄中的“enablecont”按鈕以啟用宏,如圖1.1所示。

由于宏可能包含惡意代碼,因此默認情況下,MS Office Word會顯示“安全警告”,警告用戶該文檔可能存在風險。然后,用戶可以決定是否執行宏(通過單擊“Enable Content”按鈕)。

圖1.1  MS Office Word中的樣本內容

圖1.1 MS Office Word中的樣本內容

通過查看宏代碼,我發現它具有一個名為Document_Close()的內置事件函數,當MS Office Word退出時會自動調用該函數。換句話說,惡意宏代碼是在受害者關閉文檔時執行的。這還具有繞過某些沙箱解決方案進行檢測的好處(FortiSandbox將該惡意Word附件檢測為風險軟件。)

它從打開的樣本中提取一個base64編碼的塊到本地文件“ C:\ Users \ Public \ Ksh1.xls”。通過調用命令“ Certutil -decode C:\ Users \ Public \ Ksh1.xls C:\ Users \ Public \ Ksh1.pdf ”將文件解碼為另一個文件。“ Ksh1.pdf”是base64解碼的文件的PE文件(DLL文件)。 圖1.2 是宏代碼的屏幕截圖,顯示了將在何處執行將base64文件“ Ksh1.xls”解碼為“ Ksh1.pdf”的命令。

圖1.2  宏到base64解碼提取的文件

圖1.2 宏到base64解碼提取的文件

宏的最后一項任務是通過執行命令“ Rundll32 C:\ Users \ Public \ Ksh1.pdf,In ”來執行解碼的PE文件“ Ksh1.pdf ”。解碼后的PE文件“ Ksh1.pdf”是一個具有導出功能“ In ”的DLL文件,由上述命令行中的“ Rundll32.exe”調用。

圖1.3  導出功能的ASM代碼在

圖1.3 導出功能的ASM代碼在

圖1.3顯示了“ Ksh1.pdf”的導出功能“ In”的ASM代碼。可以很容易地理解它首先在“ C:\ Users \ Public \ cs5”處創建了一個新目錄。它通過以下方式將文件從URL“ hxxp:// 178 [.] 62 [.] 19 [.] 66 / campo / v / v”下載到文件“ C:\ Users \ Public \ cs5 \ cs5.exe”中調用API“ URLDownloadToFile()”。最后,它通過調用API“ CreateProcessA()”來運行下載的“ cs5.exe”文件。順便說一下,下載URL字符串和完整文件路徑字符串是硬編碼在DLL文件“Ksh1.pdf”中的。有趣的是,下載的文件“ cs5.exe”是Phobos的有效負載文件。

查看有效載荷EXE文件

“ C:\ Users \ Public \ cs5 \ cs5.exe”是Phobos的EKING變體的有效載荷,它受到未知包裝器的保護,如圖2.1中的Exeinfo PE所示。

圖2.1  受保護的Phobos有效載荷EXE文件

圖2.1 受保護的Phobos有效載荷EXE文件

Phobos具有AES加密的配置塊,其中包含許多配置信息(此變體中為69項)。它們在與索引編號參數一起使用之前在函數中解密。它還包含用于加密文件的新擴展名字符串,用于生成用于加密文件的密鑰的數據,文件排除列表,Phobos的版本信息,受害者的贖金信息等。

在圖2.2中,我們可以看到解密加密文件“ .id [<< ID >>-2987]。[wiruxa@airmail.cc] .eking”2新擴展名的示例,其索引號為0x04。根據一個索引號為0x33解密字符串“ [<< ID >>-2987] v2.9.1”,我們知道此變體的版本為v2.9.1。

圖2.2  從配置塊解密新的擴展

圖2.2 從配置塊解密新的擴展

啟動第二個進程并執行兩組命令

當“ cs5.exe”運行時,它通過調用API CreateProcessWithTokenW()以及來自Explorer.exe進程創建自身的第二個進程,以便第二個進程在Explorer.exe令牌的安全上下文中運行。這樣,它就具有在受害者的系統上讀寫更多文件所需的特權。

Phobos在兩個創建的線程中執行兩組命令。

下面列出了第一組命令以及我添加的注釋:

*vssadmin delete shadows / all / quiet* –刪除該卷的所有卷影副本。 *wmic shadowcopy delete* –從本地計算機刪除卷影副本。 *bcdedit / set {*default*} bootstatuspolicy ignoreallfailures bcdedit / set {*default*} recoveryenabled no* –禁用自動啟動修復功能。 *wbadmin delete catalog –quiet* –刪除備份目錄。 *exit*

通過刪除Windows系統為系統還原創建的卷影副本,受害者無法使用它來還原加密的文件。它還可以防止受害者從自動啟動修復或備份目錄中還原文件。

第二組命令關閉了受感染系統上的Windows防火墻,如下所示。

*netsh advfirewall將currentprofile狀態設置為off* –針對Windows 7和更高版本。 *netsh防火墻設置opmode模式=禁用* –針對Windows XP,Windows 2003版本。 exit

添加自動運行項目

該惡意軟件還從加密的配置塊中解密字符串“ Software \ Microsoft \ Windows \ CurrentVersion \ Run”(索引號為0x11),這是注冊表子密鑰路徑。然后,它為兩個根鍵HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER的相同子鍵創建一個自動運行項“ cs5”。圖4.1是根鍵“ HKEY_CURRENT_USER”下添加的自動運行項的屏幕截圖。

圖4.1。 添加了自動運行項目“ cs5”

圖4.1添加了自動運行項目“ cs5”

除了將此項添加到系統注冊表中的自動運行組之外,它還將“ cs5.exe”復制到兩個自動啟動文件夾中:“%AppData%\ Microsoft \ Windows \ Start Menu \ Programs \ Startup”和“%ProgramData” %\ Microsoft \ Windows \開始菜單\程序\啟動”。圖4.2顯示了將“ cs5.exe”復制到兩個啟動文件夾中的ASM代碼片段。

圖4.2。 將有效負載文件復制到啟動文件夾中

圖4.2將有效負載文件復制到啟動文件夾中

Windows啟動時,這兩個文件夾中的可執行文件由Windows系統自動執行。這意味著Windows將在啟動時啟動四個“ cs5.exe”文件以維護惡意軟件的生存。Phobos具有一種使用Mutex對象來確保僅一個進程正在運行的機制。如果存在相同的互斥對象,其他“ cs5.exe”進程將退出。

Phobos在受害者系統上執行的核心任務

勒索軟件的核心任務是加密受害者的文件,然后要求勒索以解密那些加密的文件。在本節中,我將向您展示Phobos的EKING變體如何執行此任務。

為了提高性能,它創建了多個線程來掃描和加密受害者系統上的文件。此外,它使用大量Event對象來控制和同步這些線程的進度。

1.終止進程的線程

它從啟動線程開始,以防止終止包含列出的41個進程名稱的名稱列表中的指定進程,如下所示。您可能已經猜到,名稱列表也是從配置塊中以索引號0x0a解密的。

*msftesql.exe; sqlagent.exe; sqlbrowser.exe; sqlservr.exe; sqlwriter.exe; oracle.exe; ocssd.exe; dbsnmp.exe; synctime.exe; agntsvc.exe; mydesktopqos.exe; isqlplussvc.exe; xfssvccon。 exe; mydesktopservice.exe; ocautoupds.exe; agntsvc.exe; agntsvc.exe; agntsvc.exe; encsvc.exe; firefoxconfig.exe; tbirdconfig.exe; ocomm.exe; mysqld.exe; mysqld-nt.exe; mysqld- opt.exe; dbeng50.exe; sqbcoreservice.exe; excel.exe; infopath.exe; msaccess.exe; mspub.exe; onenote.exe; outlook.exe; powerpnt.exe; steam.exe; thebat.exe; thebat64。 exe; thunderbird.exe; visio.exe; winword.exe; wordpad.exe*

這個進程名列表已經被發現多次被其他勒索軟件用來做同樣的動作。

這些進程屬于MS SQL Server、Oracle數據庫、VMware、Panda Security、MySql、FireFox、SQL Anywhere、RedGate SQL Backup、MS Excel、MS Word、MS Access、MS PowerPoint、MS Publisher、MS OneNote、MS Outlook、Bat等產品、Thunderbird、寫字板等。

Phobos會繼續終止這些應用程序,以迫使它們釋放當前打開的任何文件,以便Phobos可以對其進行加密。

2.掃描要加密的文件的線程

該線程的線程函數調用API GetLogicalDrives()來調用受害系統上的所有邏輯驅動器,例如“ C:\”,“ D:\”,“ E:\”等等。它為每個邏輯驅動器創建兩個掃描線程。這意味著每個邏輯驅動器中的文件由兩個線程處理。

圖5.1。 忽略兩個系統文件夾

圖5.1忽略兩個系統文件夾

為了避免破壞受害者的Windows系統,它會忽略對兩個系統文件夾及其子文件夾下的加密文件,它們分別是“%WinDir%”(通常是“ C:\ Windows”)和“%ProgramData%\ Microsoft \ Windows \ Caches” 。圖5.1顯示了Phobos能夠檢測當前路徑(“ \?\ D:”)是否與它需要忽略的兩個系統文件夾匹配。

如前所述,它創建了兩個線程來掃描每個邏輯驅動器的文件。一個線程用于普通掃描(一個文件接一個文件),另一個線程僅用于與數據庫相關的文件的特殊掃描。我可以假設這些文件對受害者來說比其他文件更有價值。然后,它將按以下擴展名掃描數據庫文件,擴展名如下(解密索引號為0x06):

*fdb; sql; 4dd; 4dl; abs; abx; accdb; accdc; accde; adb; adf; ckp; db; db-journal; **db-shm; db-wal; db2; db3; dbc; dbf; dbs; dbt; dbv; dcb; dp1; eco; edb; epim; fcd; gdb; mdb; mdf; ldf; myd; ndf; nwdb; nyf; sqlitedb; sqlite3; sqlite;*

除此之外,它還具有兩個擴展排除列表。其中一個包含Phobos在其歷史記錄中使用的加密文件擴展名,如下所示(解密索引號為0x07):

*eking;actin;Acton;actor;Acuff;Acuna;acute;adage;Adair;Adame;banhu;banjo;Banks;Banta;Barak;Caleb;Cales;Caley;calix;Calle;Calum;Calvo;deuce;Dever;devil;Devoe;Devon;Devos;dewar;eight;eject;eking;Elbie;elbow;elder;phobos;help;blend;bqux;com;mamba;KARLOS;DDoS;phoenix;PLUT;karma;bbc;CAPITAL;WALLET;*

另一個列表包含此變體用來顯示其受害者勒索信息的文件,以及一些Windows系統文件,如下所示(解密索引號為0x08):

*info.hta; info.txt; boot.ini; bootfont.bin; ntldr; ntdetect.com; io.sys; osen.txt*

掃描線程在回調函數中使用這兩個排除列表來過濾文件以根據其規則進行加密。同時,Phobos還在每個掃描線程中創建了一個加密線程,用于對受害者的文件進行加密。掃描線程和加密線程如何協同工作:掃描線程繼續掃描文件,并將具有完整路徑的文件名復制到公共緩沖區中,并在選擇一個文件后設置事件。然后,加密線程可以從公共緩沖區中獲取文件名并進行加密。

3.加密算法和密鑰使用

Pbobos使用AES(高級加密標準)CBC(密碼塊鏈接)模式作為其加密文件的加密算法。在我的分析中,Phobos的這種變體沒有使用Windows提供的用于AES的內置Crypto API,而是實現了自己的AES功能。

當人們談論AES CBC加密和解密時,通常會提到“ IV”和“ Key”。

對于其密鑰長度,我們知道Phobos使用256位AES密鑰(20H字節),這是最強的文件加密。此外,它使用非對稱的公私鑰密碼系統來保護AES密鑰。從索引號為0x2的配置塊中解密公鑰。

圖5.2 AES密鑰及其公開密鑰已加密

圖5.2 AES密鑰及其公開密鑰已加密

AES密鑰是使用10H字節的隨機數據和10H字節的數據從解密的公共密鑰生成的。如圖5.2所示,它在內存窗口頂部生成了AES密鑰(20H字節)。后續信息是加密的AES密鑰(80H字節)的相關數據,該數據是使用卷序列號“%systemdrive%”(例如受害者系統上的“ C:\”)和公共密鑰生成的,以及函數Sub_401706中的一些解密常量值。加密的AES密鑰后的最后四個字節是以上兩部分的CRC32的hash值。

只要受害者提供了由Phobos中的API GetVolumeInformationW()獲取的系統驅動器卷序列號,加密的AES密鑰以及其他常量值的數據,攻擊者就可以使用其私鑰來還原AES密鑰。加密的AES密鑰將記錄在加密的文件中,稍后我將解釋加密的文件結構。這就是為什么它要求受害者在勒索信息頁面上提供系統驅動器的卷序列號的原因。

IV(初始化向量)數據的長度為10H字節,通常是隨機生成的。它也像加密的AES密鑰一樣記錄在加密的文件中。IV與AES密鑰一起用于數據加密,就像MD5算法的鹽一樣。

一旦獲得IV數據和AES密鑰,它就可以解密加密的文件。

4.加密文件的線程

如上所述,這是掃描線程啟動的加密線程。掃描線程選擇文件后,便會將文件的完整路徑復制到加密線程的公用緩沖區,該緩沖區由掃描線程通知(設置事件對象)。

然后,它將配置塊中的格式字符串(索引號0x04)解密為那些加密文件的新文件擴展名,如下所示,其中“ << ID >>”將替換為系統驅動器的卷序列號。

*.id [<< ID >>-2987]。[wiruxa@airmail.cc] .eking*

圖5.3具有新擴展名的加密文件

圖5.3具有新擴展名的加密文件

這只是帶有新擴展名的加密文件的格式化新文件名。這次,由掃描線程選擇和過濾的文件為“ \?\ E:\ test_file.txt”,其加密文件名為“ \?\ E:\ test_file.txt.id [[581F1093- 2987]。[wiruxa@airmail.cc] .eking”。

它繼續讀取所選文件的內容(例如:“ E:\ test_file.txt”)。我們知道AES加密塊的大小固定為10H字節。因此,如果要加密的數據大小未與10H對齊,則需要使用填充來附加數據(Phobos使用“ 00”作為填充)來解決該問題。

圖5.4調用AES_CBC_Encrypt()函數來加密文件內容

圖5.4調用AES_CBC_Encrypt()函數來加密文件內容

圖5.4顯示了Phobos將要調用AES_CBC_Encrypt()函數,該函數的arg0是一個密鑰對象(AES_CTX Struct),其中包含用于加密內存窗口中所示文件內容的IV和密鑰(附加了三個“ 00”填充元素)。

加密后,Phobos通過調用API WriteFile()將密文保存到加密文件中(例如,“ E:\ test_file.txt.id [[581F1093-2987]。[wiruxa@airmail.cc] .eking”),如圖5.5所示。

圖5.5將密文保存到加密文件中

圖5.5將密文保存到加密文件中

加密的文件內容由兩部分組成。第一部分是 原始文件內容的 密文。第二部分是一組數據,我稱其為decryption_config_block。它用于解密第一部分。圖5.6是加密文件內容的屏幕截圖。我將解釋一下decryption_config_block包含的內容。

圖5.6加密文件內容的示例

圖5.6加密文件內容的示例

前10H個字節(用紅色包圍)是加密的原始文件內容,如圖5.5所示。40H字節(由藍色包圍)是一個加密的部分,其中包含一些常量值以及原始文件名,這些文件使用相同的AES密鑰和IV進行加密。隨后的14H字節“ 00”可以視為數據定界符。10H字節(由黑色包圍)僅是此文件的IV數據。下一個Dword 0x03告訴原始文件內容附加的填充的大小(再次參考圖5.5)。80H數據塊(綠色)是加密的AES密鑰的相關數據,該數據在掃描線程中生成,并且對于不同的掃描線程而言是不同的。下一個Dword 0xF2是整個decryption_config_block的大小。

Phobos要做的最后一件事是調用API DeleteFileW()從受害人的系統中擦除原始文件。

5.掃描網絡共享資源

該線程功能專注于網絡共享資源。Phobos使用參數dwScope的不同值多次調用API WNetOpenEnum()。這些是RESOURCE_CONNECTED,RESOURCE_RECENT,RESOURCE_CONTEXT,RESOURCE_REMEMBERED和RESOURCE_GLOBALNET。

RESOURCE_CONNECTED:枚舉所有當前連接的資源。 RESOURCE_RECENT:枚舉所有最近連接的資源。 RESOURCE_CONTEXT:僅枚舉調用方的網絡上下文中的資源。 RESOURCE_REMEMBERED:枚舉所有記住的(持久的)連接。 RESOURCE_GLOBALNET:枚舉網絡上的所有資源。

這項工作涉及API WNetOpenEnumW()和WNetEnumResourceW()來枚舉網絡共享資源。

成功獲取一種資源后,Phobos將使用上面的資源的完整地址(如\?\ UNC \ {resource name} \ {folder name})啟動我在上面的第2點中討論的兩個掃描線程 ,以啟動該資源。掃描和過濾文件。如我在第4點中所述,掃描線程然后啟動加密線程,并在選擇一個文件時注意到加密。

圖5.7準備啟動掃描線程的一個共享資源

圖5.7準備啟動掃描線程的共享資源

上面的圖5.7顯示了從RESOURCE_CONNECTED獲得的共享資源(“ \?\ UNC \ VBoxSvr \ vbox_share_folder”),該資源即將調用Sub_405840函數以在該共享資源上啟動新的掃描線程。

6.監視和掃描新邏輯驅動器的線程

我已經討論過Phobos掃描本地邏輯驅動器上的文件,以及掃描網絡共享資源,這些都是受害者系統的所有現有資源。

還有另一個線程,其主要任務是監視新的邏輯驅動器。例如,受害者連接了USB閃存驅動器或手機,Windows系統將其視為新的邏輯驅動器。這將被該線程捕獲。它每秒運行一次檢測,并為檢測到的任何新邏輯驅動器啟動兩個新的掃描線程。圖5.8顯示的偽代碼顯示了此線程功能的邏輯結構。

圖5.8用于掃描新邏輯驅動器的偽代碼

圖5.8用于掃描新邏輯驅動器的偽代碼

向受害者顯示勒索信息

Phobos的主線程等待所有掃描線程和加密線程完成其工作。然后,它將兩個文件info.hta(html版本勒索信息)和info.txt(文本版本勒索信息)拖放到桌面以及受害者系統上可用邏輯驅動器的根目錄中。還使用命令“ open”調用API ShellExecuteExW()以在受害者的屏幕上打開html版本的info.hta,如圖6.1所示。

圖6.1向受害者顯示贖金信息

圖6.1向受害者顯示贖金信息

對EKING變異深入分析結論

在這篇文章中,我對Phobos勒索軟件的EKING變種進行了深入分析。我已經介紹了如何從原始MS Word文檔樣本中下載有效負載文件(cs5.exe),以及Phobos如何將其保持在受害者的系統上。

我主要分析了Phobos的核心任務-掃描和加密受害者系統上的文件。通過這篇文章,我們現在知道它不僅掃描邏輯驅動器上的文件,而且還掃描網絡共享資源和新連接的邏輯驅動器。我還詳細介紹了Phobos的這種變體如何使用多個線程來完成其工作。

最后,我解釋了Phobos在完成加密后如何向受害者顯示其勒索信息。

為了保護您的設備免受惡意軟件的攻擊,我們建議不要打開不受信任來源的電子郵件附件。

Fortinet解決方案

借助FortiGuard的Web過濾,防病毒和CDR(內容撤防和重建)服務,Fortinet客戶已免受此Phobos變種的攻擊,如下所示:

下載的URL被FortiGuard Web過濾服務評為“惡意網站”。

Word文檔和下載的有效負載文件被檢測為“ VBA / Agent.KBU!tr ”和“ W32 / Phobos.HGAF!tr.ransom ”,并被FortiGuard AntiVirus服務阻止。

此外,FortiSandbox將Word文檔檢測為風險軟件。

FortiMail用戶受到FortiGuard AntiVirus的保護,FortiGuard AntiVirus可以檢測到發送Phobos的原始Word文檔,并通過CDR服務進一步加以保護,該服務可用于抵消Office文檔中所有宏的威脅。

此外,為了防止設備受到這種方式發送的惡意軟件的攻擊,我們建議用戶不要打開不受信任來源的電子郵件附件。強烈建議對最終用戶進行有關如何識別和標記潛在惡意電子郵件的培訓。

IOCS

URLs

hxxp://178[.]62[.]19[.]66/campo/v/v

Sample SHA-256

[Word Document]
667F88E8DCD4A15529ED02BB20DA6AE2E5B195717EB630B20B9732C8573C4E83
[Phobos Payload]
6E9C9B72D1BDB993184C7AA05D961E706A57B3BECF151CA4F883A80A07FDD955

參考文獻:

https://id-ransomware.blogspot.com/2017/10/phobos-ransomware.html


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