CopperStealer傳播基於惡意Chromium的瀏覽器擴充套件來竊取加密貨幣

語言: CN / TW / HK

趨勢科技的研究人員跟蹤了CopperStealer幕後組織的最新部署,這次是通過基於Chromium的惡意瀏覽器擴充套件程式竊取加密貨幣和使用者的錢包帳戶資訊。

趨勢科技最近釋出了關於CopperStealer通過濫用瀏覽器竊取程式、廣告軟體瀏覽器擴充套件程式或遠端桌面等各種元件傳播惡意軟體的分析。跟蹤網路犯罪集團的最新活動,研究人員發現了一個惡意瀏覽器擴充套件,當受害者登入到一個主要的加密貨幣交易網站時,該擴充套件能夠建立和竊取受感染裝置的API金鑰。這些API金鑰允許擴充套件程式執行交易並將加密貨幣從受害者的錢包傳送到攻擊者的錢包。

與以前的攻擊類似,這個新元件通過fake crack (也稱為warez)網站傳播。該元件通常與瀏覽器竊取程式一起分佈在一個釋放器中,並與其他不相關的惡意軟體捆綁在一起。這個捆綁包被壓縮成一個受密碼保護的檔案,自7月以來一直在野外傳播。

滴管/擴充套件安裝程式

該元件在第一階段使用之前 文章 中描述的相同加密器,然後是第二階段,其中解密的DLL是UltimatePackerExecutables-(UPX)打包的。解密和解包後,我們注意到一個名為CRX的資源目錄,其中包含一個7-Zip壓縮檔案。惡意Chrome瀏覽器擴充套件通常以這種方式打包。

名為CRX的擴充套件安裝 程式,包含一個7-Zip壓縮檔案

該壓縮檔案包含一個帶有設定的JSON檔案和另一個帶有擴充套件安裝程式本身程式碼的7-Zip壓縮檔案。

CRX的解壓內容

擴充套件安裝程式首先修改檔案首選項和安全首選項在chrome瀏覽器的使用者資料目錄。這個名為Preferences的檔案是JSON格式,包含個人使用者設定。擴充套件安裝程式關閉瀏覽器通知。

同時,名為SecurePreferences的檔案也是JSON格式,包含已安裝擴充套件的設定。對於新安裝的擴充套件,crx.json檔案的內容將插入到此安全首選項設定檔案中。新安裝的擴充套件也會新增到位於登錄檔中的擴充套件安裝允許列表中。

然後將crx.7z壓縮檔案中的檔案提取到位於

Chrome
Chromium
Edge
Brave
Opera
Cốc Cốc
CentBrowser
Iridium
Vivaldi
Epic
Coowon
Avast Secure Browser
Orbitum
Comodo Dragon

我們還注意到,該擴充套件程式被安裝到受害者的瀏覽器中,具有兩個不同的擴充套件程式ID,且在官方Chrome網上商店中都找不到:

Cbnmkphohlaaeiknkhpacmmnlljnaedp;
Jikoemlnjnpmecljncdgigogcnhlbfkc;

擴充套件分析

安裝擴充套件程式後,我們還注意到chrome://extensions/中新安裝了以下擴充套件程式。

安裝的惡意擴充套件

擴充套件清單定義了兩個Java指令碼。後臺指令碼名為background.js,並且只在一個例項中執行在擴充套件本身內部。同時,內容指令碼稱為content.js,並在coinbase.com上下文中執行,如擴充套件清單中的程式碼片段所示。

在擴充套件清單中指定的內容指令碼的設定

指令碼混淆

這兩個Javascript檔案都被嚴重混淆。在第一個混淆步驟中,所有字串被拆分為子字串,儲存在單個數組中,通過呼叫多個帶有5個十六進位制整數引數的十六進位制命名函式來實現對陣列的訪問。

第一層混

看看第二個混淆步驟,所有字串、邏輯操作符(+、-、*、/)、函式呼叫等都被插入到物件陣列中。每個物件都有一個隨機字串作為名稱,或者另一個字串或函式作為值。在我們分析的示例中,_0x1f27e3['PFPYr']對應字串" set ", _0x1f27e3['LYLfc'](0,1)對應邏輯表示式0!=1。

第二層混淆

這兩個混淆步驟都可以通過使用自定義自動化指令碼來反混淆。

後臺指令碼分析

通過分析指令碼,本節分析了攻擊者如何能夠竊取合法加密貨幣錢包使用者的賬戶資訊。當擴充套件啟動時,後臺指令碼進行兩個查詢。第一個是對http:///traffic/chrome的GET請求,可能是出於統計目的。第二個查詢是對http://

blockchain.com
coinbase.com
binance.com
ftx.com
okex.com
huobi.com
kraken.com
poloniex.com
crypto.com
bithumb.com
bitfinex.com
kucoin.com
gate.io
tokocrypto.com
tabtrader.com
mexc.com
lbank.info
hotbit.io
bit2me.com
etoro.com
nicehash.com
probit.com

然後,該擴充套件為各種加密貨幣和令牌定義了一個攻擊者的地址陣列:

Tether (USDT, specifically in Ethereum ERC20 and TRON TRC20)
Ethereum (ETH)
Bitcoin (BTC)
Litecoin (LTC)
Binance coin (BNB)
Ripple (XRP)
Solana (SOL)
Bitcoin Cash (BCH)
Zcash (ZEC)
Stellar Lumens (XLM)
Dogecoin (DOGE)
Tezos (XTZ)
Algorand (ALGO)
Dash (DASH)
Cosmos (ATOM)

對於ETH地址,指令碼硬編碼了大約170個額外的基於ERC20的代幣。之後,擴充套件啟動onMessage偵聽器以偵聽來自擴充套件程序或內容指令碼傳送的訊息。該訊息採用JSON格式,其中一個name-value pair 稱為method。後臺指令碼偵聽以下方法:

· Method “homeStart”

這個方法試圖從Chrome的本地儲存獲取API金鑰(apiKey)和API祕密(apiSecret),如果這些金鑰和祕密對是之前獲得並儲存的。以下步驟需要這些引數:

1.使用API通過請求/api/v2/accounts獲取有關錢包、地址和餘額的資訊。此請求的結果也被洩露到http://

2.如果請求成功,API會向內容指令碼傳送“okApi”訊息並開始解析錢包資訊。如果錢包餘額不為零,它會嘗試將85%的可用資金髮送到攻擊者控制的錢包。

尋找餘額不為零的錢包

竊取85%的可用資金

交易請求的結果也會被洩露到http://

1.如果不成功,API會向內容指令碼傳送“errorApi”訊息。“errorApi”訊息包含來自http://www.coinbase.com/settings/api的CSRF令牌作為一個引數,以及對新API金鑰建立請求的響應。

2.Method “createApi”。

此訊息是從內容指令碼接收的,幷包含一個雙因素身份驗證(2FA)程式碼作為引數之一。此程式碼用於開啟新的模式視窗以建立API金鑰。通常,當你在CoinbaseAPI設定中點選“+NewAPIKey”時,會請求一個2FA程式碼,如果程式碼正確,就會出現模式視窗。

在建立新API的第二步中,需要選擇錢包及其許可權。惡意擴充套件請求所有帳戶的所有可用許可權。

選擇所有帳戶和許可權

之後,需要再插入一個身份驗證程式碼,然後就會顯示一個帶有新生成的API金鑰的表單。如果成功,後臺指令碼然後繼續從“API Key details”表單提取兩個API金鑰(API Key和API Secret),將它們儲存到Chromium的本地儲存以供以後使用,並將它們提取到http:///traffic/step。如果API身份驗證不成功,將向內容指令碼傳送一條“retryApi”訊息。

內容指令碼分析

我們進一步研究了內容指令碼,以分析負責從受害者那裡竊取2FA密碼的程序。內容指令碼包含以下語言的訊息列表:

· 英語(en)

· 德語(de)

· 西班牙語(es)

· 法語(fr)

· 日語(jp)

· 印度尼西亞(身份證)

· 義大利語(它)

· 波蘭語(pl)

· 葡萄牙語(pt)

· 俄語(ru)

· 泰語(日)

·土耳其語(tr)

每條訊息都包含電話和身份驗證器的標題、描述和錯誤訊息。

對於“phone”,顯示的英文資訊顯示為:

· “title”:“請輸入手機驗證碼。”

· “description”:“輸入手機簡訊提供的兩步驗證碼。”

· “message”:“該程式碼無效。請再試一次。”

對於“authenticator”,顯示的英文訊息如下所示:

· “title”:“請輸入驗證器的驗證碼。”

· “description”:“輸入你的身份驗證應用程式提供的兩步驗證碼。”

· “message”:“該程式碼無效。請再試一次。”

內容指令碼最初向/api/v3/brokerage/user_configuration發出請求,以檢視使用者是否已登入。然後指令碼向後臺指令碼傳送一個“homeStart”訊息,並開始使用onMessage偵聽類似於後臺指令碼程序的“method”屬性。如果它接收到一個方法屬性等於“okApi”的訊息,它會隱藏程式碼載入器並移除模式視窗。如果它接收到一個方法屬性等於“errorApi”的訊息,它就會建立一個模式視窗。

顯示要求輸入身份驗證程式碼的模式視窗

模式視窗有輸入框並偵聽oninput事件。如果每個輸入框都包含一個數字,則將它們連線成一個“tfa”(2FA)變數,並作為“createApi”訊息的引數傳送到後臺指令碼。程式碼載入器也會顯示出來。

模式視窗有六個輸入框,需要輸入六位數,這是在使用驗證器時提供的。如果受害者通過簡訊使用身份驗證,那麼身份驗證程式碼有7位數字,模式視窗將多一個輸入框。此邏輯在模式視窗程式碼中實現。收到的方法屬性等於“retryApi”的訊息會刪除所有插入的數字,並以紅色顯示錯誤訊息。

輸入驗證碼後,出現錯誤資訊

總結

CopperStealer的幕後攻擊者會經常發起攻擊,研究人員將繼續監控他們的部署,因為攻擊者找到了更多針對不知情的受害者的方法。在分析此程序時,研究人員發現此擴充套件程式與之前報告的惡意軟體元件之間存在多個相似之處,其中之一是惡意擴充套件程式和CopperStealer是從之前記錄的同一個dropper和相同的傳輸載體傳播的。

另一個驚人的相似之處是惡意擴充套件的命令和控制(C&C)域具有與域生成演算法(DGA)域相同的格式,這些域被追溯為屬於先前版本的CopperStealer。格式是由16個十六進位制字元組成的字串。此外,他們的兩個C&C伺服器都是使用PHP框架“CodeIgniter”構建的。這些屬性向我們暗示,惡意軟體和擴充套件程式背後的開發人員或運營商可能存在關聯。

建議使用者和組織從官方平臺下載他們的軟體、應用程式和更新,以緩解CopperStealer等惡意軟體帶來的風險和威脅。