近日,Mandiant 分析团队发现 Ivanti Connect Secure VPN 面临新零日攻击。这一攻击利用了 CVE-2025-0282 漏洞,影响了多个 Ivanti Connect Secure 设备。Mandiant 正在分析多个受损设备,并将继续更新本文以提供更多见解。
攻击活动
Mandiant 目前正在分析来自多个组织的受损 Ivanti Connect Secure 设备。该团队观察到,在至少一个受损设备上,Mandiant 发现了之前观察到的 SPAWN 间谍软件生态系统的部署,这包括 SPAWNANT 安装程序、SPAWNMOLE 隧道器和 SPAWNSNAIL SSH 后门。这些恶意软件被归因于 UNC5337 集群活动,根据信心程度为中等评估为 UNC5221 的一部分。
此外,Mandiant 还发现了之前未观察到的恶意软件家族,包括 DRYHOOK 和 PHASEJAM,但这些恶意软件尚未与已知团体关联。虽然有可能存在多个攻击者负责这些代码家族的创建和部署,但截至发表本报告时,Mandiant 并未获得足够数据来准确评估 CVE-2025-0282 漏洞所涉及的威胁actor数量。随着收集更多见解,Mandiant 将继续更新本文。
系统升级持久性
Mandiant 发现威胁actor在受损 Ivanti Connect Secure 设备上使用了两种方法来在系统升级时保持持久性。最近版本的 Ivanti Connect Secure 包含内置的完整性检查工具(ICT),该工具定期扫描文件系统以检测新建或修改的系统文件,这些文件可能指示系统被破坏。ICT 使用一个清单进行扫描,该清单包含系统上预期文件路径及其预期 SHA256 散列值。
为了绕过 ICT 扫描,攻击者重新计算修改后的 DSUpgrade.pm
文件的 SHA256 散列值,并将其插入清单中。具体操作如下:
1 | sed -i "s/$(grep /home/perl/DSUpgrade.pm | /home/etc/manifest/manifest -a | grep -oE '[0-9a-f]{64}')/$(/home/bin/openssl dgst -sha256 /home/perl/DSUpgrade.pm | grep -oE '[0-9a-f]{64}')/g" /home/etc/manifest/manifest; |
此外,攻击者将 VERSION
文件从挂载升级分区(tmp/root/home/VERSION
) 复制到当前版本分区(/home/VERSION
). 这样系统会错误地指示升级成功,而实际上仍在运行旧版本。具体操作如下:
1 | chdir("/tmp"); |
然后,攻击者重新计算 VERSION
文件的 SHA256 散列值,并将其插入 ICT 清单中。具体操作如下:
1 | system('sed -i \'s/$(grep /home/VERSION | grep -oE "[0-9a-f]{64}")/$(/home/bin/openssl dgst -sha256 /home/VERSION)/g\' /home/etc/manifest/manifest'); |
机器人数据库盗窃
Mandiant 观察到威胁actor在受损设备上存档数据库缓存,并将存档数据放置在由公共面向 Web 服务器服务的目录中,以便盗窃数据库。数据库缓存可能包含与 VPN 会话相关的信息、会话 cookie、API 密钥、证书和凭证材料。
攻击者将 /runtime/mtmp/lmdb
目录的内容存档,并将其重命名为一个伪装成 CSS 文件的文件,位于 /home/webserver/htdocs/dana-na/css/
目录中。Ivanti 曾发布有关从数据库缓存泄露风险的修复指南,包括重置本地账户凭证、重置 API 密钥以及撤销证书。
凭证窃取
Mandiant 观察到威胁actor部署了一个用 Python 编写的脚本,追踪为 DRYHOOK,用于窃取凭证。该恶意软件旨在修改 Ivanti Connect Secure 环境中的系统组件 DSAuth.pm
以便收集成功认证信息。
当执行该脚本时,它会打开 /home/perl/DSAuth.pm
文件并读取其内容,然后使用正则表达式找到并替换以下代码行:
1 | setPrompt |
替换的 setPrompt
函数捕获第二和第三参数,将它们组合成 <param2>=<param3>
格式,并将产生的字符串分配给全局变量 $ds_g
。接下来,替换的代码段显示第二参数是用户名,而第三参数是用户尝试认证时的密码。
修改后的内容尝试写回 DSAuth.pm
文件,如果写入失败,则会重新挂载文件系统为可读写模式,写入文件,然后重新挂载为只读模式。最后,所有 cgi-server
进程都会被杀死,以便激活修改后的 DSAuth.pm
文件。
通过这些手段,攻击者能够成功窃取和利用目标系统中的凭证信息。为了防止此类攻击,组织应及时更新软件,并采取有效的安全措施来保护其关键设备和数据。