WinRAR 是一款功能强大的压缩包管理器,它是档案工具RAR在Windows环境下的图形界面。该软件可用于备份数据,缩减电子邮件附件的大小,解压缩从 Internet 上下载的RAR、ZIP及其它类型文件,并且可以新建 RAR 及 ZIP 格式等的压缩类文件。
1、漏洞描述
2019年 2 月 20 日国外安全研究员Nadav Grossman发布了Winrar一个严重的Path Traversal漏洞,当用户解压压缩包时可以导致命令执行,目前官方已经推出beta版修复该漏洞。
影响版本:Winrar <= 5.61的版本均受影响
2、漏洞危害
1. 通过这个漏洞黑客可以将恶意程序放入用户启动项,当目标电脑重新启动时获取目标主机的权限。
2. 在拥有system权限下可以放入
c:/windows/system32/wbem/mof/nullevt.mof,直接在获取目标主机的权限。
3. 可以投放恶意dll文件进行dll劫持获取到目标主机的权限,或者覆盖用户主机上的文件等方式获取目标主机的权限。
3、漏洞细节
https://research.checkpoint.com/extracting-code-execution-from-winrar/
漏洞主要是由Winrar用来解压ACE压缩包采用的动态链接库unacev2.dll这个dll引起的。unacev2.dll中处理filename时只校验了CRC,黑客可以通过更改压缩包的CRC校验码来修改解压时候的filename来触发这个Path Traversal漏洞。但是Winrar本身检测了filename,有一些限制并且普通用户解压RAR文件时候不能将我们恶意的Payload解压到需要System权限的文件夹。
当用户将文件下载到默认的C:\Users\Administrator\Downloads目录下时,我们通过构造
C:\C:C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
经过Winrar的CleanPath函数处理会变成
C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
其中C:会被转换成当前路径,如果用Winrar打开那么当前路径就是C:\Program Files\WinRAR,要是在文件夹中右键解压到xxx\那么当前路径就是压缩包所在的路径。
当用户在文件夹中直接右键解压到xx那么我们恶意的payload解压地址就会变成
C:\Users\Administrator\Downloads../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
就是当前用户的启动项。这样一个利用完成了从一个Path Traversal到任意命令执行的过程。
4、修复建议
1. 将Winrar升级成5.70Beta 1;
2. 使用其他非unacev2.dll动态链接库来处理ace压缩包的压缩软件。
量检测类设备策略建议:通过的流量包中匹配Hex 000000902A2A4143452A2A,这个Hex是Ace压缩包的标志,然后匹配C:\C:C:..字符串可以检测到恶意的Ace压缩包。
来源:安恒应急响应中心