据外媒报道,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报告,但是都没有得到官方修补漏洞的回复且拒绝给予二人相应的赏金奖励。