趨勢科技偵測到 Mac 惡意程式 MacStealer 正在透過網站、社群媒體及 Twitter、Discord與 Telegram 即時通訊平台散播。駭客集團盜用合法的P2E (Play-to-Earn,邊玩邊賺)遊戲的圖片並宣稱提供遊戲測試人員的工作來誘騙使用者下載。
我們最近分析了一個名為「 MacStealer」的 Mac 惡意程式 (趨勢科技偵測名稱:TrojanSpy.MacOS.CpypwdStealer.A),這是一個專門竊取虛擬加密貨幣錢包及資訊的惡意程式,它會偽裝成一個 P2E 遊戲。我們已經發布警告請使用者避開此威脅,本文詳細探討此惡意程式的技術細節以及駭客用來感染裝置與竊取使用者資訊的散播技巧。
我們的分析是根據接獲通報的原始樣本,隨後我們發現 MacStealer 的原始碼已經被某線上公開掃描服務所揭露。該惡意程式目前是經由第三方網站散布,它會盜用真實 P2E 遊戲的影像和圖片,同時也經由社群媒體和 Twitter、Discord 及 Telegram 即時通訊平台散播。駭客會假扮成合法遊戲公司來招募程式測試人員,藉此誘騙受害者下載他們的應用程式。
攻擊過程
誘騙新玩家
有別於其他冒牌的應用程式藉由暗中重導使用者來感染裝置的作法,駭客毫不掩飾地直接複製現有 P2E 遊戲的網頁,其 Twitter 帳號和網站只是誘騙使用者下載 MacStealer 的門面。惡意程式一旦執行,接著使用者在介面上輸入自己的密碼之後,惡意程式就會立即竊取裝置的某些資訊。
我們的感測器在一次例行檢查當中偵測到我們所分析的高風險樣本,在仔細研究之後我們發現「worldofcreatures[.]io」這個網站與此樣本有所關聯,我們上網快速搜尋一下之後發現這個網站在 Twitter 上猛打廣告。
我們檢查了一下該網站的背景,發現冒牌遊戲的網頁是 2023 年 1 月才創立,所有圖片跟文字都是直接取自另一個 P2E 遊戲的網站。冒牌遊戲 Twitter 頁面上的某些影像也是直接取自正牌遊戲的社群媒體頁面,而且是 2022 年 10 月才建立,相較於原合法遊戲的帳號建立時間 (2021 年) 來說相對較新。一些聽過該遊戲、但卻不知情的使用者,很可能就會受騙以為這是原合法遊戲的官方網頁與社群媒體帳號。
不過,兩者的網站還是有許多不同之處 (如圖片、名稱、公司),細心的使用者還是分辨得出來。此外,冒牌遊戲的社群媒體貼文中還提供了遊戲下載獎勵,讓新玩家以為只要加入他們的 Discord 頻道並下載遊戲就可以拿到免費獎品。一旦使用者加入了該頻道,駭客就會透過聊天方式說服使用者點選一個惡意連結或下載一個惡意程式檔案。
技術細節
受害者一旦下載了這個冒牌遊戲,一個名為「 LauncherMacOS.dmg」的 DMG 檔案 (SHA256:8ea33c34647578b79dd8bb7dcf01a8ad1c79e7ada3fd61aca397ed0a2ac57276,趨勢科技偵測名稱:TrojanSpy.MacOS.CpypwdStealer.A) 就會在系統上執行,其臨時 (ad hoc) 簽章細節如下:
➜ MacOS jtool2 –sig -vvv Launcher
An embedded signature of 140064 bytes, with 4 blobs:
Blob 0:Type:0 @44:Code Directory (53878 bytes)
Version: 20400
Flags: adhoc (0x2)
CodeLimit: 0xa7b430
Identifier:Launcher-5555494433ac846113c4377a91a35c11864c6938 (@0x58)
Executable Segment:Base 0x00000000 Limit:0x00000000 Flags:0x00000000
CDHash: 2af323c4d425283c9a7103d8966b0f4e9311fef7 (computed)
# of hashes:2684 code (4K pages) + 3 special
Hashes @198 size:20 Type:SHA-1
Blob 1:Type:2 @53922:Empty requirement set (12 bytes)
Blob 2:Type:1000 @53934:Code Directory (86122 bytes)
Version: 20400
Flags: adhoc (0x2)
CodeLimit: 0xa7b430
Identifier:Launcher-5555494433ac846113c4377a91a35c11864c6938 (@0x58)
Executable Segment:Base 0x00000000 Limit:0x00000000 Flags:0x00000000
CDHash: a575679ef003ee28b6698f40ef7874390ce3817dc5211d31ecff0b2859d6f444 (computed)
# of hashes:2684 code (4K pages) + 3 special
Hashes @234 size:32 Type:SHA-256
Blob 3:Type:10000 @140056:Blob Wrapper (8 bytes) (0x10000 is CMS (RFC3852) signature)
這個臨時簽章對於 Apple 的 M1 處理器尤其重要,因為所有原生程式碼都必須擁有合法簽章 (即使只是臨時簽章) 否則作業系統就不會執行程式,而是直接在啟動時終止程式。
在查看 DMG 檔案中的應用程式套件時,我們發現它含有以下使用 Python 組譯器 Nuitka 建立的 Mach-O 二進位檔案:
Launcher (SHA256:5e8f37420efb738a820e70b55a6b6a669222f03e4a8a408a7d4306b3257e12ff,趨勢科技偵測名稱:TrojanSpy.MacOS.CpypwdStealer.A)
Nuitka 是一個不常見的組譯器,在測試期間,主要的 Mach-O 程式會出現一些可疑的網路活動。此外我們也注意到 Nuitka 可以將 Python 腳本組譯成 Mach-O 二進位檔案。
惡意程式本身的行為分成兩個階段:第一階段是執行一段 Nuitka 前導程式碼,這部分的程式碼本身無害,但卻會將一個惡意檔案植入系統的某個路徑。第二階段則是執行惡意檔案。
惡意程式的第一階段包括以下步驟:
1. 讀取名為「payload」的程式碼區段。
2. 將內容寫入以下路徑的多個檔案:<%TEMP%/onefile_%PID%_%TIME%>。我們發現了多個 Python 函式庫以及第二階段的 Mach-O 檔案 (Launcher SHA256:15d1afca780e2ea6ffec8c4862a3401e003b5e79ce5f9076b4eea4ab599bc4ce,趨勢科技偵測名稱:TrojanSpy.MacOS.CpypwdStealer.A),位置如下圖所示:
3. 修改環境變數 NUITKA_ONEFILE_PARENT,將它設為當前的處理程序編號。
4. 執行擷取出來的內容當中的主要執行檔﹐接著含有前導程式的版本將自己清除。
第二階段執行檔是一個基於 CPython 實作的程式,由 Nuitka 組譯器從 Python 腳本組譯而來。在組譯過程中,組譯器會拋棄某些資訊來改善程式執行效率,而 Nuitka 所轉譯的 Python 程式碼會失去原本的 bytecode 並且無法回復。正因為組譯的過程無法逆轉,因此我們無法從 Python 原始碼的角度來進行分析,不過其函式名稱及動態行為記錄檔還是提供了不少資訊。
1. 試圖竊取下列錢包的資料:
- Binance
- Exodus
- Keplr
- Metamask
- Phantom
- Trust wallet
2. 試圖竊取瀏覽器和鑰匙圈資料。我們在測試期間發現惡意樣本會使用下列指令來尋找系統上的檔案/目錄並蒐集系統資訊:
- /bin/sh -c uname -p 2> dev/null
- /bin/sh -c security default-keychain
3.使用 chainbreaker 程式來擷取鑰匙圈。
4.使用下列 osascript 指令來顯示一個對話方塊以騙取使用者的密碼。
osascript -e display dialog ‘MacOS wants to access the System Preferences’
對話方塊使用「System Preferences」為標題,並搭配一個「注意」圖示以及隱藏的預設回答。
5.嘗試將蒐集到的資訊壓縮成一個 Zip 檔案並發送到幕後操縱 (C&C) 伺服器: mac[.]cracked23[.]site。
MacStealer 一旦被下載到受害者的系統並開始執行,就會竊取受害者的虛擬加密貨幣錢包資料,並將錢包掏空。如果受害者沒有虛擬加密貨幣錢包可偷,那惡意程式就會竊取使用者的資訊和鑰匙圈。我們已看到一些受害者在 Twitter 上貼文警告其他使用者小心這起攻擊。
經由社群媒體和其他平台散播
我們在掃描其他社群媒體的貼文時發現有其他駭客正散播 MacStealer 惡意程式。由於他們使用了類似的手法、技巧與程序 (TTP),因此應該是同一個集團。以下我們用 Impulse Flow 冒牌遊戲作例子來加以說明。
駭客集團會建立一個 Twitter 帳號及相關的網站來幫冒牌遊戲打廣告。以下是一個 Twitter 帳號的範例 (含有藍勾勾驗證標章)。接著,他們會宣傳這是一個採用區塊鏈技術的免費 P2E 線上遊戲。
頁面上有一個 Linktree 連結 (https[://]linktr[.]ee/impulseflow),裡面列了他們其他頻道的連結:
- 網站:https[:]//play-impulseflow[.]com/
- 網站: https[:]//impulse-flow[.]gitbook[.]io/impulse_flow-whitepaper/
- 網站: https[:]//github[.]com/ImpulseFlowBeta/1[.]0[.]3
- Discord:https[:]//discord[.]gg/Impulse-flow
- Twitter: https[:]//twitter[.]com/lmpulse_Flow
- Telegram: https[:]//t[.]me/impulseflow_official
利用圖片搜尋,我們發現他們在 Twitter 及其他社群媒體帳號上使用的圖片和影像都是從 Ember Sword 這個遊戲偷來的。駭客集團利用這些平台來引誘受害者執行惡意程式檔案。以下是我們觀察到的一些手法:
a) 他們會宣傳這是一個公測版本的遊戲,藉此吸引玩家參加公測試來賺取獎勵。測試者會被邀請加入駭客建立的 Discord 或 Telegram 頻道,接著透過這些頻道提供惡意程式二進位檔案,或下載惡意程式二進位檔案的連結。有時這些連結或檔案會需要輸入密碼,此時也會透過 Discord 或 Telegram 頻道來提供密碼:https[://]twitter.com/lmpulse_Flow/status/1633735911782400000。
b) 駭客會私訊一些內容創作者來邀請他們幫忙宣傳遊戲。這應該是一種專門針對影響力人士的社交工程技巧。
- https[://]twitter.com/powrdragn/status/1638024217412390913
- https[://]twitter.com/ender_thien/status/1637659072379101185
- https[://]twitter.com/naerycrypto/status/1637226997817692161
- https[://]twitter.com/CiervoKing/status/1637220583736762370
c) 駭客會張貼假徵才廣告來吸引求職者下載惡意程式二進位檔案:https[://]twitter.com/witty_taeil/status/1631654308218298368。
表 1:含有假廣告的網站與社群媒體帳號,以及被駭客剽竊的正牌遊戲網站。 | ||||
網站 | Twitter 帳號 | 應用程式名稱 | 已確認會下載的檔案 (SHA256) | 被剽竊的正牌遊戲網站 |
ryzex[.]io/ | https[://]twitter.com/RyzeX_web3 | RYZEX | https[://]drunk-robots.com/ | |
pearlmetaverse[.]io/ | https[://]twitter.com/MetaversePearl | Pearl Land | ||
mysteriangame[.]com | https[://]twitter.com/MysterianGame | Mysterian | ||
worldofcreatures[.]io | https[://]twitter.com/WOC_io/ | World of Creatures | 8ea33c34647578b79dd8bb7dcf01a8ad1c79e7ada3fd61aca397ed0a2ac57276 | https[://]cryptureworld.com/ |
toncap[.]io | https[://]twitter.com/neuromaster9/status/1614074785289437184?s=61 https[://]twitter.com/yoshisakatahi/status/1615686095307522049?s=61 與其他冒牌遊戲程式不同的是這是使用個人帳號 (而非「官方」企業帳號) 進行剽竊。 | Ton Caps | 7bb7b51494c60401c8535baaa30cddb1c41c436e778092f30db5260c42cc70f6 | |
play-impulseflow[.]com | https[://]twitter.com/lmpulse_Flow | Impulse Flow | 02e1d9ea3a0c16106d173b0e6349a18a9aeafacc38650e359cfe1ee2298aaa45 | https[://]embersword.com |
https[://]twitter.com/PureMetaverse https[://]twitter.com/MetaPureLand | Pureland |
Twitter 上已經有人貼文警告大家注意冒牌遊戲與網站的相關惡意活動。
結論
雖然 P2E 遊戲並非新的發明,但近來似乎又再度掀起熱潮,所以駭客才會趕搭這波熱潮。MacStealer 惡意程式只是眾多搭上 P2E 熱潮的惡意程式之一。P2E 遊戲之所以特別成為令駭客覬覦的目標,原因就在於這類遊戲的經營模式需要用到虛擬加密貨幣和錢包。
由於駭客使用了罕見的途徑來散播惡意程式,包括使用 Discord 和 Telegram 的私訊直接與受害者聯繫,因此資安研究人員在研究其惡意程式派送機制時會有點困難。儘管歹徒這麼做需要花費額外力氣,但為了受害者的帳號 (也就是虛擬加密貨幣錢包),這麼做也值得。
惡意程式本身似乎不太精密,只需基本的技術能力就能製作,因為其原始碼是一個 Python 腳本。雖然主程式是使用 Nuitka 將 Python 腳本組譯成一個不容易反組譯的 Mach-O 二進位檔案,但程式碼本身並不複雜。不過對於想要利用逆向工程進行分析的資安人員來說卻有一定難度。該程式儘管單純,但會想到使用 Nuitka 來組譯成 Mach-O 二進位檔案,證明了只要用對方法、找到好的目標,駭客就能獲得豐厚報酬。在這起事件當中,駭客攻擊的是 P2E 遊戲玩家,這些玩家經常需要用到虛擬加密貨幣錢包。而駭客集團大部分的獲利來自於經由網站、Twitter 帳號及其他相關頻道,利用社交工程技巧將惡意程式發送至使用者裝置,再由惡意程式竊取其虛擬加密貨幣。
Discord 的使用者相當廣泛,其中之一就是 P2E 遊戲和玩家。由於 Discord 已經演變成一個遊戲玩家們彼此交換資訊的天堂,所以經由 Discord 的連結來下載遊戲,不論對一般玩家或測試者來說,都是稀鬆平常的事,不會馬上引起懷疑。而這也提高了駭客集團選中這個平台來散播惡意程式的機率。不過,正如一位受害者提到,駭客成立的頻道上少有互動,所以算是一個細微的警訊,值得大家注意。還有其他使用者警告說,他們在要求提供螢幕截圖或張貼帶有警語的推文時,馬上就被該頻道封鎖。
除此之外,由於 Twitter 最近才剛易主,再加上帳號驗證政策變更,駭客集團似乎是趁機輕鬆取得了一個通過藍勾勾驗證的帳號,所以才會給人一種合法的假象,讓人輕易相信冒牌遊戲以及該帳號的社交工程手法。而這項手法樣也讓駭客可以輕易在其他平台打廣告,如 TikTok、YouTube、Facebook。未來我們或許還會看到更多從腳本組譯出來的惡意程式,以及類似的散播伎倆。
為了避開及防範 MacStealer 這類的威脅,強烈建議使用者在從「非官方」來源或應用程式平台安裝軟體時要非常小心。此外,在裝置上安裝一套最新的資安軟體也有助於偵測、攔截、防範這類威脅所帶來的風險。
入侵指標 (IoC)
如需完整的入侵指標 (IoC) 清單,請至這裡下載。
MITRE TTP
原文出處:Mac Malware MacStealer Spreads as Fake P2E Apps 作者:Qi Sun 與 Luis Magisa