在本文中,我们将为读者详细介绍在IBM QRadar Wincollect 7.2.0 - 7.2.9中被曝出的本地提权漏洞。利用本文所述漏洞,低权限用户能够删除系统中的任意文件并禁用Wincollect服务。通过这个任意文件删除的漏洞,攻击者可以获得NT AUTHORITY/SYSTEM的访问权限,进而得以禁用Wincollect服务。
漏洞描述
实际上,导致任意删除问题的根源有两个,具体如下文所示。
在安装完WinCollect后,安装程序仍然保存在c:WindowsInstaller文件夹下。并且,任何低权限的用户都可以通过以下命令来运行该安装程序:
```
msiexec /fa c:WindowsInstaller****.msi。
```
对于WinCollect的安装程序来说,虽然低权限用户执行它时最终会以失败而告终,但它却会在用户的Temp文件夹下创建相应的日志文件。
在某些情况下,该安装程序会试图以SYSTEM的身份来删除这些日志文件。因此,只要用户控制了其Temp文件夹中的文件(C:UsersusernameAppDataLocalTemp),他们就可以创建一个针对系统中任何文件的符号链接。当这个安装程序试图删除这些文件时,它将启用符号链接,并以SYSTEM的身份执行删除操作。
即使未来微软公司对符号链接进行了相应的安全处理,攻击者仍然可以通过编辑文件 ~xxxx.tmp 来实现任意文件删除。
对于文件C:UsersusernameAppDataLocalTemp/~xxxx.tmp来说,其中xxxx是一个随机的十六进制数,并且文件的结尾含有下列内容:
```
[SearchRepalceTargetBackupFiles]
C:Program FilesIBMWinCollectconfigCmdLine.txt=C:UsersattackerAppDataLocalTemp_isFD30
C:Program FilesIBMWinCollectconfiglogconfig_template.xml=C:UsersattackerAppDataLocalTemp_isFD8F
C:Program FilesIBMWinCollecttemplatestmplt_AgentCore.xml=C:UsersattackerAppDataLocalTemp_isFDAF
```
攻击者可以编辑这些内容,并添加想要删除的文件,具体如下所示:
```
[SearchRepalceTargetBackupFiles]
C:Program FilesIBMWinCollectconfigCmdLine.txt=C:windowswin.ini
C:Program FilesIBMWinCollectconfiglogconfig_template.xml=C:UsersAdminwhatever.exe
C:Program FilesIBMWinCollecttemplatestmplt_AgentCore.xml=C:Usersanotheruserlogs.txt
```
当这个安装程序运行失败时,它会以SYSTEM身份删除这些文件。
需要注意的是,在删除这些文件的过程中,wincollect服务将被挂起,直到退出该程序时为止。
漏洞利用方法
为了利用这个漏洞,攻击者根本就不需要专门的程序。
下面,我们将配合PoC视频,进行详细的解释。
请注意,IBM QRadar Wincollect的漏洞在攻击者删除WER文件夹(或任何其他你想删除的文件/文件夹)时就“消失”了。
虽然利用这个任意文件删除漏洞,攻击者可以将其权限提升为SYSTEM,但是本质上说,这里的权限提升与此漏洞无关,根源在于MS Windows。对于这个问题,Jonas L在他的博客文章中给出了相应的解释,具体地址为: https://secret.club/2020/04/23/directory-deletion-shell.html。
其中,delete.exe是该提权技术的一种实现,读者可以在作者的github repo中找到: https://github.com/DimopoulosElias/Primitives。
关于PoC视频的详细解读
本文所述漏洞的PoC视频的地址为:https://youtu.be/Ww13Ya54yiA。
00:00-00:11: 介绍测试环境。其中,我们是一个低权限用户,并且需要使用的安装程序文件是11ec43.msi。这个文件来自IBM,是wincollect代理的安装文件。
00:11-00:22:作为低权限用户,运行安装程序11ec43.msi。在这个时间段结束时(00:22),wincollect服务已经停止。实际上,wincollect服务一旦被禁用(CVE-2020-4485),我们就可以执行任意操作了。
00:22-00:58:我们将使用Jonas L发明的技术,通过任意文件删除漏洞获得SYSTEM访问权限。为此,我们需要删除C:ProgramDataMicrosoftWindowsWER这个文件夹,问题在于:低权限用户是无法删除该文件夹的。不过,某些子文件夹却是可以删除的。在这段时间内,我们需要把能够删除的子文件夹都删掉——注意,这里并没有使用任何漏洞利用代码。
00:58-02:42: 通过利用CVE-2020-4486漏洞,删除WER文件夹中剩余的文件和子文件夹。对于一个低权限的用户来说,是无法删除这些文件/文件夹的,就像我们在之前介绍的那样。其中,之所以使用$INDEX_ALLOCATION,是为了删除一个文件夹而不是一个文件。
02:42-03:58:我们再运行一次漏洞利用代码,以便删除C:ProgramDataMicrosoftWindowsWER文件夹。至此,CVE-2020-4486漏洞的利用过程结束。视频的其余部分介绍了如何利用Primitives程序提权至SYSTEM,注意,这个过程与IBM WinCollect的漏洞无关。
03:58-结束:现在,我们已经删除了WER文件夹。接下来,我们将利用https://github.com/DimopoulosElias/Primitives获取SYSTEM权限。同样,这与IBM的漏洞无关。这是一个利用原语,可以实现任意文件删除,以便升级到SYSTEM权限。
至于如何利用符号链接实现本地提权,我们将作为一个练习留给读者。
原文地址:https://labs.redyops.com/index.php/2020/09/11/ibm-qradar-wincollect-escalation-of-privileges-cve-2020-4485-cve-2020-4486/
概述 原文: https://pentestlab.blog/2020/03/04/persistence-dll-hijacking/ by Administrator.In Persistence.Leave a Comment 当一个程序启动时,许多DL…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论