帮助中心

赛门铁克(Symantec)集团是世界上最大的安全公司,不过近日曝出任意代码执行漏洞,可冒用签名执行,白名单绕过以及提权。#介绍SafeBreach 实验室发现了赛门铁克终端安全这个漏洞(Symantec Endpoint Protection)(CVE-2019-12758)利用这个漏洞,可以绕过赛门铁克的自我防护机制,还能实现防御规避、维持权限以及提权。方法是通过加载任意未签名的dll到赛门铁

当前位置: 首页  >> 新闻中心  >> 帮助中心  >> 查看详情

赛门铁克(Symantec)曝出任意代码执行漏洞,可冒用签名执行,白名单绕过以及提权

浏览量:1147 时间:2023-08-16 05:34:05

赛门铁克(Symantec)集团是世界上最大的安全公司,不过近日曝出任意代码执行漏洞,可冒用签名执行,白名单绕过以及提权。

序列号 CPU RAM HDD 带宽 售价(美元) 免费试用
香港服务器1 E5-2620 32G 1T HDD 50M/无限流量 $196.00 立即申请
香港服务器2 E5-2650 32G 1T HDD 50M/无限流量 $256.00 立即申请
香港服务器3 E5-2680 32G 1T HDD 50M/无限流量 $316.00 立即申请
香港服务器4 E5-2690 32G 1T HDD 50M/无限流量 $336.00 立即申请
香港服务器5 E5-2697 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器6 E5-2620*2 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器7 E5-2650*2 32G 1T HDD 50M/无限流量 $436.00 立即申请
香港服务器8 E5-2680*2 32G 1T HDD 50M/无限流量 $476.00 立即申请
香港服务器9 E5-2690*2 32G 1T HDD 50M/无限流量 $556.00 立即申请
香港服务器10 E5-2697*2 32G 1T HDD 50M/无限流量 $596.00 立即申请
香港服务器11 E5-2680v4*2 32G 1T HDD 50M/无限流量 $696.00 立即申请
香港服务器12 E5-2698v4*2 32G 1T HDD 50M/无限流量 $796.00 立即申请

#介绍

SafeBreach 实验室发现了赛门铁克终端安全这个漏洞(Symantec Endpoint Protection)(CVE-2019-12758)

利用这个漏洞,可以绕过赛门铁克的自我防护机制,还能实现防御规避、维持权限以及提权。方法是通过加载任意未签名的dll到赛门铁克签名运行的进程里面(这个进程是以NT AUTHORITY\SYSTEM权限运行)。

注:为了利用这个漏洞,攻击者需要有管理员权限。

#赛门铁克终端安全(Symantec Endpoint Protection)

赛门铁克终端安全是指一组安全软件套件,包括服务器版本以及桌面电脑版本,组成功能模块部分包括反病毒、入侵防护以及防火墙。由赛门铁克公司开发并在终端安全市场中拥有最大的市场份额。

这个软件中的很多部分都是以Windows服务的形式运行,这些服务以"NT AUTHORITY\SYSTEM"权限运行,这给程序提供了非常强力的权限支持。

在这篇文章,我们先描述上述的漏洞,然后展示如何利用这个漏洞在赛门铁克服务上下文里,达成执行任意命令的效果,以获得“NT AUTHORITY\SYSTEM”最高级别权限的访问权。

#漏洞

发现

在探索中,我们发现赛门铁克终端安全的一个服务(SepMasterService),是以“NT AUTHORITY\SYSTEM”权限启动一个单独的进程,这个进程会尝试加载一个不存在的dll,这个dll的位于:

c:\Windows\SysWOW64\wbem\DSPARSE.dll

如果能证明可以让我们的东西被加载进这个进程,我们就可以绕过赛门铁克反病毒程序的自我防护机制。主要是因为赛门铁克终端安全程序所在的目录受mini-filter文件系统驱动程序保护,会严格限制对其写操作,即便是管理员也不例外。

这就意味着,即便我们是Administrator,想要简单地植入一个不存在的dll到赛门铁克的进程里面,也是不现实的。

POC展示

为了测试这个漏洞,我们从dsparse.dll 里编译出一个32位的代理DLL(未签名的,代理DLL的意思是可以加载其它任意DLL)文件,dsparse.dll 实质上是位于SysWow64 目录,而不是 SysWow64\Wbem目录下面。编译出的dll,它功能是把下面的东西写到一个txt文件里面:

1.加载这个dll的进程名

2.执行这个dll的用户名

3.dll的文件名

然后我们把这个dll移植到 C:\Windows\SysWow64\Wbem目录,然后重启电脑。

此时,我们可以加载进一个任意的代理DLL(代理DLL可以加载其它任意DLL)进来了,然后在一个服务进程里面执行我们的代码,这个服务进程是赛门铁克集团签名的,而且运行权限是NT AUTHORITY\SYSTEM,最终的结果是,绕过了赛门铁克的自我保护机制。

#根本原因分析

有很多模块里的很多文件导致了这个漏洞,在这里就只分析其中的一个,因为问题的根源往往都是雷同的。

当 “Symantec Endpoint Protection” 服务器进程(ccSvcHst.exe) 启动的时候,它就会尝试用 IWbemServices COM接口的一个函数去执行一个WMI查询。这个COM接口名为:

(IWbemServices::ExecNotificationQueryAsync):

用OleViewDotNet(https://github.com/tyranid/oleviewdotnet)快速查看一下,可以看到,这个COM接口(和它的函数)是被设计用来使用这个COM代理DLL中的库“C:\Windows\SysWow64\wbem\fastprox.dll” (在我们的例子里,它是一个WOW64进程)

当fastprox.dll库里的ExecNotificationQueryAsync函数被调用之后,DsCrackSpnW 函数也会随之被调用。

我们可以看到,这个函数正是可以从dsparse.dll导入的,这会导致赛门铁克的那个服务进程尝试加载这个dll。

关于这个漏洞,有两个根本原因

1.没有针对二进制文件检查其数字签名。这个程序没有验证加载的DLL是否已经签名(这个功能可以用 WinVerifyTrust函数实现)。因为,它可以加载任意的未签名的DLL。

2.fastprox.dll 库尝试从它当前的运行目录加载dsparse.dll文件,这就是C:\Windows\SysWow64\Wbem目录,而实质上文件就是存在SysWow64 目录。

#潜在的恶意使用和影响

下面我们展示三个攻击者可能滥用的用途

防御规避,冒用签名执行,白名单绕过

这个漏洞给攻击者一个别样的能力,允许在赛门铁克的签名进程上下文里加载和执行恶意payloa。这个攻击能力可能会被攻击者用在各种目的的行动中,例如防御规避。举个例子,应用白名单绕过。这反病毒程序可能并不能检测到攻击者的二进制代码,因为这些程序已经在对它不进行任何验证就加载进来了。

(后门)持久化机制

这个漏洞给攻击者新的能力,允许他们以一种持久化的方式加载和执行恶意payload。每一次这个服务启动时就被加载进来。这就意味着当攻击者丢一个恶意dll进来,这些服务就会在每次启动时将它们加载进来。

提权

这些服务给攻击者一个提权的机会,可至Windows系统最高权限NT AUTHORITY\SYSTEM

#影响版本:

赛门铁克(Symantec Endpoint Protection)14.2 RU2 之前的所有版本。

24小时服务器机房客服
帮助中心
  • 24H在线
  • Tg纸飞机