内容简介:在最近一次红队练习中,我们发现最新版的Symantec Management Agent(Altiris)中存在一个漏洞,可以用来提升权限。当Altiris本地代理执行资产情况扫描时(比如扫描软件资产情况),扫描结束后这个
一、前言
在最近一次红队练习中,我们发现最新版的Symantec Management Agent(Altiris)中存在一个漏洞,可以用来提升权限。
当Altiris本地代理执行资产情况扫描时(比如扫描软件资产情况),扫描结束后这个 SYSTEM
权限的服务会重新分配 NSI
以及 Outbox
文件夹的权限:
C:Program FilesAltirisInventoryOutbox C:Program FilesAltirisInventoryNSI
结果就是 Everyone
组可以获得这两个目录的完全控制权,这样任何用户都可以创建指向其他目录的链接(junction)。因此,目标目录就会被分配 Everyone
权限,并且目录下的每个文件或者文件夹都会被强制集成该权限。
如果主机上安装了Symantec Management Agent v7.6、v8.0或者v8.1 RU7产品,那么低权限用户就可以利用该漏洞来提升权限。
二、漏洞发现及分析过程
在执行红队任务时,我们通常会在某台主机上看到已安装的各种类型的第三方端点软件。这类软件通常值得仔细研究,因为它们有可能成为当前主机甚至是整个环境的突破口。
在端点管理软件方面,我们经常能看到由Symantec发布的Altiris的身影。这款软件是一个端点管理框架,使用方可以利用该框架来集中管理单位资产,确保所有系统已应用最新补丁,也可以用来安装其他软件、根据用户的角色或组来更改配置,也支持整个单位的资产注册。
我们测试的版本为7.6版,如下图所示。根据Symantec在2018年6月12日的描述,安装修复补丁之前的所有版本都存在这个问题。
我们注意到Altiris文件结构中目录的权限为 Everyone – Full Control
。这些文件夹似乎包含一些无害的内容,比如扫描配置文件以及XML文件,我们认为这些文件来与资产扫描或者最近任务的输出结果有关。我们使用了一行非常简单的PowerShell命令找到了这些目录及文件的权限,这些PowerShell语句都可以帮助我们使用Windows目标主机上的 工具 来审核目标系统的ACL情况。典型的命令如下所示(参考 Github 上代码):
Get-ChildItem C: -Recurse -ErrorAction SilentlyContinue | ForEach-Object {try {Get-Acl -Path $_.FullName | Select-Object pschildname,pspath,accesstostring} catch{}}|Export-Csv C:tempacl.csv -NoTypeInformation
查看这些目录的时间戳信息后,我们发现这些文件夹每天有一次活动记录。根据使用方的配置情况以及资产管理的需求,这些文件夹每天的活跃次数可能会更多。
从现在开始事情变得有趣起来。具备 Everyone – Full Control
权限的文件夹的确非常有趣,但有时候我们颇费周折,最后可能会一无所获。尽管如此,我们还是需要迈出第一步。
值得一提的是,发现这个情况后,我们第一时间翻阅了Cylance之前披露的一个 漏洞 (感谢Ryan Hanson的精彩分析),想确定之前的攻击方法能否适用于这种情况。
我们发现 NSI
目录的权限情况如下图所示,这些权限与 Outbox
目录的权限一致:
随后我们尝试使用James Forshaw的 symboliclink-testing-tools 工具将该目录重定向到另一个位置,创建另一个目录的挂载点,判断这些文件是否会成功写入,事实证明的确如此。这里我们也可以选择使用 systernals 中的 junction
工具。 junction
工具的唯一问题在于它要求指定的源目录不存在,而这里源目录已经存在并且具备 Everyone
权限。源目录已存在的操作过程如下图所示:
如果我们删掉了这个目录,就难以复现我们攻击所需的这些权限。James Forshaw的工具集可以帮助我们利用已存在的目录,如下图所示:
另一款工具也能用于这种攻击场景:Windows自带的 mklink.exe
工具,但我们需要高权限才能使用该工具,并不满足当前场景(现在我们的目的就是提升权限)。
为了彻底澄清哪个进程会覆盖这些权限,我们上传了 sysinternals 的Process Monitor工具,观察后台的具体工作流程。从结果中我们可以看到, AxXNSAgent.exe
会给所有文件及目录设置DACL策略。
三、武器化
那么现在我们如何将该漏洞武器化?为了利用这个漏洞,我们可以选择使用多种方法,但最简单的一种方法就是尝试去覆盖Altiris的根目录( C:\Program Files\Altiris\Alritis Agent\
)权限,这样我们就能修改该服务对应的程序文件: AeNXSAgent.exe
,该程序正常情况下会以 SYSTEM
账户权限运行。
在修改挂载点覆盖权限之前, Altiris Agent
目录以及 AeNXSAgent.exe
文件的权限如下图所示:
接下来我们需要创造一个挂载点,将其指向 Altiris Agent
目录。需要注意的是,源目录必须为空才能进行重定向,由于我们拥有每个文件的全部权限,因此这对我们来说非常简单。我们可以使用James Forshaw开发的 symboliclink-testing-tools 工具来创建挂载点并验证是否创建成功。
然后我们需要等待下次扫描。第二天早上起来扫描已结束,结果如下图所示。正如我们所预期的,现在根目录以及所有子项都已具备 Everyone – Full Control
权限,其中就包括 AeNXSAgent.exe
。
一旦我们完全控制了 AeXNSAgent.exe
,我们就可以替换这个文件,重启主机以获取 SYSTEM
权限。我们要注意到一点,利用符号链接来实现权限提升是一种非常普遍的现象,James Forshaw已经发现了20多个案例,大家可访问 此处 获取具体列表。
四、总结
该漏洞影响所有版本的Altiris Management Agent(包括v7.6、8.0以及8.1 RU7在内)。我们强烈推荐用户立即安装官方补丁。
如果大家对此类漏洞的利用(不管在运行时或者其他状态)有更好意见或者建议,欢迎与社区共享。
五、时间线
- 与厂商接触 – 2018年5月31日
- 厂商分配事务跟踪ID – 2018年5月31日
- 厂商确认60天的披露周期 – 2018年5月31日
- 厂商确认v7.6、8.0以及8.1 RU7存在该漏洞 – 2018年6月12日
- 厂商确认会为所有4个版本发布修复补丁 – 2018年7月16日
- 参与方CNA分配CVE编号 – 2018年7月23日
- 厂商发布 安全公告 – 2018年7月25日
- Nettitude公布更多细节 – 2018年9月12日
以上所述就是小编给大家介绍的《Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 漏洞分析连载第十四期 | 拘于小节的调用权限,函数调用权限漏洞
- IIS写权限漏洞-菜刀工具
- 基于全流量权限漏洞检测技术
- 【漏洞预警】Ubuntu Linux权限升级漏洞PoC(CVE-2019-7304)
- Xen权限提升漏洞(CVE-2016-4962)
- Xen权限提升漏洞(CVE-2016-4962)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。