【漏洞复现】WinRAR目录穿越漏洞(CVE-2018-20250)

好不容易下了个 WinRAR 5.4 ,不容易啊。。

 

一、CVE-2018-20250

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

 

二、漏洞产生的原理

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

 

三、漏洞危害

1. 通过这个漏洞黑客可以将恶意程序(挖矿、勒索、间谍、anything)放入用户启动项,当目标电脑重新启动时获取目标主机的权限。

2. 在拥有system权限下可以放入c:/windows/system32/wbem/mof/nullevt.mof,直接在获取目标主机的权限。

3. 可以投放恶意dll文件进行dll劫持获取到目标主机的权限,或者覆盖用户主机上的文件等方式获取目标主机的权限

 

四、影响范围

① WinRAR < 5.70 Beta 1

② Bandizip < = 6.2.0.0

③ 好压(2345压缩) < = 5.9.8.10907

④ 360压缩 < = 4.0.0.1170

 

五、漏洞利用原理

 漏洞主要是由 WinRAR 用来解压ACE压缩包采用的动态链接库 unacev2.dll 这个dll引起的。unacev2.dll 中处理 filename 时只校验了 CRC,黑客可以通过更改压缩包的 CRC 校验码来修改解压时候的 filename,来触发这个Path Traversal漏洞。但是 WinRAR 本身检测了 filename,有一些限制并且普通用户解压 RAR 文件时候,并不能将我们恶意的 Payload 解压到需要 System 权限的文件夹。

当用户将文件下载到默认的 C:\Users\Administrator\Downloads 目录下时,我们通过构造C:\C:C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe 

经过 WinRAR 的 CleanPath 函数处理之后,会变成C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe

其中 C: 会被转换成当前路径,如果用 WinRAR 打开那么当前路径就是 C:\Program Files\WinRAR,要是在文件夹中右键解压到  xxx\ 那么当前路径就是压缩包所在的路径。

当用户在文件夹中直接右键解压到 xx 那么我们恶意的 payload 解压地址就会变成C:\Users\Administrator\Downloads../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe

就是当前用户的启动项。这样一个利用完成了从一个Path Traversal到任意命令执行的过程。

 

六、漏洞复现

1.  下载 payload 和低版本 WinRAR,这里用的 WinRAR 5.4 版本,自行查MD5

https://pan.baidu.com/s/1VYH5uBZ-_pdbA4ZwXnsBng

2. python3 执行如下脚本

3. 生成 test.rar 

4. 只要安装了目标版本的解压缩软件,那么在解压该压缩包的时候就会触发漏洞,在用户计算机自启动目录生成 hi.exe ,当然可以换成其他的恶意程序,达到开启自启动的目的,详见危害。

5. 如果解压缩软件并非目标版本,则提示解压失败或者不是一个正常的压缩包。

 

参考:

https://blog.csdn.net/qq_36119192/article/details/89636414

https://www.cnblogs.com/backlion/p/10417985.html

 

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值