游戲MOD(即游戲修改器)是一種能夠?qū)τ螒蜻M(jìn)行修改或增強(qiáng)的程序,因其能夠提升游戲體驗(yàn),在玩家群體中擁有一定的市場。然而,這類程序大多由第三方開發(fā)者制作,容易缺乏完善的安全保障機(jī)制,這就為不法分子提供了可乘之機(jī),使得游戲MOD逐漸成為被盜號(hào)程序利用的對象。惡意程序開發(fā)者通常將惡意程序偽裝成熱門游戲MOD,并宣稱這些MOD擁有“無限資源”“無敵模式”等功能,吸引玩家下載。部分惡意程序甚至還會(huì)向電腦植入后門以便長期潛伏,進(jìn)一步竊取隱私信息或發(fā)起僵尸網(wǎng)絡(luò)攻擊。

近期,火絨安全情報(bào)中心檢測到一款偽裝成游戲MOD的盜密程序(Lumma Stealer)。該程序通過偽造游戲MOD“風(fēng)靈月影”的官網(wǎng)和下載鏈接,誘導(dǎo)用戶下載安裝。此類惡意程序能夠竊取用戶的游戲賬號(hào)和密碼等敏感信息,使用戶面臨嚴(yán)重的安全風(fēng)險(xiǎn)?;鸾q安全提醒廣大用戶務(wù)必從官方或可信渠道下載軟件,避免因使用來路不明的程序?qū)е沦~號(hào)被盜或數(shù)據(jù)泄露。目前,火絨安全產(chǎn)品可對上述病毒進(jìn)行攔截查殺,建議廣大用戶及時(shí)更新病毒庫以提高防御能力。

根據(jù)火絨安全情報(bào)中心統(tǒng)計(jì),已有部分用戶在不知情的情況下下載并安裝了該盜密程序,導(dǎo)致游戲賬號(hào)被盜、游戲賬號(hào)內(nèi)的貨幣和道具等虛擬資產(chǎn)受損,甚至與游戲賬號(hào)綁定的支付賬戶也受到了影響。
游戲被盜號(hào)

偽造頁面

官方網(wǎng)站
其偽造網(wǎng)站在搜索引擎中的排名也處于靠前位置。
搜索引擎

流程圖
初始樣本通過將壓縮包附帶的數(shù)個(gè)數(shù)據(jù)文件偽裝成正常的軟件文件夾結(jié)構(gòu)。其本質(zhì)是利用“白加黑”的方式來執(zhí)行惡意代碼。
文件夾結(jié)構(gòu)

增大體積
其惡意代碼Loader集中在黑文件MindClient.dll中,通過Setup.exe進(jìn)行白加黑啟動(dòng),并將惡意函數(shù)隱藏在DLLMain初始化的_cinit函數(shù)中。具體加載流程為:DLLEntryPoint()→DLLMain()→_CRT_INIT()→_cinit()→_initterm_e()→__InitCPLocHASH()

惡意函數(shù)加載流程
其惡意代碼shellcode主要存儲(chǔ)在文件pulque.vcf與affifdavit.zip(偽裝的壓縮包文件)中。惡意函數(shù)會(huì)從這些文件中讀取惡意代碼,并將其加載到內(nèi)存中。
從文件中讀取惡意代碼
該惡意代碼通過進(jìn)程鏤空技術(shù)進(jìn)行加載:首先,加載dbghelp.dll;接著,將dbghelp.dll中.text區(qū)段的內(nèi)存屬性修改為可寫;之后,將其自身復(fù)制到.text區(qū)段;隨后,修改并恢復(fù)該區(qū)段的內(nèi)存屬性;最后,執(zhí)行惡意代碼。
進(jìn)程鏤空加載惡意代碼
該惡意代碼通過PEB獲取kernel32.dll、ntdll.dll。接著,借助CRC算法構(gòu)建Hash,之后通過Hash匹配獲取系統(tǒng)API,并構(gòu)造一個(gè)必要API數(shù)組。
構(gòu)造必要系統(tǒng)API
完成API數(shù)組的構(gòu)造后,再次利用進(jìn)程鏤空技術(shù)進(jìn)行加載:首先,通過加載pla.dll實(shí)現(xiàn)進(jìn)程鏤空;隨后,將其自身復(fù)制到已完成鏤空操作的pla.dll中并進(jìn)行加載。
再次進(jìn)程鏤空
隨后,通過同樣的方式再次構(gòu)造API數(shù)組,此次獲取到的API數(shù)量有所增加。

獲取更多API
之后,將病毒的主要文件復(fù)制到C:\Users\Admin\AppData\Roaming\aah路徑下,并創(chuàng)建進(jìn)程C:\Users\Admin\AppData\Roaming\aah\TiVoDiag.exe(前提是該進(jìn)程不存在)。
復(fù)制惡意文件
然后,再次獲取關(guān)鍵API,其中包含網(wǎng)絡(luò)相關(guān)的API。
網(wǎng)絡(luò)相關(guān)API
接著,通過進(jìn)程Token查詢進(jìn)程的完整性級(jí)別。
查詢進(jìn)程的完整性級(jí)別
隨后,通過com組件{00021401-0000-0000-C000-000000000046}創(chuàng)建快捷方式,進(jìn)一步實(shí)現(xiàn)持久化操作。
com組件快捷方式
之后,惡意代碼再次利用進(jìn)程鏤空技術(shù),將其自身注入到shdocvw.dll中,并創(chuàng)建more.com掛起進(jìn)程(more.com為查看文本命令,類似于Linux系統(tǒng)中的cat命令)。

進(jìn)程鏤空創(chuàng)建掛起進(jìn)程
接著,通過天堂之門對掛起的more.com進(jìn)程進(jìn)行代碼注入。
天堂之門
對X64代碼進(jìn)行分析發(fā)現(xiàn),該惡意代碼主要通過syscall系統(tǒng)調(diào)用實(shí)現(xiàn)API調(diào)用。
syscall
通過分析syscall code可知,該惡意代碼主要來源于參數(shù)[ebp+8]。經(jīng)分析,其主要利用的syscall code如下。
syscall code
之后,通過天堂之門進(jìn)行系統(tǒng)調(diào)用NtCreateSection與NtMapViewOfSection,最終實(shí)現(xiàn)惡意代碼對more.com進(jìn)程的內(nèi)存映射。
惡意代碼映射
隨后,將其最終shellcode進(jìn)行加密,并寫入到臨時(shí)文件夾。
寫入本地臨時(shí)文件夾、惡意代碼
之后,再次通過天堂之門進(jìn)行系統(tǒng)調(diào)用NtSetContextThread、ZwSetThreadContext、ResumeThread,以恢復(fù)more.com的進(jìn)程掛起。
恢復(fù)掛起進(jìn)程more.com
第二階段
惡意代碼通過獲取大量API的方式進(jìn)行初始化,接著解密第一階段生成的臨時(shí)惡意代碼文件,隨后將解密后的惡意代碼注入svchost.exe,以完成惡意代碼的利用。
運(yùn)行流程
首先,惡意代碼通過獲取大量API的方式,完成其運(yùn)行環(huán)境的初始化。
獲取API
接著,將計(jì)算機(jī)名字生成的密鑰作為解密密鑰,對臨時(shí)文件進(jìn)行解密。
解密臨時(shí)文件
解密出來的惡意代碼包含配置信息和用于第三階段的內(nèi)存PE文件,該文件屬于Lumma Stealer。
解密出配置信息

解密出內(nèi)存PE
之后,調(diào)用天堂之門完成對svchost進(jìn)程的注入。此次注入所使用的syscall系統(tǒng)調(diào)用代碼與第一階段不同,其syscall code已更改為[rbp+0C]。
天堂之門
惡意代碼通過進(jìn)程鏤空rpcrt4.dll的方式創(chuàng)建svchost.exe進(jìn)程。
svchost進(jìn)程創(chuàng)建
接著,再次通過天堂之門實(shí)現(xiàn)對X64系統(tǒng)的調(diào)用,最終實(shí)現(xiàn)對svchost的惡意代碼注入。在此過程中,惡意代碼切換X64環(huán)境分別調(diào)用了以下函數(shù):NtMapViewOfSection 0x0003;NtWriteVirtualMemory 0x003a;NtProtectVirtualMemory 0x0050;
syscall injet
第三階段
對解密出的內(nèi)存PE文件進(jìn)行分析發(fā)現(xiàn),它是Lumma Stealer的竊密程序。該文件能夠獲取剪貼板信息、Steam token以及瀏覽器賬號(hào)密碼數(shù)據(jù)庫等信息。
剪貼板信息
最后,將數(shù)據(jù)進(jìn)行7z壓縮,并上傳至域名sterpickced.digital,完成信息竊密。