WinRAR 代码执行漏洞复现

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

内容简介:近日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 代码执行漏洞复现》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

海量运维、运营规划之道

海量运维、运营规划之道

唐文 / 电子工业出版社 / 2014-1-1 / 59.00

《海量运维、运营规划之道》作者具有腾讯、百度等中国一线互联网公司多年从业经历,书中依托工作实践,以互联网海量产品质量、效率、成本为核心,从规划、速度、监控、告警、安全、管理、流程、预案、考核、设备、带宽等方面,结合大量案例与读者分享了作者对互联网海量运维、运营规划的体会。 《海量运维、运营规划之道》全面介绍大型互联网公司运维工作所涉及的各个方面,是每个互联网运维工程师、架构师、管理人员不可或......一起来看看 《海量运维、运营规划之道》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换