腾讯某游戏客户端被投毒,今天打游戏的小心了
原创
佚名
佚名
星宇Sec
2026年11月5日 00:21
山东
去阅读
2026年11月4日凌晨,Level%20Infinite发布公告,确认《胜利女神:NIKKE》PC启动器的脚本文件可能遭到第三方篡改,并于当日凌晨完成紧急修复。此时距离官方CDN文件首次被改动已过去38天,距离安全研究者观察到载荷执行已过去36天18小时。这不是一起普通的账号盗号事件,而是一次完整的软件供应链入侵。攻击者没有碰安装包,而是改掉了启动器每天都会加载的官方脚本,让玩家在正常启动游戏的过程中执行了远控木马。
一、事件经过
2026年9月27日06:41至06:42,Level%20Infinite%20CDN上的四个官方JavaScript文件在23秒的窗口内被连续修改。这四个文件分别负责启动器的基础框架、图片资源、活动列表和Vue组件。攻击者没有替换整个文件,而是在合法代码中插入了一小段加载器,将远程地址编码为整数数组,运行时还原并动态插入<script>标签。若insightjs.com加载失败,代码会将顶级域替换为.org后重试。
从9月27日到10月23日,这段代码在CDN上潜伏了近一个月。10月23日下午,攻击者签发新证书,随后开始投递载荷。有受害主机的日志显示,木马在当天16:40左右首次启动。投递并非每次触发,一台被分析的电脑在约19次启动中只收到3次载荷。
11月3日16:11,社区首次发出公开警告。17:04至17:23,官方替换了其中三个文件。17:30,也就是北京时间11月4日01:30,官方完成客户端修复。然而第四个文件FeedList.feb647c9.js虽然早在10月28日就在源站恢复,部分CDN边缘节点仍继续提供9月30日和10月15日的缓存副本,直到11月4日03:12至03:21才统一替换。11月4日凌晨2点左右,仍有节点返回被篡改的文件。
11月4日03:13,Level%20Infinite在X上发布声明,称启动器脚本可能被第三方篡改,修复已于约02:30(UTC+9)发布,影响范围仍在调查。当天07:14至07:20,四个官方对象经复核均已返回干净版本。
从域名注册到加载器DLL编译完成,间隔32.7天;从CDN文件被修改到受害主机上观察到载荷执行,间隔36天18小时。攻击者先占据分发位置,再搭建基础设施、构建载荷,最后延迟激活。
网传聊天记录截图:
二、攻击链条
攻击链条
被篡改的四个文件全部位于playerinfinite.com域名下,由腾讯云COS提供。由于启动器每次启动都会加载这些文件,恶意代码继承了官方分发链的信任。以FeedList.feb647c9.js为例,干净版本为5,099字节,毒化版本为5,808字节,多出的709字节注入块夹在文件中间,紧挨最后的export语句,只检查文件开头或结尾的扫描方式容易漏检。
恶意脚本随后调用启动器自身暴露的Srv_DownloadFile接口,从analytics.insightjs.com下载insight.bundle。文件被放入Launcher\\log\\tinyget\\,以.log文件名伪装,执行后删除。公开构建大小为205,135字节,SHA-256为cc0ad05bfe85940a6067b3a72c182d3953339129206634141926d5d0b35973ec;更早还存在一个165,108字节、仅含14条命令的构建。
下载的载荷是LuaJIT%202.0字节码,文件头为1B%204C%204A%2001,经过字符串表混淆。除exec外,文件读写、截屏、凭据采集都在启动器进程内通过FFI完成,不创建新进程,因此进程创建日志和Prefetch难以发现。它通过命名管道k2f_chan接收指令,共支持19条命令,包括任意命令执行、交互式shell、文件传输、截屏、浏览器数据提取和钱包采集。默认每1800秒回连一次,抖动360秒。所有网络请求经启动器内置浏览器tbs_browser.exe发出。
最后一步是持久化。chrome_install命令将DLL写入%LOCALAPPDATA%\\Google\\Chrome\\User%20Data\\PlatformExperienceHelper\\<64位十六进制>\\platform_experience_helper.dll,并写入HKCU\\Software\\Classes\\CLSID\\{E77CC89B-7401-4C04-8CED-149DB35ADD04}\\InprocServer32,由Chrome在后续启动时加载。PlatformExperienceHelper目录本身是Chrome的正常组件,合法文件是.exe;HKLM下的同名CLSID指向正常的wpc.dll,不应删除。DLL在加载期间被锁定,需要重启后再清理。有受害主机上的Microsoft%20Defender%20Offline未检出该DLL。
三、窃取范围
表:窃取范围概览
| 类别 | 规模 | 主要内容 |
|---|---|---|
| 浏览器数据 | 5类浏览器 | 密码、Cookie、登录会话、本地存储、扩展数据 |
| AI编程工具 | 70条 | Claude%20Code、Cursor、Windsurf、MCP配置、VS%20Code%20SecretStorage |
| 云与DevOps | 154条 | AWS、Azure、GCP、阿里云、腾讯云密钥,包仓库token,Kubernetes配置 |
| SSH与版本控制 | 88条 | ~/.ssh%20、GPG与age私钥、PuTTY、GitHub%20CLI、CI%20runner%20token |
| 加密钱包 | 28个扩展 | MetaMask、Phantom、OKX、Binance、TronLink |
| 凭据扫描 | 264条路径、38个环境变量、35种令牌前缀 | keyscan遍历与高价值密钥识别 |
浏览器数据是采集重点。目标覆盖Chrome、Edge、Brave、Vivaldi和Firefox,包括保存的密码、Cookie、登录会话、本地存储和扩展数据。Cookie被窃取后,仅修改密码无法阻止旧会话被接管。
AI编程工具的相关目标有70条,是条目数最多的单一类别,包括Claude%20Code、Claude%20Desktop、Gemini%20CLI、Codex%20CLI、GitHub%20Copilot%20CLI、Cursor、Windsurf、Aider、Kimi以及各类MCP配置。VS%20Code系的state.vscdb会被直接查询,所有通过SecretStorage%20API保存的token都可能暴露。
云与DevOps相关目标有154条,包括AWS、Azure、Google%20Cloud、阿里云、腾讯云、火山引擎的访问密钥,npm、PyPI、NuGet等包仓库token,以及Terraform、Pulumi、Kubernetes和Docker配置。SSH与版本控制相关目标有88条,包括~/.ssh、GPG与age私钥、PuTTY和WinSCP会话、FileZilla站点配置、GitHub%20CLI和GitLab%20CLI凭据、CI%20runner注册token。
加密钱包覆盖28个浏览器钱包扩展,包括MetaMask、Phantom、Coinbase、OKX、Binance、Trust、Rabby、Rainbow、Keplr、Solflare、Backpack、Tonkeeper、TronLink、UniSat、Petra、Ronin等。
字符串表共还原出1,790条目标,其中keyscan实际遍历264个凭据与配置文件路径,并读取38个环境变量。另有35种令牌前缀扫描器,用于在任意被读取的文件中识别高价值密钥。不少玩家的游戏电脑同时用于开发工作,SSH私钥、云密钥、AI服务凭据和钱包扩展位于同一用户目录,这正是本次采集清单的重点。
四、自查方法
最直接的入口是游戏安装目录下的Launcher/intl_service/debug.log。打开后搜索k2f_chan,若出现以下内容,说明恶意载荷已经执行。
lua%20downloaded%20to%20log\\tinyget\\tinyget.<时间戳>.log
k2f_chan%20registered
adopted%20<uuid>
agent%20started%20as%20<计算机名>
只要出现k2f_chan%20registered即应视为已执行,即使缺少后两行。仅有lua%20downloaded说明文件已下载,尚未确认执行。若日志停在k2f_chan%20registered后出现startup%20failed:%20EIO:%20invalid%20UTF-8%20in%20string,表示载荷初始化中断,但仍已执行到命令通道注册阶段。日志可能为追加写入,也可能被后续启动刷新,未发现痕迹不能排除感染。
第二个位置是%APPDATA%\
ikke_launcher\\tbs_cache\\Local%20Storage\\leveldb\\。检查其中是否存在k2f.agent.state,该文件保存agent标识、C2配置与计数器,且不随游戏卸载删除。若记录已被合并进压缩的.ldb表,普通文本搜索可能找不到。
还需要检查Chrome目录下是否存在64位十六进制命名的子目录及platform_experience_helper.dll,并查询前述HKCU%20CLSID键。不要删除整个PlatformExperienceHelper目录,也不要删除HKLM下的同名键。
网络侧可关注insightjs.com、analytics.insightjs.com、insightjs.org、89.127.233.127和89.126.250.172。DNS日志未记录相关查询不能排除感染,部分受害主机的DNS日志因使用第二DNS服务器而缺失记录。可使用GitHub上的只读工具NIKKE%20Launcher%20Check辅助检查,运行前不要删除tbs_cache。不要为了验证是否中招而反复启动游戏,启动会刷新日志并可能再次触发投递。
五、处置建议
确认或高度怀疑感染后,第一步是断网并保留证据。复制debug.log、Launcher/log/tinyget/、tbs_cache、Chrome持久化目录与相关注册表项,再执行清理。%TEMP%下的k2f-bcreds-*和k2f_screen_*.jpg可能包含明文采集数据,应先取证再删除。
清理持久化时,先删除HKCU下的恶意CLSID,保留HKLM同名项,重启Windows,再删除PlatformExperienceHelper中64位十六进制子目录及其中的DLL。
凭据处理需要在另一台干净设备上完成。依次更换NIKKE与Level Infinite账号、邮箱、Discord、Steam、GitHub、银行以及浏览器中保存的其他密码,并为重要账号开启双重验证。密码更换后,还要对每个重要账号执行“退出所有设备”或“注销所有会话”,仅修改密码不足以阻止已被窃取的Cookie继续使用。
开发者凭据的优先级更高。优先处理AI服务API key与OAuth token、VS Code扩展secret、MCP下游服务密钥、云厂商访问密钥、包仓库token、CI与kubeconfig、SSH与GPG私钥。云密钥更换后应审计对应时间段的操作日志。钱包则需要在干净设备上生成新助记词并新建钱包,转移资产;旧助记词一旦泄露即永久有效,不能通过修改密码补救。
确认感染的主机建议重装系统。载荷具备任意命令执行、自清理和更新能力,杀毒软件扫描干净不能作为可信证明。完成取证后清理%APPDATA%\
ikke_launcher\\tbs_cache再重新打开启动器,并在hosts、路由器或防火墙中屏蔽相关域名与IP。使用Proton的Linux与Steam Deck用户同样需要处理,Wine会映射Linux主目录与环境变量,~/.ssh、浏览器配置和shell配置中的密钥应按已泄露处理。
六、官方回应
Level Infinite已确认脚本文件可能被第三方篡改,并完成客户端修复。但公告没有披露受影响文件、载荷细节和用户处置步骤,也没有说明攻击者如何取得CDN写权限、实际感染规模以及是否已发生数据或资产盗取。修复CDN只能阻止后续投毒,不会清除已经安装到玩家电脑中的木马。
部分CDN节点在官方修复后仍持续分发毒化文件至11月4日凌晨,说明修复与缓存清理并不完整。另有社交平台传言称《王者荣耀》《PUBG Mobile》《三角洲行动》等腾讯系产品同样受影响,目前没有技术证据或官方确认,也没有发现其他启动器加载过同一载荷。
此外,攻击者服务下线后,启动器一度回退加载insightjs.org。该域名于11月3日被第三方注册,并被改为安全警告页面。部分玩家在启动器中看到的警告并非官方发布,不应依据来源不明的弹窗执行“修复”操作。
七、结论
本次事件利用了启动器对官方CDN的信任,以及将原生下载能力暴露给网页脚本的设计。攻击者无需利用0day,只需取得发布链路权限,即可让所有正常启动游戏的玩家成为投递对象。从域名注册到载荷执行,攻击者准备了一个多月,而防守方在事件曝光后才开始排查。
对厂商而言,CDN发布权限需要最小化并可审计,前端资源应引入完整性校验与发布签名,异常变更需要及时告警。对玩家而言,游戏环境与开发、资产环境应尽量分离,重要账号启用双重验证,SSH与云厂商凭据按最小权限签发并定期轮换。检测应以主机产物和行为为依据,仅依赖文件哈希无法应对可更新的载荷。
参考资料
[1] MOTHERSPHERE. NIKKE PC launcher compromise (Nov 2026): Level Infinite CDN tampering[EB/OL]. GitHub Gist, (2026-11-04)[2026-11-04]. https://gist.github.com/MotherSphere/d6c049a09ba8ac3085c51ee9df24a4e5.
[2] MOTHERSPHERE. NIKKE PC启动器遭入侵事件(2026年11月,简体中文译本)[EB/OL]. GitHub Gist, (2026-11-04)[2026-11-04]. https://gist.github.com/MotherSphere/d6c049a09ba8ac3085c51ee9df24a4e5#file-nikke-pc-launcher-compromise\_zh-hans-md.
[3] WORMW. NIKKE Launcher供应链事件与K2F样本分析[EB/OL]. GitHub, (2026-11-04)[2026-11-04]. https://github.com/WormW/nikke\_malware\_analysis.
[4] NIKKE\_EN. Notice regarding PC launcher anomaly[EB/OL]. X, (2026-11-04)[2026-11-04]. https://x.com/NIKKE\_en/status/2117817602659770434.
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论