Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)

$
0
0

Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)
一、前言

在最近一次红队练习中,我们发现最新版的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日的描述,安装修复补丁之前的所有版本都存在这个问题。


Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)

我们注意到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 目录的权限一致:


Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)

随后我们尝试使用James Forshaw的 symboliclink-testing-tools 工具将该目录重定向到另一个位置,创建另一个目录的挂载点,判断这些文件是否会成功写入,事实证明的确如此。这里我们也可以选择使用 systernals 中的 junction 工具。 junction 工具的唯一问题在于它要求指定的源目录不存在,而这里源目录已经存在并且具备 Everyone 权限。源目录已存在的操作过程如下图所示:


Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)

如果我们删掉了这个目录,就难以复现我们攻击所需的这些权限。James Forshaw的工具集可以帮助我们利用已存在的目录,如下图所示:


Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)

另一款工具也能用于这种攻击场景:Windows自带的 mklink.exe 工具,但我们需要高权限才能使用该工具,并不满足当前场景(现在我们的目的就是提升权限)。

为了彻底澄清哪个进程会覆盖这些权限,我们上传了 sysinternals 的Process Monitor工具,观察后台的具体工作流程。从结果中我们可以看到, AxXNSAgent.exe 会给所有文件及目录设置DACL策略。

三、武器化

那么现在我们如何将该漏洞武器化?为了利用这个漏洞,我们可以选择使用多种方法,但最简单的一种方法就是尝试去覆盖Altiris的根目录( C:\Program Files\Altiris\Alritis Agent\ )权限,这样我们就能修改该服务对应的程序文件: AeNXSAgent.exe ,该程序正常情况下会以 SYSTEM 账户权限运行。

在修改挂载点覆盖权限之前, Altiris Agent 目录以及 AeNXSAgent.exe 文件的权限如下图所示:


Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)
Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)

接下来我们需要创造一个挂载点,将其指向 Altiris Agent 目录。需要注意的是,源目录必须为空才能进行重定向,由于我们拥有每个文件的全部权限,因此这对我们来说非常简单。我们可以使用James Forshaw开发的 symboliclink-testing-tools 工具来创建挂载点并验证是否创建成功。


Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)

然后我们需要等待下次扫描。第二天早上起来扫描已结束,结果如下图所示。正如我们所预期的,现在根目录以及所有子项都已具备 Everyone Full Control 权限,其中就包括 AeNXSAgent.exe 。


Symanctec Management Agent(Altiris)权限提升漏洞(CVE-2018-5240)

一旦我们完全控制了 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日

Viewing all articles
Browse latest Browse all 12749

Trending Articles