一位 NAS 用户近日发现,其媒体自动化堆栈(*arr stack)中混入了伪装成《南方公园》最新剧集的可执行文件。该文件名为 South Park S29E03 1080p WEB H264-MeGusta.exe,在公共追踪器上拥有 2,392 个种子节点。Sonarr 自动抓取了该文件并尝试导入,导致每 90 秒出现一次“路径不存在或不可访问”的错误日志。

恶意样本分析:基于垃圾数据的隐蔽载荷
qBittorrent 标记该下载为“完成”,但实际写入磁盘的数据量为零。经手动重新下载并分析,该 PE 文件架构为 x64 GUI,核心程序大小仅为 118 KB,其余约 886 MB 均为随机填充数据。这种设计旨在规避部分对大文件处理效率较低的扫描器。
版本信息显示公司名称为 "Freeware Developers",原始文件名为 SetupHelper.exe。逆向工程揭示,代码中存在大量无意义的 XOR 全局变量操作(如 dword_14000C020 ^= 0xF2C2EAC0;),纯粹用于混淆反编译器输出。
剥离混淆逻辑后,恶意行为仅包含六个步骤:
- 打开自身文件。
- 读取最后 64 字节作为配置。
- 利用配置解密隐藏在垃圾数据中的有效载荷。
- 在内存中手工构建 PE 结构。
- 指向 PEB-> ImageBaseAddress。
- 跳转执行。
整个过程中无任何文件落地磁盘。文件末尾的 64 字节配置结构如下:
| 偏移量 | 大小 | 描述 |
|---|---|---|
| 0x00 | 32 字节 | .data 段中的 32 字节 XOR 密钥 |
| 0x20 | 12 字节 | 国家检查列表(共 20 个国家) |
| 0x2C | 4 字节 | 有效载荷大小 ^ fnv1a |
| 0x30 | 4 字节 | (标志位:填充 > 8) ^ fnv1a(掩码) |
| 0x34 | 8 字节 | 有效载荷大小 ^ fnv1a |
| 0x3C | 4 字节 | 掩码 |
加密算法采用 ChaCha20,尽管攻击者通过全局变量隐藏常量,但仍可识别出标准字符串 expand 32-byte k。flags = 3 启用了反调试检查(包括 PEB->BeingDebugged 和调试端口查询)及反沙箱评分机制。若触发任一条件,程序将静默退出。
由于密钥直接嵌入文件中,无需运行即可通过 Python 脚本解密:
mask = bytes.fromhex("56951de331cd7f254bf1931533dd82bc3c8bf542f0d1ed5736a40f394c51d0a1")
h = fnv1a(mask)
size = u64(footer, 0x34) ^ (h | h << 32)
fl = h ^ u32(footer, 0x30)
key = xor(mask, footer[:32])
nonce = footer[32:44]
payload = chacha20(key, nonce, data[-64 - pad - size : -64 - pad])
解密后的第二层 PE 文件大小为 929 KB,由 MSVC 编译,使用 C++20 标准,并捆绑了 zlib 库。
功能模块与数据窃取目标
内层恶意软件加密了所有字符串,剥离了导入表,仅在运行时解析 API。然而,WinMain 函数以明文形式枚举了所有加载模块,揭示了其主要功能:
osinfo
browsers
telegram
wallets
discord
steam
clipboard
remoteaccess
credentialmanager
authy
notes
obs
ssh
email
games
filegrabber
其他字符串通过 AES-128-CTR 模式加密,每个字符串使用独立密钥,共有 672 处调用点。通过 Unicorn 引擎模拟指令提取密钥、IV 和密文,成功解密了其中 601 个字符串。具体窃取目标包括:
- 浏览器:Chrome, Edge, Brave, Opera, Opera GX, Vivaldi, Firefox(包含针对 Chrome 新应用程序加密绕过代码)。
- 加密货币钱包:Exodus, Electrum, Atomic, Guarda, Coinomi, Ledger Live, Trezor Suite, Wasabi, .sub, Monero, Zcash, Armory 以及扩展钱包。
- 密码管理器:KeePass, KeePassXC, Bitwarden, 1Password, NordPass, RoboForm, Windows 凭证管理器。
- 账户令牌:Telegram, Discord Token, Steam Cookies, Roblox Cookies, Minecraft 账户, Authy。
- 开发者工具:SSH, AWS, Azure, GCloud, Kube, Docker。
- 远程访问工具:AnyDesk, TeamViewer, WinSCP, FileZilla, mRemoteNG, RDCMan。
- 其他应用:Outlook, Thunderbird, VPN 配置, OBS 设置, 粘贴笔记(Sticky Notes)以及桌面文档。
收集到的数据通过捆绑的 zlib 压缩后发送。
C2 基础设施与域名注册
该恶意软件未硬编码服务器地址,而是从以下资源解密获取:
www.youtube.com/channel/UC18vFC1xgebddr_7NsvgBYA
gist.githubusercontent.com/jasonterra69/48d9e264c05843f0cdc302143b4400c8/raw
[[
]]
ZhxchsdfhSGdfgsgdfAJsakdaksdk2364236AH
上述内容包含一个 YouTube 频道、一个 GitHub Gist、两个括号字符以及一个看似键盘乱打的密钥。YouTube 频道名为 "bubblegym",创建于 2026 年 9 月 14 日。通过对 Base64 解码后的数据与该密钥进行异或运算,可还原出实际的 C2 地址:
b = base64.b64decode("OA0dDQ0HFBQHJyIHEkkQCAlJLS0JTgwAAB8S")
k = b"ZhxchsdfhSGdfgsgdfAJsakdaksdk2364236AH"
bytes(x ^ k[i % len(k)] for i, x in enumerate(b))
值得注意的是,该地址同时也硬编码在二进制文件中作为备用方案,这与通过外部源动态获取地址以增强隐蔽性的初衷相悖。
相关域名 BEENETPROTECT.COM 于 2026 年 9 月 14 日注册,注册商为 Cloudflare, Inc.,名称服务器为 DONALD.NS.CLOUDFLARE.COM 和 JULISSA.NS.CLOUDFLARE.COM。恶意软件构建日期为 10 月 6 日,并于 10 月 8 日上传至 Torrent。
防护建议
对于使用 Sonarr 或 Radarr 等媒体自动化工具的用户,虽然这些服务本身无法执行 EXE 文件,但风险在于用户可能在下载文件夹中误双击运行该文件。建议在自动化流程中采取以下措施:
- 在排除文件名规则中添加
*.exe,*.scr,*.lnk,*.bat,*.cmd。 - 遇到此类文件时,使用屏蔽列表功能并从客户端删除。
- 若特定追踪器持续提供此类恶意文件,考虑降级或放弃使用该追踪器。





