游戏玩家们要小心了:Windows木马正在以作弊和修改程序为诱饵进行传播,目的是窃取加密货币和密码
Dr.Web AV-Desk新闻 | Hot news | Doctor Web公司新闻
2025年7月22日
导语
2024年Doctor Web公司调查了一起试图对俄罗斯企业实施定向攻击的信息安全事件,攻击方案中使用了一种恶意软件,是利用常用网络浏览器中存在的DLL搜索顺序拦截漏洞来感染目标系统(DLLSearchOrderHijacking)。Windows应用程序启动时,会按照特定的顺序在各个存储库搜索所需要的库。攻击者采取的“欺骗”手段是将恶意DLL文件放置在首先执行搜索的位置,比如目标软件的安装目录,而且木马文件的名称是位于搜索优先级较低的目录中的合法库的名称,这样存在漏洞的程序在启动时就会首先加载恶意DLL,而恶意我家或成为程序的一部分并享有同等权限。
对此次事件进行调查后,我公司技术专家在Dr.Web反防病毒产品添加了跟踪功能,可以阻止恶意软件利用程序的DLL搜索顺序拦截漏洞。在研究此功能的遥测数据时,我公司反病毒分析师发现了之前未知的恶意软件同时被下载到我公司多个客户的浏览器。通过对这些案例的研究,我们发现了新的黑客活动,特发此文进行通报。
恶意软件 Trojan.Scavenger 感染计算机的过程分为多个阶段,首先是木马下载程序利用各种方式进入目标系统。我们的专家已确定此黑客活动有两条操作链,涉及不同数量的木马组件。
利用三个加载器的操作链
在这个感染操作链中,起始组件使用的是恶意软件 Trojan.Scavenger.1, 这是是一个动态链接库(DLL),可以作为盗版游戏的一部分传播,也可以各种游戏补丁、作弊程序和模组的名义通过种子和游戏主题网站传播。接下来我们来看一个骗子将木马伪装成补丁的示例。
Trojan.Scavenger.1 以ZIP压缩包形式分发,并附带安装说明,说明中鼓动潜在受害者在OblivionRemastered游戏目录中放置一个“补丁”,慌称是可以提高游戏性能:
Drag umpdc.dll and engine.ini to the game folder:
\steamapps\common\Oblivion Remastered\OblivionRemastered\Binaries\Win64
Engine.ini will automatically be loaded by the module.
The module will also apply some native patches to improve performance
恶意文件的名称也并非攻击者的偶然选择:Windows操作系统中,名为 umpdc.dll的合法文件位于系统目录%WINDIR%\System32,是各种程序(包括游戏)使用的图形API的一部分。如果受害者的游戏版本存在未修补的漏洞,则可复制的木马文件将随之自动启动。值得注意的是,进行调查时OblivionRemastered游戏的最新版本能够正确处理umpdc.dll库的搜索顺序,因此在此示例中 Trojan.Scavenger.1 没能自动从这个库启动并继续进行感染。
而如果能成功启动,木马会从远程服务器下载并开始下一步,也就是加载器 Trojan.Scavenger.2(tmp6FC15.dll),这个加载器会下载安装这个木马家族的其他模块 Trojan.Scavenger.3 和 Trojan.Scavenger.4。
Trojan.Scavenger.3 是一个动态库version.dll,会复制到基于Chromium引擎构建的一个目标浏览器的目录,与%WINDIR%\System32目录下的一个系统库同名。存在DLL搜索顺序漏洞的浏览器不会检查此类名称的库从何处加载,由于木马文件位于浏览器目录中,因此比合法的系统库具有优先权,会首先被加载。我们的反病毒分析师记录到的是在GoogleChrome、MicrosoftEdge、Yandex和Opera浏览器中利用此漏洞的进攻.
一旦启动,Trojan.Scavenger.3 就会禁用目标浏览器的保护机制,例如启动沙箱的机制,从而导致浏览器不再能隔离所执行的JS代码。此外,该木马还会禁用浏览器中的扩展名检查,所采取的方式是根据是否存在导出函数CrashForExceptionInNonABICompliantCodeRange来识别相应的Chromium库,然后,会在该库中搜索扩展名检查例程并对其进行相应的修补。
然后,该木马会修改浏览器中安装的目标扩展,并从C2服务器以JavaScript代码的形式接收所需修改。更改的对象是:
-
加密币钱包
- Phantom
- Slush
- MetaMask
-
密码管理器
- Bitwarden
- LastPass
被修改的并不是原始文件,而是木马事先放置在%TEMP%/ServiceWorkerCache目录中的副本。为了让浏览器“获取”修改后的扩展名,Trojan.Scavenger.3 会拦截对函数CreateFileW和GetFileAttributesExW的控制,将原始文件的本地路径替换为修改后的文件路径(Dr.Web将其侦测为 Trojan.Scavenger.5 )。
修改采用有两种形式:
- 向cookie添加时间戳;
- 添加向C2服务器发送用户数据的功能。
从Phantom、Slush和MetaMask加密钱包传输给攻击者的是私钥和助记词,从Bitwarden密码管理器发送的是登录cookie,而从LastPass窃取的是受害者添加的密码。
同时 Trojan.Scavenger.4 (profapi.dll)会复制到Exodus加密钱包应用的目录。木马随该程序自动启动,利用的还是DLL搜索顺序漏洞(原系统库profapi.dll位于目录%WINDIR%\System32,但木马文件利用漏洞在钱包启动时获取了加载优先级)。
启动后 Trojan.Scavenger.4 会拦截V8引擎与JavaScript和WebAssambly协同运行的函数v8::String::NewFromUtf8,并利用此功能件监视目标应用生成的JSON并获取各种用户数据。具体在Exodus程序木马会搜索并读取包含passphrase键的JSON,从而达到截获用户自定义助记词后解密或生成受害者加密钱包私钥的目的。接下来,木马会在加密钱包中找到私钥seed.seco,读取后并将其与之前获取的助记词一起发送到C2服务器。
利用两个加载器的操作链
这种操作链与第一个基本相同,只是藏在所谓游戏“补丁”和“作弊”软件压缩文档中不是 Trojan.Scavenger.1,而是 Trojan.Scavenger.2,变种,是一个扩展名为.ASI的文件,而非DLL文件(实际上,这是一个扩展名被修改的动态库)。
压缩文档附带的安装说明:
Copy BOTH the Enhanced Nave Trainer folder and "Enhanced Native Trainer.asi" to the same folder as the scripthook and launch GTA.
用户将文件复制到指定目录后这个恶意文件会在目标游戏启动时作为游戏插件自动启动,接下来就会执行之上描述的感染步骤。
木马家族特征
这个家族的大多数木马具有一些共同特征,其中之一是会检查是否在虚拟环境或调试模式运行。如果木马发现是人工环境就会终止运行。
另一个特点是与控制服务器通信采用同样的算法。建立通信时木马会通过发送两个请求来创建密钥并检查加密:第一个请求是获取密钥的一部分,密钥用于加密特定请求中的某些参数和数据。第二个是验证密钥,包含某些参数,例如随机生成的字符串、当前时间和加密的时间值。C2服务器使用之前收到的字符串对其进行响应。所有后续请求都包含时间参数,如果缺少时间参数,服务器将拒绝建立连接。
Trojan.Scavenger.1 更多详情
Trojan.Scavenger.2 更多详情
Trojan.Scavenger.3 更多详情
Trojan.Scavenger.4 更多详情
Trojan.Scavenger.5 更多详情
结语
我们通知了其软件因存在安全漏洞而被用于发动进攻的软件供应商,但供应商认为DLLSearchOrderHijacking类的漏洞不需要打补丁。应该说明的是,在我们侦测到 Trojan.Scavenger 恶意软件家族之前,Dr.Web反病毒产品内置的针对此类攻击的保护功能就已经成功阻止了相应浏览器的漏洞被利用,因此我公司产品的用户未受到这些木马的威胁。此次进攻调查结束后,产品中还添加了对Exodus加密钱包的保护。
失陷指标