介绍
Ivanti Endpoint Manager (EPM) 是一种企业端点管理解决方案,可对组织内的设备进行集中管理。2024 年 9 月 12 日,ZDI 和 Ivanti 发布了一份公告,描述了导致远程代码执行的反序列化漏洞,CVSS 评分为 9.8。在这篇文章中,我们详细介绍了此漏洞的内部工作原理。我们的 POC 可以在这里找到。我们要感谢@SinSinology发现了这个漏洞。
代理门户
ZDI 公告准确地告诉我们在哪里寻找漏洞。名为AgentPortal
的服务。快速搜索表明我们可以在以下位置找到该文件 C:Program FilesLanDeskManagementSuiteAgentPortal.exe
。经过进一步调查,我们发现它是一个 .NET 二进制文件。
AgentPortal.exe 详细信息
将AgentPortal.exe
加载到JetBrains dotPeek中进行反编译后,我们发现它并不是一个非常复杂的程序。它的主要职责是为IAgentPortal
接口创建 .NET Remoting 服务。
AgentPortal 启动
IAgentPortal接口
IAgentPortal
接口非常简单,它由创建Requests
的函数和用于获取结果并检查这些请求的状态的其他函数组成。深入研究我们可以发出什么样的请求,我们找到了ActionEnum
枚举。
动作枚举
我们立即被RunProgram
选项所吸引。该选项的处理程序向攻击者展示了一种运行任意程序的非常简单的方法。
进程运行程序动作
这是一个非常简单的 RCE,我们希望确保我们正在查看正确的漏洞,因此我们加载了 EPM 的修补版本,以查看AgentPortal.exe
中是否有任何更改。
修复方法
我们在 EPM 的修补版本中发现了两个主要修复。第一个限制ProcessRunProgramAction
可以运行ping.exe
和tracert.exe
的程序类型。
处理运行程序操作修复
第二个重点是确保AgentPortal
服务仅在启用 Windows 防火墙的情况下运行。
AgentPortal 防火墙修复
这让我们对这个漏洞的理解提出了一些警告。
一些注意事项
虽然我们非常确定本文中描述的漏洞是真正的 CVE-2024-29847。有两个问题让我们犹豫不决。首先,虽然这个漏洞在技术上涉及反序列化,但我们认为将其描述为命令注入会更准确。这让我们想知道我们是否可能错过了该漏洞的另一个方面。
第二个问题集中在该漏洞与防火墙的交互上。上述修复清楚地表明 Ivanti 希望启用防火墙才能使该服务正常运行。此外,在我们的实验室安装中,我们必须在 Windows 防火墙中打开一个漏洞才能利用此漏洞。如果大多数 EPM 安装都是这种情况,那么此漏洞不会那么严重,因为 Windows 防火墙会阻止任何利用尝试。然而,当我们在现场检查一些 EPM 的实时安装时,我们发现每个实例都暴露了易受攻击的端口。这种差异可能归因于以下几点:
- 我们的实验室安装尚未完成,进一步的设置和使用可能会让我们打开防火墙以获得完整功能。
- EPM 的某些产品安装可以与需要公开临时端口的其他产品一起运行。
- 我们可能错过了该漏洞的另一个部分,导致易受攻击的端口暴露。
受攻击指标
AgentPortal
服务使用的端口可以在注册表中找到: ComputerHKEY_LOCAL_MACHINESOFTWARELANDeskSharedComponentsLANDeskAgentPortal
。
AgentPortal 注册表项
应调查环境中与AgentPortal
地址的任何意外连接是否存在恶意活动。
原文始发于微信公众号(合规渗透):CVE-2024-29847 Ivanti Endpoint Manager AgentPortal 反序列化远程代码执行漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论