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等惡意軟件帶來的風險和威脅。