Ivanti Connect Secure栈溢出漏洞(CVE-2025-0282)分析与复现

2025-02-13 34 0

漏洞概述

Ivanti Connect Secure、Ivanti Policy Secure和Ivanti Neurons for ZTA gateways  是Ivanti 公司提供的远程访问和安全连接解决方案,主要功能包含VPN、访问控制、流量加密等。其IF-T/TLS协议在认证前,存在栈缓冲区溢出漏洞,攻击者可以利用该漏洞实现未授权远程代码执行。该漏洞已被APT组织利用。

影响范围

Ivanti Connect Secure 22.7R2 - 22.7R2.4

Ivanti Policy Secure 22.7R1 - 22.7R1.2

Ivanti Neurons for ZTA gateways 22.7R2 - 22.7R2.3

复现环境

版本:Ivanti Connect Secure 22.7R2.3

环境搭建

Ivanti Connect Secure 22.7R2.3导入虚拟机后开机,按照界面提示设置IP地址,管理员账号和密码等。

配置成功后,进入命令行界面,可以根据编号进行系统管理,但是无法执行底层Shell命令。

同时在浏览器中使用HTTPS协议打开配置的IP地址,可以正常显示Web登录界面。

查看虚拟机磁盘文件,尝试挂载到其他系统,解包出系统中的文件。但是文件系统被加密,无法通过常规挂载方式获取系统文件。这种情况下,常见方案可以逆向分析系统启动流程,分析解密算法,解密出系统文件。但是时间成本比较高。

笔者则是选择使用另一种方法,将虚拟机暂停后,修改其内存文件中的/home/bin/dsconfig.pl字符串为///////////////bin/sh。/home/bin/dsconfig.pl是控制台界面执行时需要调用的脚本文件,替换后等待控制台界面超时后按“回车”,即可获取底层Shell。

获取到底层Shell后,可以执行任意系统命令。然后使用自带的python程序,开启web服务,下载系统文件进行逆向分析。

漏洞分析

根据公开的POC,漏洞使用HTTPS触发。定位到HTTPS服务的进程为/home/bin/web。

逆向分析该web程序后发现,IF-T/TLS协议在认证时,获取客户端属性字段“clientIP”、“clientHostName”、“clientCapabilities”等进行处理。

在处理过程中,使用strncpy复制clientCapabilities属性值时,最后一个参数v23是要复制的最大字节数。但是这里错误的使用了从客户端获取的clientCapabilities属性值的长度加1,用户可控制。

而目的缓冲区(dest)是一个栈缓冲区,最大长度为256。客户端可传入超过256字节长度的clientCapabilities属性值,从而导致该栈缓冲区溢出。

溢出后可覆盖栈中保存的返回地址,待执行到函数返回时,将跳转到覆盖的指定内存地址执行任意代码。

漏洞利用

根据以上分析,溢出后只需要覆盖栈中保存的返回地址即可执行任意代码。但事实并非这么简单。目前遇到的问题:

1. 程序自身安全措施

2. 虚函数调用

3. 释放对象内存

首先分析下web程序自身的安全保护措施。

该程序有NX和PIE保护,溢出后,栈中的数据默认没有执行权限,不能作为shellcode直接执行,可使用ROP技术绕过。

PIE和系统地址随机化安全措施,导致内存地址不再是固定值,无法提前预测,可使用信息泄露或者暴力破解等方法解决。分析后没找到可泄露内存地址的方法,由于该程序是32位程序,理论上最多尝试16的4次方,共65536次,可暴力破解libc.so.6的内存基地址。

在执行到覆盖的返回地址前,还执行了许多其他代码,其中一个虚函数调用地址可能被覆盖,导致程序异常退出,无法执行到栈中被覆盖的返回地址。解决方法是在libc.so.6的内存中搜索满足该条件的虚函数调用,保证能正常执行到后续代码。

此外,还有一处代码释放DSUtilMemPool对象内存,但是该内存被溢出覆盖了,导致程序异常退出。可将该对象内存地址设置为-1(0xFFFFFFFF),保证能正常执行到后续代码。

此外,还有一处代码释放DSUtilMemPool对象内存,但是该内存被溢出覆盖了,导致程序异常退出。可将该对象内存地址设置为-1(0xFFFFFFFF),保证能正常执行到后续代码。

经过上述分析,最终的栈布局如下图所示:

参考链接

ddpoc链接:

www.ddpoc.com/DVB-2025-8730.html

https://github.com/BishopFox/CVE-2025-0282-checkhttps://cloud.google.com/blog/topics/threat-intelligence/ivanti-connect-secure-vpn-zero-dayhttps://labs.watchtowr.com/do-secure-by-design-pledges-come-with-stickers-ivanti-connect-secure-rce-cve-2025-0282/https://labs.watchtowr.com/exploitation-walkthrough-and-techniques-ivanti-connect-secure-rce-cve-2025-0282

原文链接


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

甲方安全何时需要自研安全产品?安全平台工程团队的价值与落地策略
Burpsuite基础使用教程
Kali linux hping3基础使用方法
DouCo DouPHP 安全漏洞(CVE-2024-57599)
9万个WordPress站点面临本地文件包含漏洞攻击
从中国视角看 NSA(方程式组织)的 TTP(攻击套路)

发布评论