BT索引站藏陷阱!私人矿池借色情游戏偷算力
-
作者:火绒安全
-
发布时间:2025-12-30
-
阅读量:748
近期,火绒安全团队接到用户反馈称,发现一个后台程序会占用大量CPU资源,随后,火绒安全团队溯源查明,该病毒源自BitTorrent索引站中的日本色情游戏,病毒作者采用“白加黑”手段,使游戏在启动时加载恶意模块。该恶意模块会依次检测虚拟机和逆向工具,最终通过创建傀儡进程注入挖矿木马以实施挖矿操作。该挖矿木马借助XMRig工具连接私人矿池,并通过计算RandomX哈希值来提供算力。在挖矿期间,该模块会长时间占用CPU性能和内存资源。若检测到任务管理器运行,挖矿行为将自动停止。目前,火绒安全产品可对上述木马进行拦截和查杀。

查杀图

下图显示,2025年12月18日,用户hentaigames**于Tokyo Toshokan BitTorrent索引站发布了该游戏的种子。此后,自2025年12月20日起,该种子内的游戏文件陆续被其他色情游戏论坛转载分享。另外,从用户hentaigames**所发布的游戏中随机选取4款进行测试,发现其中3款游戏存在挖矿病毒。基于此,推测该用户为病毒作者,而其他规模不一的色情游戏论坛仅起到传播作用。

Tokyo Toshokan BitTorrent 索引站

大小论坛分享该游戏

论坛分享游戏的大小与 BT 种子索引站中的大小相近
下图显示,从BT种子索引站与论坛下载的压缩包都存在病毒文件version.dll,对比图左侧为论坛中下载,右侧为BT种子索引站下载。

BT 种子索引站与论坛下载的压缩包内含文件对比图
经实测发现,该挖矿病毒会占用6%CPU性能与2GB左右内存用于计算哈希。

实测 CPU 与内存占用
一、样本分析
溯源发现其中被动手脚的恶意动态链接库名有 version.dll、cryptbase.dll、libEGL.dll 等,在不同游戏中会选取其中一种执行恶意代码。
其中 version.dll 为释放器、cacheapp64.exe 为注入器,最终目的为注入挖矿木马,期间会检测虚拟机、沙箱、杀毒软件等环境。而挖矿木马会连接私人矿池,接收矿池下发的任务(job)并计算哈希给矿池提供算力。

流程图
下面主要分析名为 version.dll 的恶意动态链接库。
1.1 version.dll(释放器)
version.dll 被 Kaiju Princess 2.exe 加载:游戏主程序为 Kaiju Princess 2.exe,该主程序会依赖 UnityPlayer.dll 动态链接库,该动态链接库会依赖 VERSION.dll,从而加载第一个恶意文件 version.dll。
该 version.dll 文件本该是 Windows 提供的 C:\Windows\System32\version.dll 文件,然而该病毒作者将插入了恶意代码的 version.dll 放在游戏目录下,从而使程序优先加载同目录下文件。
互斥体:该程序先通过互斥体(Global\DECOY_MUTEtgtggttgX)保证单实例运行,并创建新线程继续执行恶意代码。

互斥体与创建线程
检测 TPM(可信平台模块):打开 TPM 设备确认是否为真机。

打开 TPM 设备
随后休眠 1~3 秒,随后删除 CSIDL_APPDATA\Microsoft\\servicing64\\rescache\\pcuapp64.exe,创建 CSIDL_LOCAL_APPDATA\syscacheapp 目录。
检查文件 cacheapp64.exe(注入器):随后开始检查 cacheapp64.exe 文件是否存在,并且检查其是否大于或等于750MB,同时检查是否存在cacheapp64.exe的自启动项等情况。若其中任意一项不满足条件,则会继续执行。
释放注入器前的逻辑
特征定位与解密:随后遍历主游戏程序同目录并找出 *.pak 文件,通过特征码 -starttextures 与 -endtextures 定位 Base64 数据之后进行提取,Base64 解码后利用 RC4 流密码算法进行异或解密,其中密钥为 12345678901234567890123456789012。
随机填充:随后会解密出 cacheapp64.exe 程序,还会往里面再次填充 750MB 减去当前 cacheapp64.exe 程序大小的随机数据,从而使最终文件大小来到 750MB。

通过特征码定位

解密和随机写入填充

RC4 流密码算法
设置持久化:随后创建注册表 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell 键值对,设置值为 explorer.exe, C:\Users\Administrator\AppData\Local\syscacheapp\cacheapp64.exe,从而完成持久化,使用户每次登录都会执行一次 cacheapp64.exe。

设置持久化
特征定位与解密解压正常文件用于混淆视线:随后再通过特征码 `--_ST_Z--` 与 `--_EN_Z--` 定位 Base64 数据并解码,随后通过 RC4 算法(相同密钥)进行解密出压缩包数据后写入到 C:\Users\Administrator\AppData\Local\syscacheapp\appsid64.zip 中,随后将其解压,利用大量正常文件掩盖恶意文件 cacheapp64.exe。

检测杀毒软件并执行:随后检测杀毒软件 Avast 相关进程是否存在,若不存在则休眠 25~30 秒后利用 ShellExecuteExW 执行 cacheapp64.exe。

检测杀毒软件并执行
1.2 cacheapp64.exe(注入器)
互斥体:创建互斥体 `Global\\F4B8C7F7-9A21-4b0b-B838-D9F3A7B1234E` 防止同时多进程运行,检测 TPM 设备存在。
检查调试环境和工具:利用 IsDebuggerPresent 检测是否在调试,并检查是否存在 IDA、XDBG、WireShark 等逆向工具进程。

互斥体、检测 TPM、检测调试

检测调试进程

调试进程名列表
判断沙箱环境:随后,借助 NtDelayExecution 函数进行 10 秒的休眠操作。同时,通过两次调用 GetTickCount64 函数并计算其差值,以此判断该差值是否大于 9 毫秒,进而判定是否存在加速情况(此为对沙箱环境的判断)。不过,此处的 9 毫秒推测为编写错误,正常情况下应为 9000 毫秒。

防止文件过大:利用 GetFileSizeEx 获取文件大小,并判断是否大于 813 MB,若大于则直接退出进程。

检测文件大小
检测虚拟机:随后利用 GetRawInputDeviceInfoW 检测是否有 VID_80EE 或 PNP0F03 字符串,分别代表 VirtualBox 与 PS/2 老式鼠标设备名。

检测虚拟机
随后利用 EnumDeviceDrivers 遍历驱动,检测是否存在 VBoxSF、VBoxGuest、VBoxMouse、VBoxWddm 等驱动,若存在则说明该环境为 VirtualBox 虚拟机。

检测 VirtualBox 虚拟机
利用 WNetEnumResourceA 遍历网络资源,检测是否存在 VirtualBox Shared Folders。

检测 VirtualBox 虚拟机
通过指定动态库文件存在情况判断当前环境:搜索 C:\Windows\System32 目录下是否存在包含以下字符串的文件,主要是 Sandboxie、Avast、VirtualBox 相关软件,从而判断是否存在沙箱、杀毒软件,是否在虚拟机环境中。
SbieDll SxIn Sd2 snxhk cmdvrt32 VBoxDispD3D VBoxGL VBoxHook VBoxICD VBoxMRXNP VBoxNine VBoxSVGA VBoxTray
检测电池状态:通过 NtPowerInformation 获取系统电源信息,检查系统休眠文件存在、是否指定系统电源状态。
继续休眠三十秒,期间每间隔五千毫秒会中断一次,但最终仍会完成三十秒的休眠时长。推测此举是为了反沙箱加速。
解密出字符串与 PE 数据:随后运行时通过循环右移、异或、加减取模等算术运算解密出以下不同字符串,以及挖矿木马本体。

字符串/数据作用表

其中一个字符串解密代码
注入挖矿木马部分流程:随后将创建进程并注入挖矿木马,其中并未显式调用API名称,而是采用基于哈希的方式解析出API调用号,并通过该调用号间接完成相关功能调用。该流程中涉及的部分API包括:
利用 NtCreateFile、NtSetInformationFile、NtWriteFile、NtCreateSection 将挖矿木马文件创建并标记删除,随后建立映射关系。
利用 NtCreateUserProcess、NtMapViewOfSection 创建 cmd.exe 进程并伪造父进程为 explorer.exe,并将挖矿木马 PE 数据映射进 cmd.exe 进程。
利用 NtSetContextThread 设置 context,修改入口点与模块基址,从而完成注入操作。

注入挖矿木马部分流程
1.3 挖矿木马
该挖矿木马与注入器类似,正式挖矿之前也会检查沙箱相关模块、TPM 设备等内容,不同的是挖矿木马会实时检测 Taskmgr.exe、ProcessHacker.exe、perfmon.exe、procexp.exe、procexp64.exe 等系统监控相关工具,若检测到上述软件则会停止挖矿,若检测到上述软件关闭则会继续挖矿。

检测系统监控相关进程
随后该木马通过请求 https://rentrys.co/GzueSqAf/raw 或 https://pastebin.com/raw/WcTE2iw1 获取到挖矿配置,其中 url 键值为矿池 IP 和端口。
{
"autosave": false,
"cpu": { "enabled": true, "max-threads-hint": 20, "throttle": 90 },
"opencl": false,
"cuda": false,
"pools": [
{
"coin": null,
"algo": "rx/0",
"url": "188.137.240.64:443",
"user": "x",
"pass": "x",
"tls": true,
"keepalive": false,
"nicehash": true
}
]
}随后,向该 url 发送登录请求,账号与密码均为 x。说明,在登录过程中未设置钱包地址,或者类似于公共矿池,存在独立的账号和密码。基于此,可推测该矿池为私人矿池。
{
"id": 1,
"jsonrpc": "2.0",
"method": "login",
"params": {
"login": "x",
"pass": "x",
"agent": "SysOptimizer/3.2.1 (Windows NT 10.0; Win64; x64) libuv/1.48.0 gcc/15.1.0",
"algo": [
"rx/0",
"cn/2",
"cn/r",
"cn/fast",
"cn/half",
"cn/xao",
"cn/rto",
"cn/rwz",
"cn/zls",
"cn/double",
"cn/ccx",
"cn/1",
"rx/wow",
"rx/arq",
"rx/graft",
"rx/sfx",
"rx/yada",
"argon2/chukwa",
"argon2/chukwav2",
"argon2/ninja"
]
}
}随后矿池开始下发计算哈希的任务,随后计算 blob 的哈希,利用不同的 nonce 来计算,试图让计算出的哈希达到一定的条件 target。
{
"blob": "0a0ab8dac8ca063814d52de31d92b83175b1a4696d8c9016907f87ae617325f23a78e02edbcf7f000000df5d095f2266765a8596dac5567545d9de879786a9810661f504b370cc3ee3a24d02",
"job_id": "000000009f457031",
"target": "ff7f0000",
"algo": "rx/0",
"height": 389511,
"seed_hash": "0fb7dc92b17939eb774ea930f0aa418cc1753181ed40e1c7d6d3ff5b9a8c50e1"
}随后受害者系统中的挖矿木马会根据下发的任务配置进行 RandomX 哈希算法碰撞计算,计算出小于 target(0x00007fff)的哈希值(00003002),并发送至矿池服务器中,从而给私人矿池提供算力。
{
"id": 8,
"jsonrpc": "2.0",
"method": "submit",
"params": {
"id": "02c8520194612a5c",
"job_id": "000000009f457031",
"nonce": "268700df",
"result": "44a31551df2193c565eaf1494ddeec96cbb92c804ee35f0370c650d902300000",
"algo": "rx/0"
}
}
检查哈希是否符合 target 的 XMRig 开源项目中函数
火绒安全团队在此郑重提醒广大用户:切勿触碰安全红线!网络黑产常常利用色情、破解类软件作为载体传播病毒,此类软件背后往往暗挖矿木马、勒索病毒等恶意程序,不仅会侵占设备算力资源、导致硬件损耗加速,还可能窃取用户隐私数据,造成多重安全风险。目前,元旦、春节等节假日将至,不少用户会选择通过电脑等终端设备进行休闲娱乐,火绒安全在此特别提醒,选择电脑游戏或下载各类软件时,务必通过官方官网、正规应用平台等可信渠道获取,坚决远离来源不明的资源,避免因一时疏忽给恶意程序可乘之机。如需反馈相关病毒样本,可联系火绒安全官方客服,我们将持续跟踪各类新型恶意程序,为用户提供可靠的安全防护保障,守护大家度过一个安全舒心的假期。
二、附录
C&C:

HASH:


