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

查看所有标签

猜你喜欢:

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

计算理论导引

计算理论导引

[美]Michael Sipser / 唐常杰、陈鹏、向勇、刘齐宏 / 机械工业出版社 / 2006-7 / 36.00元

本书是计算理论领域的经典著作,被国外多所大学选用为教材。本书以注重思路、深入引导为特色,系统地介绍计算理论的三大主要内容:自动机与语言、可计算性理论和计算复杂性理论。同时,对可计算性和计算复杂性理论中的某些高级内容作了重点讲解。全书通过启发性的问题、精彩的结果和待解决问题来引导读者挑战此领域中的高层次问题。新版的一大亮点是增加了更多习题、教辅资料和部分习题解答,更加有利于教学。 全书叙述由浅......一起来看看 《计算理论导引》 这本书的介绍吧!

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

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具