Ivanti Connect Secure VPN 中的两个零日漏洞遭到大规模利用

2024年 1月 17日 30.5k 0

概述

在 2023 年 12 月的第二周,Volexity 在其网络安全监控服务客户之一的网络上检测到可疑的横向移动。经过仔细检查,Volexity 发现攻击者在多个面向内部和外部的 Web 服务器上放置了 Webshell。这些检测启动了跨多个系统的事件响应调查,Volexity 最终将其追溯到该组织面向互联网的 Ivanti Connect Secure (ICS) VPN 设备(以前称为 Pulse Connect Secure,或简称 Pulse Secure)。对 ICS VPN 设备的仔细检查显示,其日志已被擦除,日志记录已被禁用。对来自该设备的历史网络流量的进一步审查还发现,来自其管理 IP 地址的可疑出站和入站通信。Volexity 发现,早在 2023 年 12 月 3 日,该设备就存在可疑活动。

在事件响应调查的这一点上,Volexity怀疑零日漏洞可能在起作用,但还没有足够的证据来支持这一理论。Volexity 及其客户与 Ivanti 密切合作,以便从受影响的设备获取磁盘和内存映像。通过对收集到的数据进行取证分析,可以深入了解攻击者的各种工具、恶意软件和操作方法。

最值得注意的是,Volexity分析了其中一个收集到的内存样本,并发现了攻击者使用的漏洞利用链。Volexity 发现了两个不同的零日漏洞,它们被链接在一起以实现未经身份验证的远程代码执行 (RCE)。通过对内存样本的取证分析,Volexity 能够重新创建两个概念验证漏洞,允许在 ICS VPN 设备上执行完全未经身份验证的命令。这两个漏洞的CVE如下:

  • CVE-2023-46805 - CVSS 评分为 8.2 的身份验证绕过漏洞
  • CVE-2024-21887 - 在多个 Web 组件中发现一个命令注入漏洞,CVSS 评分为 9.1

当这两个漏洞结合在一起时,攻击者在系统上运行命令变得微不足道。在此特定事件中,攻击者利用这些漏洞窃取配置数据、修改现有文件、下载远程文件以及从 ICS VPN 设备反向隧道。Volexity 观察到攻击者修改了合法的 ICS 组件并对系统进行了更改,以逃避 ICS 完整性检查器工具。值得注意的是,Volexity 观察到攻击者在 ICS VPN 设备上后门合法的 CGI 文件 () 以允许命令执行。此外,攻击者还修改了设备的 Web SSL VPN 组件使用的 JavaScript 文件,以便对登录该设备的用户的凭据进行键盘记录和泄露。攻击者收集的信息和凭据使他们能够在内部转向少数系统,并最终不受限制地访问网络上的系统。compcheckresult.cgi

这篇博文介绍了 Volexity 取证分析和事件响应调查的主要发现,以及检测成功利用的建议。Volexity 目前将此活动归因于其在别名 UTA0178 下跟踪的未知威胁参与者。Volexity有理由相信UTA0178是中国民族国家层面的威胁行为者。

事件调查

Volexity 的客户已允许共享此事件调查,以阐明攻击者的行为,并可能协助其他组织启动调查。Volexity 使用来自其自己的网络安全传感器、客户端 EDR 软件的遥测数据以及从多个系统收集的取证数据来全面了解攻击者的行为。如前所述,Volexity 的调查并不是从 ICS VPN 设备开始的,但取证和网络流量分析都很快导致了该设备。这使得 Volexity 能够归零并仔细检查与 ICS VPN 设备相关的活动。

以下是 Volexity 在分析此事件过程中来自 ICS VPN 设备的网络流量时观察到的要点:

  • 通过 curl 通过 ip-api[.] 到 IP 地理定位服务的出站连接com 并多次发送到 Cloudflare 的 1.1.1.1 IP 地址
  • 通过受感染的 Cyberoam 设备反向 SOCKS 代理和 SSH 隧道连接
  • 从受感染的 Cyberoam 设备下载工具
  • 通过代理连接侦察内部网站
  • 使用泄露的凭据通过 RDP、SMB 和 SSH 连接到内部系统的横向移动
  • 将多个 webshell 变体(Volexity 称为 GLASSTOKEN)传输到只能在内部访问的 Internet 可访问的 Web 服务器和系统。

一旦 ICS VPN 设备被确定为受损,Volexity 就会从中收集关键证据。这包括使用 Ivanti 提供的完整性检查工具从设备收集的数据,用于识别设备上不匹配的文件。我们鼓励客户在发现任何泄露迹象时向 Ivanti 提交支持票证,包括完整性检查器工具识别出的新文件或不匹配的文件。Volexity 与 Ivanti 密切合作,获取了完整性检查器工具生成的快照的解密版本,以及内存和磁盘映像。在事件过程中,Volexity从多个设备获得了多个内存和磁盘映像。

Volexity 结合使用内存和磁盘取证,结合完整性检查器工具的结果,快速锁定放置在受感染的 Ivanti Connect Secure VPN 设备上的多个恶意文件。以下是 Volexity 识别的关键文件列表:

Volexity还认为,攻击者从系统目录中创建并执行了许多文件,这些文件在分析时已不在磁盘上。根据与旨在规避内置完整性检查器工具的排除列表相关的条目,Volexity 认为以下文件以前位于磁盘上的以下路径:/tmp/

  • /tmp/rev
  • /tmp/s.py
  • /tmp/s.jar
  • /tmp/b
  • /tmp/kill

通过从磁盘映像中雕刻文件,尽管文件已被删除,Volexity 还是能够恢复它认为可能的基于 Python 的代理实用程序。这被发现是 PySoxy 的副本,PySoxy 是一个用 Python 编写的 SOCKS5 代理,可在 GitHub 上找到。

恶意软件、工具

虽然 Volexity 在很大程度上观察到攻击者基本上生活在陆地上,但他们仍然在事件过程中部署了一些恶意软件文件和工具,这些文件和工具主要包括 webshell、代理实用程序和文件修改,以允许凭据收集。一旦UTA0178通过 ICS VPN 设备访问网络,他们的一般方法是使用泄露的凭据从一个系统到另一个系统进行透视。然后,它们会进一步破坏任何被破坏的新系统上的用户的凭据,并使用这些凭据通过 RDP 登录到其他系统。Volexity 观察到攻击者以多种方式获取凭据,详情如下:

  • 在多个实例中,攻击者能够使用他们泄露的凭据登录各种工作站和服务器,并使用任务管理器将 LSASS 进程的内存转储到磁盘。然后,攻击者泄露了此输出,以脱机提取更多凭据。
  • 攻击者能够访问包含虚拟硬盘备份的系统,其中包括域控制器的备份。他们挂载了这个虚拟硬盘,并从中提取了 Active Directory 数据库 ntds.dit 文件,并使用 7-Zip 对其进行压缩。
  • 攻击者发现了一个正在使用的 Veeam 备份软件实例,并使用 GitHub 上提供的脚本从中转储凭据。
  • 如前所述,攻击者修改了 ICS VPN 设备的 Web SSL VPN 登录页面加载的 JavaScript,以捕获在其中输入的任何凭据。

在网络中使用这种访问,Volexity主要通过UTA0178观察系统进行侦察和探索。这主要包括查看用户文件、配置文件和测试对系统的访问。除此之外,主要值得注意的活动是将 webshell 部署到多个系统。Volexity尚未观察到UTA0178在Webshell之外部署任何更高级的恶意软件植入或持久性机制。以下是观察到的 Webshell 活动类型的摘要:

  • 攻击者修改了合法的 ICS VPN 组件 () 以支持执行远程命令。compcheckresult.cgi
  • 攻击者将 Webshell Volexity 的版本 1 部署到多个可通过 Internet 访问的 Web 服务器调用 GLASSTOKEN。
  • 攻击者将版本 2 的 GLASSTOKEN webshell 部署到内部的、无法通过 Internet 访问的服务器。

除了在 ICS VPN 设备上执行命令的能力之外,这些 webshell 似乎是攻击者持续访问网络所依赖的主要方法。下面介绍了一些观察到的各种恶意软件和工具的其他详细信息。

GLASSTOKEN:自定义 Webshell

UTA0178在面向外部的 Web 服务器上植入了 Webshell,以便为客户环境提供持久性。然后,他们可以使用 webshell 在这些设备上执行命令。攻击中只使用了同一 webshell 的两个变体。

版本 1

此版本的 webshell 有两个代码路径,具体取决于请求中存在的参数。第一个代码路径与 ReGeorg 中存在的“隧道”模板几乎相同,该模板用于中继连接。第二个代码路径是经典的代码执行案例,其中请求参数中的内容从十六进制解码,然后在传递给 Assembly.Load() 之前进行 base64 解码。根据发现的证据,这主要用于执行任意 PowerShell 命令。

版本 2

第二个版本的 webshell 几乎与第一个完全相同,但它只包含第二个代码路径以允许代码执行。此版本省略了本机隧道功能。

JS 凭据盗窃

如前所述,为了获得对用户凭据的访问权限,攻击者修改了 Web 应用程序的合法组件文件,修改了“Login”功能以将用户凭据 POST 到攻击者控制的域。这是通过将以下代码添加到函数的开头来完成的:lastauthserverused.js

这将导致从用户的浏览器向攻击者网站发出 GET 请求,并在请求中对受害者的用户名和密码进行 base64 编码。

visits.py 修改 - GIFTEDVISITOR

攻击者还修改了 Ivanti Connect Secure 的另一个内置组件,添加了一个名为 Webshell 组件的 Webshell 组件,Volexity 将其称为 GIFTEDVISITOR。 每当用户访问 /api/v1/cav/client/visits 时,都会调用此函数中的代码。对此代码的修改是将以下附加代码添加到 POST 请求的处理程序中:visits.py

检测入侵

组织可以使用三种主要方法来检测与受损的 Ivanti Connect Secure VPN 设备相关的活动:

  • 网络流量分析
  • VPN设备日志分析
  • 完整性检查器工具的执行

以下各节描述了组织可以采取哪些措施来在这些不同类别中寻找妥协的迹象。这些方法中的任何一种都可以提供强有力的证据,证明 ICS VPN 设备已遭到入侵。如果发现妥协的迹象,标题为“响应妥协”的部分可用于下一步该做什么。

网络流量分析

组织可以用来寻找入侵迹象的一种方法是检查源自其 VPN 设备的异常流量。这包括从设备发往 Internet 的流量,以及从设备到内部系统的流量。虽然这些设备配置为允许远程用户访问网络,但分配给 VPN 用户的 IP 地址通常与 VPN 设备本身使用的 IP 地址分开。组织可以检查来自 VPN 设备的出站网络流量,以查找设备的非典型连接。从 Volexity 对客户端网络的网络安全监控中,它通常会看到 VPN 设备连接回 download.pulsesecure[.]net 和任何其他客户配置的集成,例如到 SSO 或 MFA 提供程序。Volexity 从不规则的受感染 VPN 设备中观察到的示例活动包括:

  • 对远程网站的 curl 请求
  • 通过 SSH 连接返回远程 IP
  • 与未与 SSO/MFA 提供程序或设备更新关联的主机的加密连接

此外,Volexity 还能够通过观察来自与 VPN 设备关联的 IP 地址的入站网络流量来检测威胁活动。对于这些设备,可能会有预期的内部流量,用于 DNS 服务、目录集成和其他相关流量,这些流量应该始终如一地看到。但是,Volexity 观察到的其他未达到预期的内部流量包括:

  • 内部系统的 RDP 和 SMB 活动
  • SSH 尝试到内部系统
  • 对主机进行端口扫描,以查找具有可访问服务的系统

Volexity与客户合作,在内部和外部监控他们的网络。至少,任何流量分析都可能检测到外部目标流量。但是,如果攻击者尝试连接到运行该软件的系统,也可以通过利用端点检测和响应 (EDR) 产品来完成内部监视或搜寻。搜索或监视此活动的 EDR 产品是检测此威胁的另一种方法。

VPN设备日志分析

检测 ICS VPN 设备上威胁的另一种好方法是监控其日志。好消息是这些设备记录了相当多的记录。这些日志可以通过管理界面的 System -> Log/Monitoring 访问。然后,可以在 Web 上查看日志或导出日志以进行离线分析。还可以配置 SYSLOG 服务器,以确保将这些日志发送到另一个目标,并且无法擦除或篡改。

Volexity 建议组织启用该设置以记录“未经身份验证的请求”。这可以通过从“日志/监控”页面中访问“用户访问”下的“日志设置”页面来配置。配置此设置后,向 ICS VPN 设备发出的未经身份验证的 Web 请求将记录在用户日志中。这可能有助于发现漏洞利用、数据泄露或与攻击者试图未经授权访问设备相关的其他事件。在之前的一篇博文中,Volexity 介绍了如何使用这些日志来观察 Pulse Secure 设备的利用。在这种情况下,攻击者利用漏洞窃取包含凭据和会话信息的数据库文件。

Volexity 发现,在检查来自 ICS VPN 设备的日志时,以下情况对于检测入侵很有用:

  • 日志被擦除和/或禁用。在至少一个案例中,Volexity 观察到威胁参与者清除日志并禁用进一步的日志记录。这可能是一个强有力的入侵指标,特别是如果您知道日志记录应该并且以前是有效的。
  • 请求有效但非典型路径中的文件。未经身份验证的请求日志记录将捕获为任何类型的 Web 扫描发出的请求。但是,检查对有效但不常见的有效 ICS VPN 设备路径的请求可能是入侵的潜在指标。在多个场合,Volexity 观察到威胁参与者通过目录中找到的文件访问他们存储数据泄露的文件。/dana-na/help/
  • 来自内置完整性检查器工具的检测。从 PCS 9.1R12 开始,ICS VPN 设备具有完整性检查器工具的内置版本。此工具可以计划为自动运行,并在检测到新文件或不匹配的文件时进行记录。这可能是一个非常有力的指标,表明您的 ICS VPN 设备已受到威胁。在 Web 界面中,在“日志/监控”中的“事件日志”下,这些事件将显示为“SYS32039”和“SYS32040”。这些 ID 仅显示在 Web 界面中,在下载的日志中仅显示为“严重”事件,并显示“完整性扫描已完成:检测到 2 个新文件”等文本。如果列出了任何新的或不匹配的文件,则应将设备视为已泄露。

下图显示了一个示例,说明如果内置完整性检查器工具找到新文件 (SYS32039),将在 Web 控制台中显示的内容。如果识别出不匹配的文件 (SYS32040),将显示类似的消息。

现在是坏消息。至少在撰写本文时,即使启用了“未经身份验证的请求”设置,与在野外使用的漏洞相关的 Web 请求也不会出现在日志中。这意味着您无法从日志中判断服务器是否被利用。

执行完整性检查器工具

除了内置版本外,Ivanti 还拥有增强版的完整性检查器工具,可在 ICS VPN 设备上运行,组织可以下载该工具。保存在本地后,该工具将通过将包上载到服务器并将其安装为 Service Pack 来运行。然后,该工具将运行并在屏幕上显示其结果。这包括是否发现任何新的或不匹配的文件。注意:运行完整性检查器工具将重新启动ICS VPN设备,这将导致系统内存的内容大部分被覆盖。 如果在运行此工具之前有入侵迹象,建议在可以收集内存和其他取证项目之前不要运行该工具。

下图显示了在受感染的系统上运行完整性检查器工具时的外观示例。

如图所示,在步骤 8 和 9 中可以看到潜在危害的有力指标。这些字段显示大于 0 的“不匹配的文件 =”和“新检测到的文件 =”的值。ICS VPN 设备重新启动后,将保存意外文件的加密快照并可供下载。此文件可以提供给 Ivanti 进行解密,并将包含已识别的意外文件的存档副本。

结论

随着组织不断改进和加强防御,攻击者不断寻找绕过它们的方法。可访问互联网的系统,尤其是 VPN 设备和防火墙等关键设备,再次成为攻击者最喜欢的目标。这些系统通常位于网络的关键部分,无法运行传统的安全软件,并且通常位于攻击者操作的理想位置。组织需要确保他们有一个适当的策略,以便能够监控这些设备的活动,并在发生意外情况时快速响应。

至关重要的是,组织应立即应用 Ivanti 提供的缓解措施以及随后的补丁。但是,应用缓解措施和补丁并不能解决过去的妥协问题。运行 ICS VPN 设备的组织必须查看其日志、网络遥测和完整性检查器工具结果(过去和现在),以查找任何成功入侵的迹象。

IOC

IP

75.145.243.85
206.189.208.156
47.207.9.89
98.160.48.170
173.220.106.166
73.128.178.221
50.243.177.161
50.213.208.89
64.24.179.210
75.145.224.109
50.215.39.49
71.127.149.194
173.53.43.7

参考链接:https://www.volexity.com/blog/2024/01/10/active-exploitation-of-two-zero-day-vulnerabilities-in-ivanti-connect-secure-vpn/

图片来源网络目标可联系删除

相关文章

Mallox勒索软件新Linux变种现世
伪装成破解程序和商业工具的新型恶意软件正在传播
Orcinius后门新样本分析
Poseidon窃取程序通过Google广告感染Mac用户
大选开始之际,欧盟各政党遭受 DDoS 攻击
微软2024

发布评论