QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

Steam 被曝 0day 漏洞,超 1 亿用户受到影响

  • 2019-08-16
  • 本文字数:1405 字

    阅读完需:约 5 分钟

Steam被曝 0day 漏洞,超1亿用户受到影响

Windows 版本的高人气游戏客户端 Steam 曝出零日权限提升漏洞,该漏洞使得本不具备相关高权限的攻击者能够以管理员身份运行程序。


权限提升漏洞属于一类 bug,可使原本权限较低的用户以更高权限或者管理员权限启动可执行文件。随着 Steam 迎来超过 1 亿注册用户且同时在线人数多达数百万,这一严重风险很可能被恶意软件滥用,从而执行各类预料之外的操作。


权限提升漏洞

在 Valve 方面确定该漏洞“不适用”后,两位研究人员公开披露了此项 Steam 客户端零日漏洞。看来这回 Vavle 有点“作死”了——之前研究人员在 HackerOne 大会上将其提交至 Valve 的 bug 赏金计划时,该公司表示不予支持资金或者表示将进行修复,同时要求研究人员不得透露相关信息。


在昨天发布的一份报告中,安全研究员 Felix 对与 Steam 客户端相关的 Windows 服务(即「Steam 客户端服务」)进行了分析。在启动时,此服务会在 Windows 系统中以 SYSTEM 权限启动其可执行文件。研究人员还注意到,该服务可以由“用户”组进行启动与停止——所谓“用户”组,几乎涵盖一切能够登录计算机的使用者。


不过,此服务的注册表项无法由“用户”组写入,因此攻击者无法通过修改利用该服务以管理员权限启动其它可执行文件。


但在此之后,这位研究人员发现了某些奇怪的情况。当该服务启动及停止时,它会为“用户”组提供对 HKLM\Software\Wow6432Node\Valve\Steam\Apps 注册表项下各子项的完全写入权限。


“我创建了测试键 HKLM\Software\Wow6432Node\Valve\Steam\Apps\test 并重启该服务并检查了注册表键权限。我发现“用户”组对于 HKLM\SOFTWARE\Wow6432Node\Valve\Steam 拥有“全面控制”权限,而且这些权限能够继承至所有子键及其更低一级的子键。我假设 RegSetKeySecurity 设置了相同的权限,如果存在 symlink,那么肯定会发生有趣的情况。我创建了一条从 HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps\test 到 HKLM\SOFTWARE\test2 and restarted the service 的链接。”


在此之后,该研究人员尝试将其中一个子键的 symlink 配置为另一个没有足够权限的键。在重新启动服务之后,他发现自己已经能够修改该键。


了解到这些,研究人员意识到他已经能够通过 HKLM\Software\Wow6432Node\Valve\Steam\Apps 之下的子键轻松创建 symlink,从而对原本安全的注册表键进行修改并随后重启服务。


这可能允许攻击者对具有 SYSTEM 权限的服务进行修改,并利用它启动其它原本权限较低的程序。


如此一来,权限提升漏洞也就出现了。

另一位研究人员披露概念验证

在 Felix 发布披露文章之后,另一位名叫 Matt Nelson 的研究人员又在 enigma0x3 别名之下发现了另一权限提升漏洞,他还通过 GitHub 发布了该漏洞的一份概念验证脚本。



Nelson 的概念验证是创建一个指回 HKLM:\SYSTEM\CurrentControlSet\Services\Steam Client Service 的 symlink,以确保它能够在更改服务重新启动时所实际启动的可执行文件。


如果该概念验证成功,则后台即会运行一个具有管理员权限的 Windows 命令提示符,如下图所示。



具有提升权限的命令提示符


Nelson 表示,他也曾经向 Valve 披露这一问题。



熟悉此事的消息人士表示,HackerOne 方面已决定重新审查这份 bug 报告以做出进一步调查。


我们也与 Valve 方面取得联系,希望了解该项漏洞尚未修复的具体原因,但截至发稿之时对方仍未给出答复。


原文链接:


https://www.bleepingcomputer.com/news/security/steam-zero-day-vulnerability-affects-over-100-million-users/


2019-08-16 15:535671

评论

发布
暂无评论
发现更多内容

2021年Java面经分享:mysql创建数据表

策划Java工程师

Java 程序员 面试 后端

2021年您应该知道的技术之一!Java工程师一天工作多久

策划Java工程师

Java 程序员 面试 后端

【翻译】数据包的旅程 - 关键角色

luojiahu

交换机 路由器 OSI模型 ARP协议

2021Java面试总结!Java中VO的使用

Java 程序员 面试 后端

2021Java高级面试题总结!Java数组添加另一个数组

Java 程序员 面试 后端

2021年Java面试心得:西安Java电商开发招聘

策划Java工程师

Java 程序员 面试 后端

2021春招BAT面试真题详解,mysqlloaddata自增id

策划Java工程师

Java 程序员 面试 后端

Java磁盘文件IO

文件I/O

redis,memcached,nginx网络组件

赖猫

nginx redis memcached 网络组件

2021Java面试心得:docker运行springboot项目

Java 程序员 面试 后端

2021吊打面试官系列!mysql数据库版本最新

Java 程序员 面试 后端

2021年“金三银四”来袭!Java开发接口利用http协议

策划Java工程师

Java 程序员 面试 后端

2021Java高级面试题总结:docker运行jar包依赖和程序分开

程序员 面试 后端

2021Java高级面试题!Java面试问题大全及答案大全下载

Java 程序员 面试 后端

2021京东Java面试真题:Java枚举的作用与好处

Java 程序员 面试 后端

2021年Java开发实战!Java获取系统日期时间

Java 程序员 面试 后端

2021年Java面试心得:Java基本类型对应的包装类型

策划Java工程师

Java 程序员 面试 后端

云计算架构师-带你安装MySQL数据库并去除安全隐患

学神来啦

MySQL 数据库 Linux 运维 MariaDB

Linux ssh命令详解,连ssh命令都不了解就别说自己会用Linux了

北游学Java

Java Linux SSH

2021Java面试心得:kafka工具

Java 程序员 面试 后端

2021春招面试,mysql自增主键最大值

策划Java工程师

Java 程序员 面试 后端

iOS开发底层面试攻略

面试 移动开发 ios开发

2021年您应该知道的技术之一!Javafor循环乘法表

策划Java工程师

Java 程序员 面试 后端

2021春招BAT面试真题详解,从单体式架构迁移到微服务架构

策划Java工程师

Java 程序员 面试 后端

阿里面试官把以往的Java面试题全部总结在这份《Java10W字面试复盘笔记》里面了

Java 程序员 架构 面试 计算机

golang--字典树

en

数据结构与算法 字典树

【翻译】数据包的旅程 - OSI模型

luojiahu

计算机网络 OSI模型

从0到1亿用户的架构设计

俞凡

架构

🏆「推荐收藏」【Git实战专题】代码提交错误怎么办?教你如何回退版本!

码界西柚

git git flow git reset git revert

🏆【Java 技术之旅】带你深入理解和认识SPI运作机制

码界西柚

Java 抽象 spi 7月日更

2021年Java面试心得:Java开发工程师试用期一般多久

策划Java工程师

Java 程序员 面试 后端

Steam被曝 0day 漏洞,超1亿用户受到影响_安全_Lawrence Abrams_InfoQ精选文章