WinRAR穿透漏洞(CVE-2018-20250)

WinRAR 代码执行相关的CVE 编号如下:

> CVE-2018-20250,CVE-2018-20251, CVE-2018-20252, CVE-2018-20253

这里我们复现最开始的WinRAR目录穿越漏洞(CVE-2018-20250)。

## 漏洞详情

### 原理:

WinRAR目录穿越漏洞(CVE-2018-20250):

  该漏洞是由于WinRAR 所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,该动态链接库在2006 年被编译,没有任何的基础保护机制(ASLR,DEP 等)。该动态链接库的作用是处理ACE 格式文件。而在解压处理过程中存在一处目录穿越漏洞,允许解压过程写入文件至开机启动项,导致代码执行。

### 影响版本:

> WinRAR < 5.70 Beta 1 >
> Bandizip < = 6.2.0.0 >
> 好压(2345压缩) < = 5.9.8.10907 >
> 360压缩 < = 4.0.0.1170 ### 漏洞利用条件:   攻击不能跨盘符,即受害者进行解压文件触发漏洞时,必须在系统盘,且在不知道计算机主机名的情况下,只能在主浏览器的默认下载路径下(C:\Users\Administrator\Downloads)或者桌面进行解压,或者多猜几个启动项路径。产生漏洞的DLL文件:UNACEV2.DLL,不能识别相对路径,文件名部分必须为绝对路径。   以下是几种机器的开机启动项路径,可以看到在个人PC上受用户名影响,无法猜测到准确的路径,而服务器上一般不会修改用户名,所以这个漏洞在服务器上利用度比较高。 Win2003开机启动项路径:C:\Documents and Settings\Administrator\「开始」菜单\程序\启动 Win2008开机启动项路径:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup Win2012开机启动项路径:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup Win7  开机启动项路径:C:\Users\用户\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup Win10 开机启动项路径:C:\Users\用户\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup  本次试验使用的是Win2008, ## 漏洞复现 ### 环境工具: 服务器:Win2008 R2 WinRAR 5.60简体中文版:https://www.rarlab.com/rar/winrar-x64-560sc.exe Python-3.7.2-amd64.exe:https://www.python.org/ftp/python/3.7.2/python-3.7.2-amd64.exe 010Editor:https://download.sweetscape.com/010EditorWin64Installer901.exe Wace和模板文件:https://github.com/360-A-Team/CVE-2018-20250 EXP:https://github.com/WyAtu/CVE-2018-20250 ### 漏洞复现: 这里我们写一个bat,进行弹窗演示: ![img](/static/baige/03-产品漏洞/winrar/WinRAR穿透漏洞(CVE-2018-20250)/1266243-20190308101249378-2013483925.png) 然后打开WinAce,选中我们创建的文件,右键,点击Add to... ![img](/static/baige/03-产品漏洞/winrar/WinRAR穿透漏洞(CVE-2018-20250)/1266243-20190308124414993-1147235497.png)   利用WinACE进行压缩,这里选择store full path。 ![img](/static/baige/03-产品漏洞/winrar/WinRAR穿透漏洞(CVE-2018-20250)/1266243-20190308144027681-585501340.png)   生成之后我们利用脚本检查一下我们生成的文件1.ace的header信息: ![img](/static/baige/03-产品漏洞/winrar/WinRAR穿透漏洞(CVE-2018-20250)/1266243-20190308133050691-1223667359.png) 这里几个是我们需要修改的参数。 在010Edit工具中打开刚才生成的1.ace文件,将文件路径替换为启动项路径如下,然后可以看到新的完整的文件路径长度为93,转换为16进制后为:5D。 ![img](/static/baige/03-产品漏洞/winrar/WinRAR穿透漏洞(CVE-2018-20250)/1266243-20190310222141566-376777695.png) 修改完这两个地方之后点击保存,接着还需要修改hdr_size。 ![img](/static/baige/03-产品漏洞/winrar/WinRAR穿透漏洞(CVE-2018-20250)/1266243-20190310222410019-46466160.png) ![img](/static/baige/03-产品漏洞/winrar/WinRAR穿透漏洞(CVE-2018-20250)/1266243-20190310222513809-688780836.png)   这三个地方修改完成之后点击保存。   最后利用acefile.py重新查看文件header信息。修改acefile.py,在3061行处添加以下语句,输出文件hdr_crc。 ![img](/static/baige/03-产品漏洞/winrar/WinRAR穿透漏洞(CVE-2018-20250)/1266243-20190308150606052-328146804.png) ``` print("[+] right_hdr_crc : {} | struct {} ".format(hex(ace_crc16(buf)),struct.pack('

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容