
CVE-2025-6218 是 WinRAR 中的一个目录遍历漏洞,当用户解压特制的
CVE-2025-6218 是 WinRAR 中的一个目录遍历漏洞,当用户解压一个特制的 .rar 压缩包时,攻击者可以将文件放置到预期解压目录之外。利用此漏洞,攻击者可以将恶意文件投放到敏感位置,如果该文件被系统或用户执行,则可能导致远程代码执行 (RCE)。
---
WinRAR.exe --version)。目录遍历漏洞允许攻击者操纵文件路径,将文件写入非预期的位置。在 WinRAR 的上下文中,这意味着本应解压到 C:\Temp 的文件可能被放置到敏感目录中,例如 Windows 启动文件夹(C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)。如果将恶意可执行文件或脚本放置在这样的位置,它可能自动运行,使攻击者能够控制受害者的系统。
攻击者可以:
.bat 文件)放入启动文件夹,以便在系统启动时执行代码。C:\Windows\System32 等目录中的关键系统文件,从而破坏系统功能或提升权限。该漏洞源于 WinRAR 未能正确验证和清理存储在 .rar 压缩包中的文件路径。在解压文件时,WinRAR 信任压缩包中的文件路径元数据,而没有充分检查 ..\ 或 ../../ 等路径遍历序列。这使得攻击者可以制作一个压缩包,其中文件的路径指向预期解压目录之外。
..\..\..\ 序列如何欺骗解压过程..\ 序列指示系统向上移动一级目录。通过链接多个 ..\ 序列(例如 ..\..\..\..\..),攻击者可以从解压目录(例如 C:\Temp\Test)导航到驱动器的根目录(C:\),然后到达任何想要的位置,例如 C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup。C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 中的文件会在用户登录时自动执行。这里的恶意 .bat 或 .exe 文件可以运行任意命令。C:\Windows\System32 中添加文件可能破坏系统完整性或实现权限提升。预期解压(安全):
- 用户将压缩包解压到:C:\Temp\Test
- 压缩包包含文件:payload.bat
- 预期结果:C:\Temp\Test\payload.bat
实际解压(被利用):
- 用户将压缩包解压到:C:\Temp\Test
- 压缩包包含路径为:../../../../Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.bat 的文件
- 实际结果:C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.bat
本节提供逐步说明,指导如何在安全、隔离的实验室环境中使用虚拟机(无网络连接)手动复现 CVE-2025-6218 漏洞。目标是创建一个 .rar 压缩包,将无害的 .bat 文件放置到 Windows 启动文件夹中,该文件将在用户登录时启动计算器(calc.exe)。
准备测试文件夹:
exploit_test 的文件夹(例如 C:\exploit_test)。创建简单有效载荷:
@echo off
start calc.exe
payload.bat,放在 C:\exploit_test 中。创建用于路径遍历的文件夹结构:
C:\exploit_test 内部,创建一个反映目标路径的文件夹结构:
C:\exploit_test\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
<用户名> 替换为虚拟机上的目标用户名(例如 absholi7ly)。payload.bat 移动到 Startup 文件夹中:
C:\exploit_test\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.bat
使用 WinRAR 制作恶意 RAR 压缩包:
C:\exploit_test。Users 文件夹(它包含 payload.bat 的完整路径)。exploit.rar(例如 C:\exploit_test\exploit.rar)。exploit.rar 来验证压缩包内容。你应该看到:
Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.bat
将压缩包传输到虚拟机:
exploit.rar 复制到虚拟机可访问的共享文件夹或 USB 驱动器。exploit.rar 移动到 C:\ 驱动器根目录:
C:\exploit.rar
在虚拟机上解压压缩包:
C:\。exploit.rar 并选择解压到当前文件夹。payload.bat 解压到:
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.bat
验证漏洞利用是否成功:
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
payload.bat。测试有效载荷执行:
用户名 身份重新登录。calc.exe)应自动启动。payload.bat,确认它打开计算器。C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
payload.bat。如果存在,则目录遍历漏洞利用成功。payload.bat 以验证其内容:
@echo off
start calc.exe
payload.bat,选择属性。C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C:\payload.bat 或子文件夹如 C:\Users\用户名\AppData\Roaming\...),则漏洞利用未按预期工作。用户名 身份重新登录。payload.bat 以验证其是否工作。对于希望简化流程的研究人员,上述手动步骤可以使用 Python 脚本实现自动化。