Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-2025-0282-ivanti_rce_reproduction — 复现 cve-2025-0282-ivanti_rce_reproduction | Kitploit
工具/GitHubGitHub/razureink/cve-2025-0282-ivanti_rce_reproduction
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育远程访问工具Payload 开发二进制利用

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
GitHub
razureink/cve-2025-0282-ivanti_rce_reproduction

cve-2025-0282-ivanti_rce_reproduction

复现 cve-2025-0282-ivanti_rce_reproduction

查看仓库
193个月前尚未审核
分享

CVE-2025-0282 — Ivanti Connect Secure / Policy Secure / ZTA 网关栈缓冲区溢出远程代码执行漏洞

CVSS 9.0 — 严重 | 已遭主动利用的零日漏洞 | 2025年1月发现


概述

CVE-2025-0282 是 Ivanti Connect Secure (ICS)、Ivanti Policy Secure (IPS) 和 Ivanti ZTA 网关中 IFT/TLS 处理组件的一个栈缓冲区溢出漏洞 (CWE-121 / CWE-787)。该漏洞允许未经身份验证的远程攻击者在目标设备上以 root 权限实现任意代码执行。

该漏洞于 2025 年 1 月 8 日 披露,此前已被观察到作为零日漏洞遭主动利用。该漏洞被归因于由 Mandiant 追踪的、与中国有关联的威胁行为体 UNC5337。CISA 在公开披露后 72 小时内将该 CVE 添加到了其已知被利用漏洞目录 (KEV) 中。


技术细节

根本原因

该漏洞存在于设备 HTTPS 管理接口的 IFT(内部转发表)/ TLS 数据包处理路径中。当解析格式错误的 TLS 握手消息或特制的 IFT 帧时,代码会将攻击者控制的数据复制到一个固定大小的栈缓冲区中,而没有进行适当的边界检查:

memcpy(stack_buffer, attacker_data, attacker_controlled_length);  // 无长度检查

由于目标缓冲区位于栈上,超大的有效载荷会覆盖:

  • 局部变量 — 可改变程序逻辑
  • 保存的返回地址 (RIP/RA) — 可启用 ROP 或直接代码执行
  • SEH 链(基于 Windows 的版本) — 可启用 SEH 覆盖

攻击向量

字段详情
攻击向量网络
复杂度低
权限无
用户交互无
影响范围未改变
机密性高
完整性高
可用性高

利用特征

  • 完整利用链不需要身份验证
  • 利用发生在 TLS 握手阶段,早于应用层身份验证
  • 公共 PoC 代码利用伪造 TLS 记录中的超大物理帧大小字段(>65535 字节)来溢出 1024 字节的栈缓冲区
  • 成功利用可在设备上获得 root shell
  • UNC5337 的利用后活动包括凭据转储、隧道安装和横向移动

受影响版本

产品受影响版本修复版本
Ivanti Connect Secure< 22.7R2.522.7R2.5
Ivanti Policy Secure< 22.7R1.222.7R1.2
ZTA 网关< 22.7R2.322.7R2.3

注意: Ivanti 已确认 22.6 版本系列也存在漏洞。仍在使用 ICS 9.x 或 22.4 的客户同样面临风险。

检测指标

  • HTTPS 管理接口日志中意外的 TLS 握手大小
  • sslvpn 或 dsaccess 服务因访问冲突而崩溃
  • 计划外的设备重启
  • 存在诸如 /tmp/*.py、.sslvpn_config_upload 或意外 cron 条目等文件
  • 设备向与 UNC5337 基础设施相关的 IP 地址发起出站连接

复现步骤

先决条件

  • Python 3.8+
  • 目标 Ivanti 设备(仅限授权测试环境)
  • 网络访问 HTTPS 管理接口(默认端口 8443)
  • Python 模块 scapy、socket 和 ssl

设置

  1. 克隆此仓库:

    git clone https://github.com/your-org/cve-2025-0282-reproduction
    cd cve-2025-0282-reproduction
    
  2. 安装依赖:

    pip install -r requirements.txt
    

    (依赖项:scapy、argparse、socket — socket 为标准库)

执行

  1. 对目标运行 PoC:

    python exploit.py --target 192.168.1.100 --port 8443
    
  2. 指定自定义有效载荷大小:

    python exploit.py --target 192.168.1.100 --port 8443 --payload-size 4096
    
  3. 启用调试输出:

    python exploit.py --target 192.168.1.100 --port 8443 --verbose
    

PoC 功能

  1. 打开到目标 HTTPS 管理接口的 TCP 连接
  2. 发送标准的 TLS ClientHello
  3. 收到 ServerHello 后,PoC 注入一个带有超大 IFT 帧大小字段的格式错误的 TLS 记录
  4. 该格式错误的记录触发 memcpy 进入 1024 字节的栈缓冲区,且无边界检查
  5. 溢出破坏栈,导致概念验证崩溃(段错误或访问冲突)
  6. 在完整漏洞利用中,此崩溃将被 ROP 链替代,从而执行任意代码

重要: 提供的代码仅用于教育和授权测试。它演示了缓冲区溢出条件,并会在未修补的目标上导致拒绝服务(崩溃)。针对你不拥有或未获得书面许可进行测试的系统运行此代码是违法的。


PoC 代码

请参见本仓库中的 exploit.py。

该脚本接受以下参数:

usage: exploit.py [-h] --target TARGET [--port PORT] [--payload-size PAYLOAD_SIZE] [--verbose]

CVE-2025-0282 Ivanti 栈缓冲区溢出复现 PoC

options:
  -h, --help            显示此帮助信息并退出
  --target TARGET       目标 Ivanti 设备 IP 或主机名
  --port PORT           目标端口(默认:8443)
  --payload-size PAYLOAD_SIZE
                        溢出有效载荷大小(字节)(默认:4096)
  --verbose             启用详细/调试输出

缓解措施

操作详情
立即打补丁升级至 ICS >=22.7R2.5、IPS >=22.7R1.2、ZTA >=22.7R2.3
限制网络访问仅允许受信任 IP 访问 HTTPS 管理接口
启用多因素认证减轻利用后的横向移动
监控日志留意 TLS 异常和意外的进程崩溃
搜寻入侵指标检查 UNC5337 的 TTP(凭据转储、隧道工具)

补丁延迟时的临时方案

  • 在管理接口前部署具有 TLS 记录大小检查规则的 WAF/IPS
  • 在面向外部的网络接口上禁用管理接口
  • 使用 Ivanti 的外部完整性检查器 (IC) 工具验证设备完整性

参考

  • NIST NVD CVE-2025-0282
  • CISA KEV CVE-2025-0282
  • Mandiant / UNC5337 分析
  • Ivanti 安全公告
  • ATT&CK:利用面向公众的应用程序 (T1190)
  • CWE-121:基于栈的缓冲区溢出
  • CWE-787:越界写入

免责声明

此仓库仅供授权的安全研究和教育目的使用。作者不对任何滥用此代码的行为负责。未经授权利用 CVE-2025-0282 是非法且不道德的。在测试任何系统之前,请务必获得明确的书面许可。

下载工具