虚拟机会和外面的真实世界通信,只要抓住通信过程中的漏洞,把代码掺杂在通信数据中,让外面世界负责通信的一端执行指令代码,就能传输过去,逃逸到外面的真实世界去!

漏洞编码

CVE-2016-7461

CVE-2017-4901

CVE-2019-14378

漏洞背景

VMware,Inc. (Virtual Machine ware)是一个“虚拟PC”软件公司,提供服务器、桌面虚拟化的解决方案。其虚拟化平台的产品包括播放器;它能使个人用台式电脑运行虚拟机器,融合器,它是用户基于英特尔结构苹果机的桌面虚拟化产品,工作站的软件开发商和企业的资讯科技专才,能使虚拟分区的服务器,ESX服务器(一种能直接在硬件上运行的企业级的虚拟平台),虚拟的SMP让一个虚拟机同时使用四个物理处理器,和VMFS使多个ESX服务器分享块存储器。但是也伴随着虚拟机的发展出现了一些高危漏洞,例如虚拟机逃逸导致命令执行。

“云时代”的虚拟机安全被提升到至关重要的位置。虚拟机逃逸指的是突破虚拟机的限制,实现与宿主机操作系统交互的一个过程,攻击者可以通过虚拟机逃逸感染宿主机或者在宿主机上运行恶意软件。早在2016年举办的PwnFest黑客大会上(由Power of Community组织,在韩国首尔举办),研究人员唐青昊成功实现了VMware的虚拟机逃逸,这也是VMware首次在公开场合被攻陷,震惊世人。然后再2018年,长亭科技安全研究员张焱宇利用VMware虚拟化平台的3个漏洞,从一台Linux虚拟机内部进行攻击,仅用9分钟便成功获取ESXi宿主机系统的最高权限并进行任意控制,展示了私有云系统所存在的安全问题,成功挑战世界级难度虚拟机逃逸。

漏洞描述

VMware Workstation和Fusion中的拖放(DnD)功能含有越界内存访问漏洞。 这会允许访客在运行Workstation或Fusion的操作系统上执行代码。VMware实现了多种虚拟机(下文称为guest)与宿主机(下文称文host)之间的通信方式。其中一种方式是通过一个叫做Backdoor的接口,guest只需在用户态就可以通过该接口发送命令。VMware Tools也部分使用了这种接口来和host通信。

针对Vmware的虚拟机逃逸的exploit源码GitHub早已公布(https://github.com/unamer/vmware_escape)。实现了从虚拟机到宿主机器的代码执行,弹出了熟悉的计算器。该开源代码,只需要将执行计算器部分的shellcode替换成其他具有恶意攻击的代码,就可以造成很大的危害。借鉴各位大神的分析,本文重点分析复现虚拟机逃逸典型漏洞CVE-2017-4901,当然还有其他几个CVE漏洞,能力有限,就不一一复现。

影响版本

影响版本如下:

Vmware Workstation 12.5.5以前的版本

转:https://wiki.freebuf.com/detail?tribal_id=31&camp_id=17&entry_id=18594