创意工坊模组供应链投毒与凭证窃取诊断矩阵
Steam 创意工坊(Steam Workshop)为《Garry's Mod》、《僵尸毁灭工程》、《拆迁》等沙盒游戏托管了海量的玩家创作扩展。黑客攻击者常采用“供应链投毒”手段:通过低价收购长期停更的高订阅量模组,或利用钓鱼邮件盗取原作者 Steam 账号,随后推送夹带恶意代码的静默更新。受害玩家的本地客户端会在后台自动拉取更新,触发木马下载、后门外联或盗取浏览器 Cookie 与 Steam 会话令牌。
| 攻击载荷类型 | 底层执行机理 | 目标窃取资产 | 典型异常征兆 |
|---|---|---|---|
| 混淆 Lua 脚本 | Base64/XOR 深度加密字符串与 RunString 动态执行 | Discord Token、浏览器密码库 | 杀毒软件报警 addons 缓存目录 |
| HTTP 隐蔽外联通道 | 调用游戏内 http.Fetch 或 http.Post 回传数据 | Steam 会话 Cookie、硬件机器码 | 单机离线模式下向未知 IP 发起网络请求 |
| 二进制加载器(Dropper) | Lua 引导释放外部恶意动态链接库(.dll) | 获得系统最高权限、植入挖矿木马 | Windows Defender 拦截未知扩展 DLL |
| 创意工坊自动推送更新 | 创作者账号被黑后推送静默版本拉取 | 玩家本地无感知静默执行 | 进游戏突然弹出未知弹窗或游戏无故闪退 |
第一步:排查本地创意工坊缓存中的混淆脚本
创意工坊下载的模组文件保存在 Steam 安装库的特定数字文件夹内:
- 打开目标游戏的创意工坊物理缓存目录:
[SteamLibrary]\steamapps\workshop\content\[游戏AppID]\
(例如《Garry's Mod》的 AppID 为 4000)。
2. 使用 PowerShell 在该目录内全局深度检索高危动态执行函数:
Get-ChildItem -Path "[SteamLibrary]\steamapps\workshop\content\4000" -Recurse -Filter "*.lua" | Select-String -Pattern "compilestring", "RunString", "fromhex", "base64"
- 正常的单机或联机 Mod 极少对核心玩法逻辑采用多层 Base64 嵌套加密。若检索结果中包含大量乱码字符串、或直接包含远程 URL 请求,应立即视作高危可疑对象。
第二步:监控可疑网络回传与 C2 远控通信
排查 Mod 是否在单机状态下暗中向外发送窃密数据:
- 下载并运行微软官方 Sysinternals 工具包中的
TCPView。 - 在进程列表中筛选该游戏主程序(如
hl2.exe或ProjectZomboid64.exe)。 - 启动游戏并加载单人离线存档。
- 观察 TCPView:若在单机游戏中,该进程持续向未知境外 IP 地址、Discord Webhook 接口或短链接域名发起 HTTP/HTTPS 连接,表明当前激活的模组中存在恶意外联木马。
- 立即在任务管理器中强制结束游戏进程。
第三步:应急响应、账号重置与安全加固
一旦确认加载了投毒模组:
- 立即在 Steam 创意工坊中点击“取消订阅全部物品”,并彻底物理删除
steamapps\workshop\content\[AppID]对应文件夹。 - 强制注销所有其他设备的登录会话:
- 打开 Steam 客户端 > 设置 > 安全 > 点击“取消对所有其他设备的授权”。
- 使用未受感染的设备(如手机)立刻修改 Steam 账户密码。
- 启动 Windows Defender 深度脱机查杀,清除潜在的常驻后门:
Start-MpWDOScan
- 登录 Steam 开发者 API 页面(
https://steamcommunity.com/dev/apikey),若发现存在未经许可注册的 API Key,必须立即点击“撤销”,切断中间人拦截通道。