试想一个场景:当你在虚拟机中的Chrome浏览器点开一个链接,然后外面的真实电脑就被黑了。

哦吼 !拟机里点了个链接,物理机居然被黑了!_内核驱动

你觉得这可能吗?

虚拟机大家应该都用过吧,尤其是咱们网络安全从业者,基本上都必不可少的要与虚拟机打交道。

很多时候一些敏感的网址、文件,都不敢在真机上直接点开,而是在虚拟机中点开。这样即便遇到恶意程序,虚拟机重置一下快照就好了。

但你有没有想过,虚拟机也不是固若金汤的,在虚拟机里面点开一个链接,也可能直接让你电脑中招!

前几天,我在安全大佬tk教主的微博里就看到了这么一个案例。

哦吼 !拟机里点了个链接,物理机居然被黑了!_Windows_02

这是一家韩国安全公司发布的演示案例,他们用6个漏洞组成了一套攻击链,让你在VMware虚拟机里的Chrome浏览器中点开一个链接,然后外面真实的物理计算机就中招了。

在微博评论区,另一位安全大佬sunwear给出了这6个漏洞:

哦吼 !拟机里点了个链接,物理机居然被黑了!_Windows_03

具体这6个漏洞的攻击细节非常繁琐,我研究了一下,尝试用大白话的方式给大家捋一捋,到底是怎么样的6个漏洞,就完成在虚拟机里面攻击外面物理机的过程。

首先,在Chrome里点开一个链接,这个链接里面有特定的恶意JS代码。这第一个漏洞,就是CVE-2023-3079,它利用Chrome V8JavaScript引擎的漏洞,执行恶意的代码。

哦吼 !拟机里点了个链接,物理机居然被黑了!_Windows_04

我们知道,包括Chrome在内的现代浏览器都有沙盒机制,让网页的JS代码只在一个受限的空间里运行,权限非常有限。

所以接下来的第二步就是要提权,跳出这个沙盒。这第二步利用的漏洞编号是:CVE-2023-21674,它允许本地攻击者从 Chromium 内部的沙箱执行中提升权限。

光跳出Chromium的沙箱还不够,还是一个普通的应用程序权限。想要执行更敏感的操作,接下来还得提权。

这第三个漏洞就是用来获取系统的高级权限,漏洞编号CVE-2023-29360,它利用Windows操作系统一个内核驱动程序的漏洞,把恶意代码进程提升到系统高级权限。

哦吼 !拟机里点了个链接,物理机居然被黑了!_内核驱动_05

到现在为止,攻击者已经拿到了虚拟机里面的系统高级权限了,通俗理解就是已经把虚拟机里面那个系统给黑掉了。接下来就是想着怎么跳出虚拟机,跑到外面来。

想要完成跳出来的动作,需要一个能影响到虚拟机外面进程的漏洞。

但在这之间,需要先获取一下虚拟机的很多信息,获取到这些信息后,才能生成下一步的攻击代码。

这第四个漏洞就是用来获取虚拟机的敏感信息,漏洞编号:CVE-2023-34044

哦吼 !拟机里点了个链接,物理机居然被黑了!_网络_06

拿到这些信息以后,第五个漏洞就非常关键了,这个漏洞的编号是CVE-2023-20869,它利用的是虚拟机可以共享外面物理机的蓝牙设备,通过虚拟机和外部通信的通道,传递一些特别构造的数据出来,外部的虚拟机宿主进程处理的时候遇到经典的缓冲区溢出,导致执行恶意代码。

通过宿主机执行恶意代码,攻击者成功逃逸,来到了外面的物理机。

最后一步,第六个漏洞CVE-2023-36802,再通过一个Windows内核驱动程序的漏洞,获取外部真实物理机的至高权限。

至此,这就是你只是在虚拟机里面点了一个链接,你的真实物理机就沦陷的全部过程。

高级的APT攻击往往都是这样,通过一系列的漏洞精心构造组装,完成一次攻击。