Steam被曝出0day提权漏洞,但厂商拒绝修复
近期,全球流行的Steam游戏客户端被曝出0day提权漏洞,影响全球一亿多Steam用户。该漏洞可让机器上的低权限用户以SYSTEM
权限运行程序。这意味着恶意软件很可能利用这个漏洞对受害者的机器进行深度破坏。
考虑到Steam是一款总用户1.2亿,日常在线用户3百多万,并时刻有大量新用户加入使用的软件,预计这个漏洞将对全球游戏用户产生深远影响。
权限升级
在Valve(Steam的厂商)不认领该漏洞后,两位研究人员公开了这个漏洞的详细信息。有意思的是,虽然Valve并不承认这个漏洞,更不会给予赏金或修复它,但却告诉研究人员不能公开漏洞细节。
安全研究员Felix于近期发布了一份分析报告,着重分析了一个与Steam相关的Windows服务,名为Steam Client Service
,它是以SYSTEM
权限在Windows上运行。研究人员还注意到,这个服务可以由“Users”用户组进行启动或停止,这个“Users”用户组几乎包含任何登录过计算机的角色。
但是,这个服务的注册表项不能由“User”用户组写入。因此,从表面上看,攻击者是无法从“Users”用户组提升至SYSTEM
权限。
不过,研究人员发现了一些奇怪的现象。当服务启动和停止时,“Users”用户组可对HKLM\Software\Wow6432Node\Valve\Steam\Apps
注册表项下的子项进行完全读写访问。
“我创建了测试项HKLM\Software\Wow6432Node\Valve\Steam\Apps\test
,并重新启动了服务(我使用了Procmon监控软件),然后检查了注册项权限。最后发现“Users”用户组对HKLM\SOFTWARE\Wow6432Node\Valve\Steam
能够“完全控制”,其所有子项也是如此。我假设RegSetKeySecurity
(和安全有关的API)也受到影响,于是尝试创建从HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps\test
到HKLM\SOFTWARE\test2
的链接,并重新启动了服务。”
最后,研究人员尝试配置了一个符号链接,将这些普通用户能控制的子项链接到另一个没有权限操控的项,结果发现自己也可以修改该项。
此时,研究人员意识到,任何注册表项都可以通过将HKLM\Software\Wow6432Node\Valve\Steam\Apps
下的子项创建到目标项的符号链接来进行非法修改。
这意味着普通用户可以修改具有SYSTEM
权限的服务,从而实现非法提权。
另一位研究人员放出了PoC
在Felix发表了有关漏洞详细信息的文章后,另一位研究人员Matt Nelson在GitHub上放出了漏洞利用PoC。Matt Nelson以前有一个网名enigma0x3
,以发现提权漏洞而闻名。
Nelson的PoC主要创建了一个HKLM:\SYSTEM\CurrentControlSet\Services\Steam Client Service
的符号链接,这样就可以更改在重新启动服务时所涉及的可执行文件。
脚本执行完后,可在后台看到一个具有管理权限的Windows命令窗口,如下所示。
Nelson表示他也曾和Valve交流过有关漏洞的问题。
BleepingComputer已主动联系了Valve,询问为什么这个漏洞没有被修复,但是在本文发布时还没有得到回复。