WinRAR组件介绍
UNACE.DLL是WinRAR所使用的一个陈旧的动态链接库,用于处理ACE格式的文件,该动态链接库在2006年被编译,没有任何防护措施。
漏洞描述
WinRAR在解压处理ACE格式的文件的过程中存在一处目录穿越漏洞,该漏洞允许解压过程中向任意目录写入文件,利用该漏洞可以向开机启动目录中写入恶意文件导致机器开机时执行恶意代码。
影响范围
WinRAR < 5.70 Beta 1
漏洞复现
将poc文件如下,使用win7自带的calc.exe进行漏洞验证。
对exp.py中三个配置项进行配置,如下:
运行exp.py:
会生成test.rar文件,将rar解压到当前目录C:\Users\cyber\Downloads,则calc.bat会自动释放到C:\Users\cyber\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup中。
由于UNACEV2.dll中存在路径遍历漏洞,在解析解压路径”C:C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\hi.exe”时,遇到”../”符号会跳过遍历循环,直接返回路径” C:../AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\hi.exe”,实现路径穿越,释放恶意程序到启动项,当用户重启计算机时会自动运行该恶意程序:
开机则会自启动calc.exe!如下!!!!
复现成功!!!
修复建议
1.更新到WinRAR最新版本 5.70 Beta 1
2.无法更新版本时建议删除UNACEV2.DLL文件,在解压除ace文件外的压缩文件时不会影响使用;