WinRAR 代码执行漏洞复现

栏目: 编程工具 · 发布时间: 6年前

内容简介:近日Check Point团队爆出了一个关于WinRAR存在19年的漏洞,用它来可以获得受害者计算机的控制。攻击者只需利用此漏洞构造恶意的压缩文件,当受害者使用WinRAR解压该恶意文件时便会触发漏洞。该漏洞是由于 WinRAR 所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,没有任何的基础保护机制(ASLR, DEP 等)。动态链接库的作用是处理 ACE 格式文件。而WinRAR解压ACE文件时,由于没有对文件名进行充分过滤,导致其可实现目录穿越,将恶意文件写入任意目录,甚至可以写入文件至开机

0x01  漏洞描述

近日Check Point团队爆出了一个关于WinRAR存在19年的漏洞,用它来可以获得受害者计算机的控制。攻击者只需利用此漏洞构造恶意的压缩文件,当受害者使用WinRAR解压该恶意文件时便会触发漏洞。

该漏洞是由于 WinRAR 所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,没有任何的基础保护机制(ASLR, DEP 等)。动态链接库的作用是处理 ACE 格式文件。而WinRAR解压ACE文件时,由于没有对文件名进行充分过滤,导致其可实现目录穿越,将恶意文件写入任意目录,甚至可以写入文件至开机启动项,导致代码执行。

0x0 2   漏洞 影响

影响版本:

WinRAR < 5.70 Beta 1

Bandizip    < = 6.2.0.0

好压(2345压缩)    < = 5.9.8.10907

360压缩    < = 4.0.0.1170

0x0 3   漏洞复现

该漏洞的实现过程:首先新建一个任意文件,然后利用 WinACE 进行压缩,修改 filename 来实现目录穿越漏洞,可以将文件解压到任意目录中。

主要所需工具 WinACE 010Editor

下载 WinACE 并安装,安装完成后新建一个文本文件,名字任意。

WinRAR 代码执行漏洞复现

然后利用 WinACE 进行压缩。

WinRAR 代码执行漏洞复现

然后我们下载 acefile.py 脚本。

下载地址为:

https://github.com/droe/acefile/blob/master/acefile.py

使用命令 pyt hon acefile.py --headers liehu.ace 来读取该文件头信息。

WinRAR 代码执行漏洞复现

根据漏洞的描述,问题是出现在 filename 中的。那主要就看下面的 header 吧。

010Editor 打开该文件。

WinRAR 代码执行漏洞复现

需要看选中的部分。对比 acefile 解析的结果,并明白各个段对应的内容。

WinRAR 代码执行漏洞复现

如果要修改 filename ,则需要修改上面标注这几处。第一处为 0x4e9a( hdr crc ), 第二处为 0x0044( hdr size ) ,第三处为 0x0025(filename 的长度),以及最后一处为 filenam e

修改顺序是由后到前。

这里修改 filename d:\d:\liehu.txt

长度为 15 ,对应的 hex 0x000f

WinRAR 代码执行漏洞复现

然后修改 hdr_size ,长度为 46 ,对应的 hex 0x002E

WinRAR 代码执行漏洞复现

接下来就是修改 hdr_crc 了,这里有一个取巧的方法。

我们再次运行命令 python acefile.py --headers liehu.ace

程序中断并提示 CorruptedArchiveError: header CRC failed

定位到错误的位置

WinRAR 代码执行漏洞复现

这里 ace_crc16(buf) 的值就是 ace 文件 0x4e9a 对应的值,直接打印出该值并将该位置的值修改即可。

WinRAR 代码执行漏洞复现

对应的值为 63232 ,转换为 hex 0xF700

WinRAR 代码执行漏洞复现

最后文件内容为

WinRAR 代码执行漏洞复现

再次查看,可以正常解析,并看到 filename 已经修改成功

WinRAR 代码执行漏洞复现

右键解压该文件,则会在 D 盘生成一个 liehu.txt 文件。

WinRAR 代码执行漏洞复现

测试文件:

https://fuping.site/files/liehu.ace

解压后会在D盘生成一个liehu.txt文件

0x0 4   修复建议

有两种方式

1. 升级到最新版本 WinRAR 目前版本是 5.70 Beta 1

2. 删除 UNACEV2.dll 文件

WinRAR 代码执行漏洞复现

此时再次解压 恶意文件会提示如下错误:

WinRAR 代码执行漏洞复现

0x0 5 参考

https://research.checkpoint.com/extracting-code-execution-from-winrar/


以上所述就是小编给大家介绍的《WinRAR 代码执行漏洞复现》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pro Django

Pro Django

Marty Alchin / Apress / 2008-11-24 / USD 49.99

Django is the leading Python web application development framework. Learn how to leverage the Django web framework to its full potential in this advanced tutorial and reference. Endorsed by Django, Pr......一起来看看 《Pro Django》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具