Steam 客户端被曝存在 0Day 漏洞,超 1 亿用户受影响
来源:雷锋网 作者:灵火K
据外媒报道,Windows 最受欢迎的 游戏 平台 Steam 客户端版本发现有 0Day 特权升级漏洞,该漏洞可允许具有有限权限的攻击者以管理员身份运行程序。
据悉,权限升级漏洞是应用中的一个错误操作程序,它使权限有限的用户可以使用提升权限或管理权限启动可执行文件。
考虑到 Steam 平台拥有超过 1 亿注册用户以及数百万潜在注册用户,因此这是一个严重的风险,可能被恶意软件滥用以执行各种不需要的活动。
在昨天发布的一份报告中,安全研究员 Felix 分析了与 Steam 客户端相关的 Windows 服务,其被称作 "Steam 客户端服务 "。
他称,启动时,此服务在 Windows 上以 SYSTEM 权限启动其可执行文件。研究人员还注意到该服务可以由 " 用户 " 组启动和停止," 用户 " 组几乎都是登录计算机的人。
研究人员还发现当服务启动和停止时,它为 " 用户 " 组提供了对 HKLM Software Wow6432Node Valve Steam Apps 注册表项下的子项的完全写入权限。
起初,此服务的注册表项不能由 " 用户 " 组写入,因此无法修改它以启动其他可执行文件并将其权限提升为管理员。但经过进一步研究之后,Felix 发现了用非常规手段将普通用户权限提升至最高管理权限的方法:
" 我创建了测试密钥 HKLMSoftwareWow6432NodeValveSteamAppstest,重新启动了服务 ( Procmon 的日志在上面 ) ,并检查了注册表密钥权限。在这里我发现 HKLMSOFTWAREWow6432NodeValveSteam 对‘用户’组有明确的‘完全控制’权限,这些权限将继承所有子键功能。"
假设 RegSetKeySecurity 设置了相同的权限,如果有符号链接,就会发生一些有趣的事情。我创建了从 HKLMSOFTWARE wow6432 节点 ValveSteamAppstest 到 HKLMSOFTWAREtest2 的链接,并重新启动了服务。
此后,Felix 尝试从这些子键功能链接到另一个他没有足够权限的子键功能。重新启动服务后,他发现现在也可以修改密钥。
研究人员意识到,只要从 HKLMSoftwareWow6432NodeValveSteamApps 下的子密钥创建一个符号链接到一个安全的注册表密钥,然后重新启动服务,就可以修改任何注册表密钥。
基于以上原理,该特权提升漏洞可以允许修改具有系统特权的服务,从而启动具有更高权限的不同程序。
Felix 披露了漏洞之后,另一位研究员 Matt Nelson 相继发现 enigma0x3 别名下的权限升级漏洞,他在 GitHub 上共享了一个滥用该漏洞的概念验证(PoC)脚本。
Nelson 的 PoC 创建了一个 HKLM:SYSTEMCurrentControlSetServicesSteam 客户机服务的符号链接,这样它就可以更改在重新启动服务时启动的可执行文件。
如果 PoC 成功,将在后台启动具有管理权限的 Windows 命令提示符。此原理同样适用于 Valve 的 0Day 漏洞。
Nelson 和 Felix 在发现给问题后均第一时间向 Vavle 报告,但是都没有得到官方修补漏洞的回复且拒绝给予二人相应的赏金奖励。