01.簡介
Raccoon(浣熊) 是一個惡意軟體家族,自2019年初以來一直在地下論壇上作為惡意軟體即服務出售。2022年7月上旬,釋出了該惡意軟體的新變種,通常稱為Raccoon Stealer v2,是用C語言編寫的,與以前主要用C++編寫的版本不同。
Raccoon惡意軟體是一個強大的竊取程式,它允許從瀏覽器竊取資料,例如密碼、cookie和自動填充資料。Raccoon盜竊者還支援從所有加密貨幣錢包中盜竊。
在本文中,我們將簡單分析exe格式的Raccoon Stealer v2,並強調與先前版本的主要區別。Raccoon Stealer惡意軟體的作者宣佈其它格式亦可使用,包括DLL和嵌入在其它PE檔案中的版本。目前,聚銘網路流量智慧分析審計產品已支援對該惡意軟體的檢測。
02.詳細分析
Raccoon v2是一種資訊竊取惡意軟體,於2022年7月3日首次出現。該惡意軟體是用C和組合語言編寫的。
儘管我們注意到下面提到的較新變體中的一些新功能,但資料竊取機制仍然與其前身相同:
所有字串文字的 Base64 + RC4 加密方案;
WinAPI 函式的動態載入;
放棄了對 Telegram API 的依賴。
獲取命令和控制伺服器列表的方式發生了重大變化。Raccoon Malware v1被發現濫用Telegram網路來獲取命令和控制伺服器列表,而較新的變種已放棄使用Telegram。相反,他們使用受威脅者控制的伺服器的硬編碼IP地址來獲取命令和控制伺服器列表,從中下載下一階段的有效負載(主要是 DLL)。
分析的檔案具有完整的除錯資料。根據Debug headers編譯日期是星期四,26/05/2022 13:58:25 UTC,如圖1所示:
圖1:Raccoon v2除錯標頭檔案
Raccoon Stealer v2透過使用動態解析API名稱而不是靜態載入的機制來隱藏其意圖。竊取程式使用LoadLibraryW和GetProcAddress來解析每個必要的函式。DLL和WinAPI函式的名稱以明文形式儲存在二進位制檔案中。
一旦函式解析完成,竊取者將執行其字串解密例程。此過程很簡單,其主要手法是RC4加密字串並以base64編碼儲存在樣本中。本文示例首先對base64編碼進行解碼,然後使用金鑰“edinayarossiya”對加密字串進行解密。函式string_decryption()中的所有字串都遵循此方法。
以前版本的Raccoon Stealer不加密硬編碼IP地址以外的字串文字。Raccoon v2變體透過加密所有純文字字串來克服這個問題。Raccoon v1的幾個明文字串如圖 2 所示:
圖2:Raccoon v1中的純文字字串
在對 Raccoon v1 樣本字串進行手動解密後,得到以下(圖 3 和圖 4)明文格式的字串:
圖3:Raccoon v2解密字串
圖4:Raccoon v2解密字串
命令和控制IP地址儲存在惡意軟體中,並遵循相同的解密例程,但具有不同的金鑰59c9737264c0b3209d9193b8ded6c127。惡意軟體聯絡的IP地址是' hxxp://51(.)195(.)166(.)184/ '。
03.解密C&C地址
加密的C&C IP地址可以使用CyberChef等公共工具輕鬆破解,如圖5所示:
圖5:Raccoon v2 IP地址(透過cyberchef工具)
一旦完成了設定函式和解密字串的所有條件,惡意軟體將在聯絡命令和控制伺服器以下載惡意DLL和洩露資訊之前執行一些檢查。
在執行惡意軟體的主要例程之前,它會進行某些檢查以瞭解執行環境。這包括確保惡意軟體尚未在計算機上執行;此外,惡意軟體還會檢查它是否作為NT系統執行。
惡意軟體獲取互斥鎖的控制程式碼並檢查它是否匹配特定值。如果匹配,惡意軟體將繼續執行,如8724643052;此技術用於確保一次只執行一個惡意軟體例項。
透過檢索Process令牌並匹配文字“S-1-5-18”,惡意軟體確定它是否以SYSTEM使用者身份執行。
如果以SYSTEM使用者身份執行,所有正在執行的程式的列舉都是在fun_CreateToolhelp32Snapshot的幫助下完成的。否則,惡意軟體會在沒有列舉的情況下繼續執行。
04.獲取主機指紋
一旦惡意軟體知道它執行的環境,它就會開始對主機進行指紋獲取。該惡意軟體使用如下方法:
RegQueryValueExW用於獲取機器ID;
獲取使用者名稱W。
完成這一切後,惡意軟體將列舉MACHINE ID和使用者名稱等資訊,然後將資料傳送到遠端命令和控制伺服器。
為此,惡意軟體會建立一個char字串並開始將這些值附加到其中。它首先新增機器 ID 和使用者名稱,圖6 顯示了緩衝區中構建的有效負載:
圖6:緩衝區負載
05.與C&C通訊
程式利用HTTP協議與遠端命令與控制服務主機進行通訊。之前解密的IP地址(hxxp://51(.)195(.)166(.)184/)用於命令和控制通訊。惡意軟體聯絡先前解密的命令和控制IP地址列表(儲存在 local_3c 中)。由於該惡意軟體僅包含一個命令和控制IP地址,因此釋出請求僅針對一個。
圖 7:緩衝中的URL
發出請求後,惡意軟體會檢查內容主體長度是否為零。如果沒有從命令和控制接收到內容或內容主體長度為零,則惡意軟體退出。進行此檢查的目的是因為惡意軟體的滲漏機制需要命令和控制來響應列表 IP 地址。
Raccoon v1依靠Telegram Bot API描述頁面來獲取命令和控制 IP 地址並建立連線。該系列的最新惡意軟體變體 (v2) 已開始在二進位制檔案中硬編碼 IP 地址以完成此任務。Raccoon Malware v2使用5個硬編碼IP地址並對其進行迭代。
06.資料洩漏
Raccoon Stealer v2依靠命令和控制伺服器的響應來關閉所需的DLL,並決定下一步行動。在撰寫此文時,命令和控制IP已失效,因此無法分析流向主機的流量。
該惡意軟體使用對SHGetFolderPathW的WINAPI呼叫來獲取到C:\Users\<User>\AppData的路徑,並將“Local”附加到它,並將其用作儲存被盜資訊的路徑,然後再將其傳送到命令和控制。