譯者:知道創宇404實驗室翻譯組
原文鏈接:https://www.welivesecurity.com/2020/09/02/kryptocibule-multitasking-multicurrency-cryptostealer/

前言

ESET研究人員發現了迄今未記錄的惡意軟件家族,我們將其命名為KryptoCibule。對加密貨幣而言,這種惡意軟件具有三重威脅。它利用受害者的資源來挖掘硬幣,試圖通過替換剪貼板中的錢包地址來劫持交易,并泄漏與加密貨幣相關的文件,同時部署多種技術來避免檢測。KryptoCibule在其通信基礎架構中廣泛使用了Tor網絡和BitTorrent協議。

該惡意軟件用C編寫,還使用了一些合法軟件。有些東西,例如Tor和Transmission torrent客戶端,與安裝程序捆綁在一起。其他的則在運行時下載,包括Apache httpd和Buru SFTP服務器。圖1顯示了各種組件及其相互作用的概述。

首次執行惡意軟件時,主機被分配一個唯一的標識符,格式為{adjective}-{noun},其中{adjective}{noun}是從兩個硬編碼列表中隨機抽取的單詞,它們提供了超過一千萬個唯一的組合。然后,該標識符用于標識與C&C服務器通信的主機。

除了與加密相關的組件外,KryptoCibule還具有RAT功能。它支持的命令包括EXEC(可以執行任意命令)和SHELL(可以從C&C下載PowerShell腳本)。然后,此腳本加載使用Pupy生成的后門。

KryptoCibule這個名稱源自捷克語和斯洛伐克語中的“crypto””和“onion”兩個詞。

時間線

我們發現了該惡意軟件的多個版本,這使我們能夠追溯到2018年12月的演變。圖2顯示了KryptoCibule隨著時間的變化。

目標

根據ESET遙測技術(如圖3所示),該惡意軟件似乎主要針對捷克(捷克共和國)和斯洛伐克的用戶。這反映了被感染的站點所在的用戶群。 如圖3所示,在遙測數據中,超過85%的檢測結果位于捷克和斯洛伐克。

幾乎所有的惡意種子都可以在uloz.to上找到。圖4顯示了一個在Czechia和Slovakia 受歡迎的文件共享站點。在下一部分中,我們將解釋如何使用這些洪流傳播KryptoCibule。 圖4為uloz.to上的惡意種子之一。

如下面的“防檢測和防分析技術”部分所述,KryptoCibule專門檢查ESET、Avast和AVG端點安全產品。ESET的總部位于斯洛伐克,而其他兩家為Avast擁有。

危害

KryptoCibule利用BitTorrent協議傳播給新的受害者,并下載和更新其他工具。

KryptoCibule通過ZIP文件進行惡意傳播,其內容偽裝成破解或盜版軟件和游戲的安裝程序。盡管可能包括其他文件,如圖5所示,但所有KryptoCibule安裝程序檔案共有五個文件。packed.001是惡意軟件,而packed.002是預期軟件的安裝程序。兩者都使用Setup.exe中包含的密鑰進行XOR加密。

當執行Setup.exe時,它將對惡意軟件和預期的安裝程序文件進行解碼。然后,它在后臺啟動惡意軟件,并在前端和中間啟動預期的安裝程序,不會給受害者留下任何跡象。 圖5. Dead.Cells.Incl.All.DLC歸檔文件的內容,僅顯示了最小的通用KryptoCibule安裝程序文件集。

附加軟件和更新

BitTorrent協議還用于下載對惡意軟件和其他軟件的更新。

KryptoCibule安裝了傳輸守護程序 Torrent客戶端,并通過其端口9091上具有傳輸遠程功能的RPC接口發出命令來對其進行管理。RPC接口使用硬編碼的憑證superman:krypton。

要安裝其他軟件以供惡意軟件使用,例如SFTP服務器,啟動器組件會向%C&C%/softwareinfo?title=<software name>發出HTTP GET請求,并接收一個JSON響應,其中包含要下載的Torrent 的吸引人的URI。以及其他指示如何安裝和執行程序的信息。圖6顯示了這種響應的示例。 圖6. GET / softwareinfo?title = ssh_server請求的響應示例。

與獲取更新的機制類似,該惡意軟件首先通過HTTP從%C&C%/ settingsv5獲取全局設置。此響應包含最新版本惡意軟件的URI。然后,它向%C&C%/ version發出GET請求,以獲取最新的版本號。如果本地版本低于該版本,則會下載并安裝torrent。

使用以下命令將torrent添加到“傳輸”中: transmission-remote localhost -n superman:krypton -a “<magnet URI>”

50個跟蹤器的硬編碼列表用于獲取所有torrent的對等對象。

播下惡意種子

受感染的主機從%C&C%/ magnets獲取URI列表,將其全部下載并繼續傳播。這樣這些文件可供其他人廣泛下載,且能加快下載速度,提供冗余。、

抗檢測和抗分析技術

該惡意軟件利用多種技術來避免檢測以及反分析。

從初始訪問向量開始,ZIP歸檔文件中包含的可執行文件是一個相當不錯的安裝程序,它可以偽裝成合法的InstallShield程序。該文件已用開源程序Obfuscar加密。所有惡意軟件的自定義可執行文件都使用同一工具。惡意代碼本身位于XOR加密的文件內,密鑰是Setup.exe中經過硬編碼的GUID 。

然后,將惡意軟件安裝到硬編碼路徑%ProgramFiles(x86)%\ Adob??e \ Acrobat Reader DC \ Reader \ update,并將合法的Adobe Acrobat Reader可執行文件名稱用于捆綁的Tor可執行文件及其本身。安裝文件夾中包含的某些文件如圖7所示。 圖7.安裝文件夾中的某些文件。Armsvc.exe是惡意軟件,而ADelRCP.exe是Tor可執行文件。

為了實現持久性,KryptoCibule使用以下命令創建了一個計劃的任務,該任務每五分鐘運行一次。再次使用Adobe Reader相關名稱。

schtasks.exe / CREATE / SC MINUTE / MO 5 / TN“ Adobe Update Task ” / TR \”“%ProgramFiles(x86)%\ Adob??e \ Acrobat Reader DC \ Reader \ Update \ armsvc.exe \”” [/ RL最高] / F [/ RU系統]

在執行有效負載之前以及在主循環的每次迭代之前,該惡意軟件都會使用以下列表對運行分析軟件進行檢查。如果找到任何具有匹配名稱的進程,它將停止所有正在運行的組件并退出。

防病毒規避

在初始化cryptominer組件之前,該惡意軟件對rootSecurityCenter2 \ AntiVirusProduct WMI對象的字符串avast,avg和eset進行不區分大小寫的檢查,如圖8的反編譯代碼所示。如果檢測到這些字符串中的任何一個,將不會安裝cryptominer組件。 圖8.清理了用于檢查特定安全產品的函數的反編譯代碼。

每當惡意軟件自行安裝、更新或安裝新組件時,通過發出以下命令,將使用的安裝路徑從Windows Defender自動掃描中排除:

powershell -c “Add-MpPreference -ExclusionPath ‘<install path>'”

它還會創建防火墻規則,以使用看起來無害的名稱顯式允許其組件的入站和出站流量。圖9所示的函數還創建了一條規則,以阻止來自ESET內核服務(ekrn.exe)的出站流量。 圖9.阻止來自Windows防火墻中的ekrn.exe的出站流量的功能。

Tor網絡使用

KryptoCibule帶來了tor.exe命令行工具,其偽裝為ADelRCP.exe,以及一個配置文件(如圖10所示)為libstringutils.dll。 圖10.最新版本的惡意軟件使用的Tor配置文件。

這將在端口9050上設置一個SOCKS代理,惡意軟件使用該代理通過Tor網絡中繼與C&C服務器的所有通信。這有兩個好處:加密通信并使跟蹤這些uri背后的實際服務器變得幾乎不可能。

配置文件的第二部分在受害主機上設置洋蔥服務。運營商可以通過Tor網絡訪問這些內容。首次啟動這些服務時,Tor會自動為主機生成一個.onion URI。然后,此唯一主機名將發送到%C&C%/transferhost/<unique name>。我們將在接下來的部分中討論如何使用這些洋蔥服務。

惡意軟件中包含兩個C&C服務器的洋蔥URI。其中一個提供了REST API,惡意軟件將其用于大多數通信,而另一個則用于下載文件。通過向%C&C%/ server發出請求,可以一次獲得一個附加的URI 。某些較舊版本的惡意軟件使用這些惡意軟件通過端口12461下載更新。我們相信這些URI指向其他受感染的主機。使用它們的惡意軟件版本具有代碼,可將其下載的更新放置在同一端口上的MiniWeb HTTP Server服務的目錄中。

我們能夠在遙測數據中為文件服務器C&C標識一個IP地址。

獲取加密貨幣

KryptoCibule具有三個組件,這些組件利用受感染的主機來獲取加密貨幣。

密碼挖掘

KryptoCibule的最新版本使用XMRig(一個使用CPU挖掘Monero的開源程序)和kawpowminer(另一個使用GPU挖掘以太坊的開源程序)。第二個僅在主機上找到專用GPU時使用。這兩個程序都設置為通過Tor代理連接到操作員控制的挖掘服務器。

在主循環的每次迭代中,惡意軟件都會檢查電池電量以及自上次用戶輸入以來的時間。然后,它將基于此信息啟動或停止礦工進程。如果主機在最近3分鐘內未收到任何用戶輸入,并且電池電量至少為30%,則GPU和CPU礦機都將不受限制地運行。否則,GPU礦工將被掛起,并且CPU礦工被限制為一個線程。如果電池電量不足10%,則兩個礦工都將停止。這樣做是為了減少被受害者注意的可能性。

剪貼板劫持

第二個組件偽裝為SystemArchitectureTranslation.exe。它使用AddClipboardFormatListener函數來監視對剪貼板的更改,并將從%C&C%/ regexes獲得的替換規則應用于其內容。該偵聽器的代碼如圖11所示。值0x31D對應于WM_CLIPBOARDUPDATE常量。

這些規則以<regular_expresssion>!<wallet>的形式匹配加密貨幣錢包地址的格式,并將其替換為由惡意軟件操作員控制的錢包地址。這是嘗試將受害者進行的交易重定向到運營商的錢包。每當settings.cfg文件更改時,此組件便使用FileSystemWatcher重新加載替換規則。 圖11.剪貼板掛鉤使用的偵聽器功能的反編譯代碼。

在撰寫本文時,剪貼板劫持組件使用的錢包收到了略高于1800美元的比特幣和以太坊。圖12中顯示了一個這樣的錢包。通過將與相同交易中的來源的錢包相關聯,我們能夠發現至少四個可能屬于KryptoCibule運營商的其他比特幣錢包。 圖12.剪貼板劫持組件使用的比特幣錢包。

文件滲透

第三個組件遍歷每個可用驅動器的文件系統,并查找包含某些術語的文件名。我們在調查中獲得的此類術語的列表如圖13所示。 圖13.要搜索的單詞列表,取自GET%C&C%/ settingsv5響應。

大多數術語指的是加密貨幣,錢包或礦工,但也存在一些更通用的術語,例如加密貨幣(多種語言),種子和密碼。該列表包含捷克語和斯洛伐克語中的類似術語,例如heslo,hesla和banka(分別是“ password”,“ passwords”和“ bank”兩個詞)。一些術語也對應于路徑或文件,這些路徑或文件可以提供其他有趣的數據(Desktop,私有),包括私有密鑰(.ssh和.aws)。它收集每個匹配文件的完整路徑,并將列表發送到%C&C%/found/<unique name>

我們認為,這與在端口9187上作為洋蔥服務運行的SFTP服務器協同工作有關系。此服務器為每個可用驅動器創建映射,并使用在惡意軟件中硬編碼的憑據使它們可用。因此,通過使攻擊者控制的計算機通過SFTP從受感染的主機請求收集的路徑,可以將其用于文件擴散。

KryptoCibule還會安裝合法的Apache httpd服務器,該服務器配置為無限制地充當轉發代理,并且可以作為端口9999上的洋蔥服務訪問。

結論

自2018年底以來,KryptoCibule惡意軟件一直在泛濫,并且仍處于活動狀態,但到目前為止似乎并沒有引起太多關注。它使用合法的開放源代碼工具以及廣泛部署的反檢測方法可能是造成此問題的原因。受害人數相對較少(數百人),而且他們大多局限于兩個國家,這也可能是造成這種情況的原因。KryptoCibule在其生命周期中定期添加了新功能,并且仍在積極開發中。

據推測,惡意軟件操作員通過竊取錢包和挖掘加密貨幣能夠比在剪貼板劫持組件所使用的錢包中發現的收入更高。僅由該組件產生的收入似乎不足以證明所觀察到的開發工作的合理性。


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