文档信息
编号 | QiAnXinTI-SV-2019-0009 |
关键字 | CVE-2018-20250 WinRAR ACE |
发布日期 | 2019年2月21日 |
更新日期 | 2019年2月21日 |
TLP | WHITE |
分析团队 | 奇安信威胁情报中心 |
通告背景
WinRAR是一款流行的解压缩工具,据其官网上发布的数据,全球有超过5亿的用户在使用WinRAR。
2019年2月20日,安全厂商checkpoint发布了名为<<Extracting a 19 Year Old Code Execution from WinRAR>>的文章(见参考[1]),文章披露了一个存在于WinRAR中用于ace文件解析的DLL模块中的绝对路径穿越漏洞,可导致远程代码执行。
奇安信威胁情报中心经过测试确认该攻击方法可用,由于WinRAR工具的安装量较大,且大多数用户疏于对该工具的更新,奇安信威胁情报中心特此通告提醒用户和企业尽快采取必要防御应对措施以保障终端的安全。
漏洞概要
漏洞名称 | WinRAR绝对路径穿越漏洞 |
威胁类型 | 远程代码执行 |
威胁等级 | 高 |
漏洞ID | CVE-2018-20250 |
漏洞利用条件 | 将压缩包解压到当前文件夹便会触发漏洞(对压缩包所在目录有要求) |
漏洞利用场景 | 通过鱼叉邮件或者社交渠道进行攻击 |
受影响系统及应用版本 | WinRAR 5.70 bate1之前的版本,以及使用了UNACEV2.dll模块的压缩软件 |
不受影响影响系统及应用版本 | WinRAR 5.70 bate1 |
漏洞描述
WinRAR是一款流行的解压缩工具,2019年2月20日,安全厂商checkpoint发布了名为<<Extracting a 19 Year Old Code Execution from WinRAR>>的文章,文章披露了一个存在于WinRAR中用于ace文件解析的DLL中的绝对路径穿越漏洞,可导致远程代码执行。
漏洞原理
该漏洞是由于与ace处理相关的DLL在对解压目标的相对路径(filename)进行解析时,由于CleanPath函数过滤路径不严格导致:
如针对以下路径:
C:\C:C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\some_file.exe
调用这个函数后CleanPath(“C:\C:C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\some_file.exe”)
经过Step1:
C:C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\some_file.exe
经过Step2:
C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\some_file.exe
经过Step3:
此时因为C:之后使用的是“../”不是“..\”,所以不会进入while循环,直接返回。
最后返回的结果为:
C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\some_file.exe
这个路径可以直接实现路径穿越:
利用还原
按照checkpoint文章所述,奇安信威胁情报中心构造了相关验证代码,将ace文件中的filename修改之后,解压压缩包到当前目录,此时压缩包中相关内容直接被解压到Windows的启动目录,当重启主机后,模拟恶意软件的mal.exe将自启动。
该漏洞通常用于将恶意代码直接投递到启动目录,如下所示:
C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
利用条件
当将恶意软件拷贝到启动目录时,存在一定限制
C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
目前来看只能使用一次“../“(主要用于忽略用户名)
在以上要求下,该漏洞依然适用于大多数攻击场景:
如附件拖拽到桌面解压
C:\Users\xxx\Desktop
主流浏览器的下载目录(chrome,firefox,ie)解压
C:\Users\xxxx\Downloads
以下是主要列举的一些易受攻击的目录列表(红色目录,uac开启的情况下,WinRAR将无法拷贝):
一些主流软件下载目录的利用情况如下:
修复方法
- 目前软件厂商已经发布了最新的WinRAR版本,奇安信威胁情报中心建议用户及时更新升级WinRAR(5.70 beta 1)到最新版本https://www.rarlab.com/
- 如暂时无法安装补丁,可以直接删除漏洞的DLL(UNACEV2.DLL),这样不影响一般的使用,但是遇到ace的文件会报错。
参考资料
[1].https://research.checkpoint.com/extracting-code-execution-from-winrar/