本帖最后由 火绒安全实验室 于 2025-3-21 09:40 编辑
游戏MOD(即游戏修改器)是一种能够对游戏进行修改或增强的程序,因其能够提升游戏体验,在玩家群体中拥有一定的市场。然而,这类程序大多由第三方开发者制作,容易缺乏完善的安全保障机制,这就为不法分子提供了可乘之机,使得游戏MOD逐渐成为被盗号程序利用的对象。恶意程序开发者通常将恶意程序伪装成热门游戏MOD,并宣称这些MOD拥有“无限资源”“无敌模式”等功能,吸引玩家下载。部分恶意程序甚至还会向电脑植入后门以便长期潜伏,进一步窃取隐私信息或发起僵尸网络攻击。 游戏MOD
近期,火绒安全情报中心检测到一款伪装成游戏MOD的盗密程序(Lumma Stealer)。该程序通过伪造游戏MOD“风灵月影”的官网和下载链接,诱导用户下载安装。此类恶意程序能够窃取用户的游戏账号和密码等敏感信息,使用户面临严重的安全风险。火绒安全提醒广大用户务必从官方或可信渠道下载软件,避免因使用来路不明的程序导致账号被盗或数据泄露。目前,火绒安全产品可对上述病毒进行拦截查杀,建议广大用户及时更新病毒库以提高防御能力。 查杀图
根据火绒安全情报中心统计,已有部分用户在不知情的情况下下载并安装了该盗密程序,导致游戏账号被盗、游戏账号内的货币和道具等虚拟资产受损,甚至与游戏账号绑定的支付账户也受到了影响。 游戏被盗号
该盗密程序所在的伪造页面与官方页面几乎完全相同。 伪造页面 官方网站
其伪造网站在搜索引擎中的排名也处于靠前位置。 搜索引擎
样本执行流程图如下: 流程图
一、Lumma Stealer样本分析 第一阶段 初始样本通过将压缩包附带的数个数据文件伪装成正常的软件文件夹结构。其本质是利用“白加黑”的方式来执行恶意代码。 文件夹结构
该样本的恶意DLL采用增大体积的方法绕过云上传。 增大体积
其恶意代码Loader集中在黑文件MindClient.dll中,通过Setup.exe进行白加黑启动,并将恶意函数隐藏在DLLMain初始化的_cinit函数中。 具体加载流程为:DLLEntryPoint()→DLLMain()→_CRT_INIT()→_cinit()→_initterm_e()→__InitCPLocHASH() 恶意函数加载流程
其恶意代码shellcode主要存储在文件pulque.vcf与affifdavit.zip(伪装的压缩包文件)中。恶意函数会从这些文件中读取恶意代码,并将其加载到内存中。 从文件中读取恶意代码
该恶意代码通过进程镂空技术进行加载:首先,加载dbghelp.dll;接着,将dbghelp.dll中.text区段的内存属性修改为可写;之后,将其自身复制到.text区段;随后,修改并恢复该区段的内存属性;最后,执行恶意代码。 进程镂空加载恶意代码
该恶意代码通过PEB获取kernel32.dll、ntdll.dll。接着,借助CRC算法构建Hash,之后通过Hash匹配获取系统API,并构造一个必要API数组。 构造必要系统API
完成API数组的构造后,再次利用进程镂空技术进行加载:首先,通过加载pla.dll实现进程镂空;随后,将其自身复制到已完成镂空操作的pla.dll中并进行加载。 再次进程镂空
随后,通过同样的方式再次构造API数组,此次获取到的API数量有所增加。 获取更多API
之后,将病毒的主要文件复制到C:\Users\Admin\AppData\Roaming\aah路径下,并创建进程C:\Users\Admin\AppData\Roaming\aah\TiVoDiag.exe(前提是该进程不存在)。 复制恶意文件
然后,再次获取关键API,其中包含网络相关的API。 网络相关API
接着,通过进程Token查询进程的完整性级别。 查询进程的完整性级别
随后,通过com组件{00021401-0000-0000-C000-000000000046}创建快捷方式,进一步实现持久化操作。 com组件快捷方式
之后,恶意代码再次利用进程镂空技术,将其自身注入到shdocvw.dll中,并创建more.com挂起进程(more.com为查看文本命令,类似于Linux系统中的cat命令)。 进程镂空创建挂起进程
接着,通过天堂之门对挂起的more.com进程进行代码注入。 天堂之门
对X64代码进行分析发现,该恶意代码主要通过syscall系统调用实现API调用。 syscall
通过分析syscall code可知,该恶意代码主要来源于参数[ebp+8]。经分析,其主要利用的syscall code如下。 syscall code
之后,通过天堂之门进行系统调用NtCreateSection与NtMapViewOfSection,最终实现恶意代码对more.com进程的内存映射。 恶意代码映射
随后,将其最终shellcode进行加密,并写入到临时文件夹。 写入本地临时文件夹、恶意代码
之后,再次通过天堂之门进行系统调用NtSetContextThread、ZwSetThreadContext、ResumeThread,以恢复more.com的进程挂起。 恢复挂起进程more.com
第二阶段 恶意代码通过获取大量API的方式进行初始化,接着解密第一阶段生成的临时恶意代码文件,随后将解密后的恶意代码注入svchost.exe,以完成恶意代码的利用。 运行流程
首先,恶意代码通过获取大量API的方式,完成其运行环境的初始化。 获取API
接着,将计算机名字生成的密钥作为解密密钥,对临时文件进行解密。 解密临时文件
解密出来的恶意代码包含配置信息和用于第三阶段的内存PE文件,该文件属于Lumma Stealer。 解密出配置信息 解密出内存PE
之后,调用天堂之门完成对svchost进程的注入。此次注入所使用的syscall系统调用代码与第一阶段不同,其syscall code已更改为[rbp+0C]。 天堂之门
恶意代码通过进程镂空rpcrt4.dll的方式创建svchost.exe进程。 svchost进程创建
接着,再次通过天堂之门实现对X64系统的调用,最终实现对svchost的恶意代码注入。 在此过程中,恶意代码切换X64环境分别调用了以下函数: NtMapViewOfSection 0x0003; NtWriteVirtualMemory 0x003a; NtProtectVirtualMemory 0x0050; NtResumeThread 0x0052。 syscall injet
第三阶段 对解密出的内存PE文件进行分析发现,它是Lumma Stealer的窃密程序。该文件能够获取剪贴板信息、Steam token以及浏览器账号密码数据库等信息。 剪贴板信息
最后,将数据进行7z压缩,并上传至域名sterpickced.digital,完成信息窃密。
二、附录 C&C:
HASH:
|