软件版本:Razer Surround 1.1.63.0
操作系统版本:Windows 10 1803(x64)
漏洞说明:Razer Surround软件中文件夹设置缺陷导致的权限提升
我希望这篇文章能鼓励更多的人加入漏洞研究这个看似很困难的领域。虽然这个漏洞的原理很简单,但本文的主要目的是讲述一些漏洞挖掘的方法。另外,我希望用这篇文章提醒大家,无论公司规模有多大,都一定存在脆弱面。
Razer Surround安装了一个名为RzSurroundVadStreamingService
的服务,以SYSTEM
权限运行。
此服务涉及的二进制文件为RzSurroundVADStreamingService.exe
,在文件夹C:\ProgramData\Razer\Synapse\Devices\Razer Surround\Driver
下。
而此二进制文件能被恶意软件所覆盖替换,然后以SYSTEM权限运行,最终造成非法权限提升。
在进行漏洞研究时,选择一个恰当的目标是很有必要的。如果你一开始选择一个体积巨大的软件,那么就很有可能产生畏难心理,你不知道从何入手,且会觉得这里面隐藏的漏洞肯定异常复杂。我想用这个漏洞作为一个例子,来说明在一个普通的软件中寻找漏洞其实并不困难。
你可能会问,为什么是Razer?为何要瞄准这个软件?答案很简单:我是Razer的粉丝,我买了不少Razer的产品。当你每天大量使用同一个品牌的产品及其软件时,你很难忍住研究它的冲动。
在挖掘漏洞时,我通常会进行一个常见的挖掘流程,每次都是如此。这个流程中包括分析目标软件所暴露的潜在攻击面。我通常从基础开始,根据需要进行动态/静态分析。我最初通常寻找的是:
已安装的服务(服务权限和服务路径)
命名管道(及其ACL)
所涉及的文件和文件夹权限
网络套接字
DCOM服务器和托管接口
在常用工具这一方面,我主要使用Process Monitor和James Forshaw’s NTob jectManager 。
在Razer Surround
这个例子中,我首先通过查看进程列表检查软件的运行权限,发现RzSurroundVADStreamingService.exe
是以SYSTEM
权限运行的。下一步是找出这个进程是如何运行的。考虑到这个进程的名称中包含“service”,我在powershell的命令行下使用Get-Service *Rz*
命令来获得所有包含Rz
字符串的所有服务(也可以说是和Razer有关的所有服务)。
从结果中我们可以筛选出它的ImagePath
,也就是C:\ProgramData\Razer\Synapse\Devices\Razer Surround\Driver\
。
请注意,此时有趣的地方出现了。通过对文件夹的权限查询,发现BUILTIN\Users
对文件夹C:\ProgramData
具有读写权限。
开发人员经常犯的一个错误就是没有锁定在C:\ProgramData
文件夹中创建任意子文件夹的权限。如果安装程序只是简单地在C:\ProgramData
中创建一个文件夹,那么该文件夹和其任何子文件夹都将继承C:\ProgramData
的权限,比如普通用户地完全读写权限。
在这种情况下,导致电脑上的“Everyone”都能完全控制C:\ProgramData\Razer\Synapse\Devices\Razer Surround\Driver
文件夹。
如之前所述,此路径是二进制文件RzSurroundVADStreamingService
的ImagePath
。如果任意权限的用户对文件及包含它的文件夹具有“完全控制”权限,那么只要把RzSurroundVADstreamingService
替换为恶意软件即可:
一旦替换成功,重新启动电脑,该恶意软件将作为服务的一部分,以SYSTEM
权限运行。在这个例子中,我们最终得到了一个SYSTEM
权限的cmd命令行。
对于Razer来说,只要把这个二进制文件默认放置于C:\Program Files (x86)\Razer
文件夹即可修复此漏洞。
我们在发现这类漏洞后,会定期提交给厂商,和他们保持良好的联系,确保受影响的用户在短时间内收到漏洞预警,进行软件更新。
2019年3月20日-报告发送至Razer
2019年3月21日-收到Razer的确认
2019年6月6日-就漏洞修复问题与Razer进行联系
2019年6月10日-razer通知我,修复工作将在6月底开始
2019年7月1日-razer通知我,更新补丁将马上发布
2019年7月5日-补丁发布
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场:https://nosec.org/home/detail/2758.html
来源:https://posts.specterops.io/cve-2019-13142-razer-surround-1-1-63-0-eop-f18c52b8be0c