Winrar目录穿越漏洞预警
1. 漏洞描述
1. 漏洞描述
WinRAR 是一款功能强大的压缩包管理器,它是档案工具RAR在Windows环境下的图形界面。该软件可用于备份数据,缩减电子邮件附件的大小,解压缩从 Internet 上下载的RAR、ZIP及其它类型文件,并且可以新建 RAR 及 ZIP 格式等的压缩类文件。
2019年 2 月 20 日国外安全研究员Nadav Grossman发布了Winrar一个严重的Path Traversal漏洞,当用户解压压缩包时可以导致命令执行,目前官方已经推出beta版修复该漏洞。
2. 影响范围
2. 影响范围
其中受影响版本为:
Winrar <= 5.61
3. 漏洞危害
3. 漏洞危害
通过这个漏洞黑客可以将恶意程序放入用户启动项,当目标电脑重新启动时获取目标主机的权限。
在拥有system权限下可以放入
c:/windows/system32/wbem/mof/nullevt.mof,直接在获取目标主机的权限。
可以投放恶意dll文件进行dll劫持获取到目标主机的权限,或者覆盖用户主机上的文件等方式获取目标主机的权限。
4. 漏洞细节
4. 漏洞细节
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到任意命令执行的过程。
5. 修复建议
5. 修复建议
1. 将Winrar升级成5.70Beta 1;
2. 使用其他不采用unacev2.dll这个动态链接库来处理ace压缩包的压缩软件。
6. 产品策略建议
6. 产品策略建议
网络流量检测类设备策略建议:
1通过的流量包中匹配Hex 000000902A2A4143452A2A,这个Hex是Ace压缩包的标志,然后匹配C:\C:C:..字符串可以检测到恶意的Ace压缩包。
7. POC
7. POC
使用Winace生成正常文件
通过Winhex等工具修改filename
之后通过acefile.py获得修改后的crc
➜ /tmp/acefilegit:(master) ✗ >pythonacefile.py --headers dbapp.ace
0x1e74
0x1e74
0x69d4
0xab0c
将D469修改成0CAB即可
将dbapp.ace修改成dbapp.rar通过让目标下载后右键直接解压压缩包成功将dbapp.exe放在启动项,内容就是Hackedby dbapp
利用过程见poc.gif
Poc见poc.rar
将Poc放在C:\Users\{username}\Downloads\下右键直接解压压缩包
然后在
C:\Users\{username}\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup下可以见到dbapp.exe
本文转自 安恒应急响应中心
推荐阅读:
▼点击“阅读原文” 查看更多精彩内容