查看文章 |
关于虚拟机从Host OS注入到Guest OS的猜想
2009-07-01 16:03
这些天注意到blackhat 2009一个关于虚拟机agent端注入在Guest OS里面执行代码的议题,演讲者是 symantec的matt conover,大体思想是讲从host os注入到代码到VM的agent里面,然后在guest os里面执行 代码的这么一个过程,现在我也不知道他是怎么实现的,但是我把我自已的猜想和大家分享一下,看看 是否行得通,去年在安全软件峰会上听过孙冰讲的虚拟机技术,他算得上是虚拟机大拿了,所以关于这个 黑帽子上面的这个议题想必也有研究了,废话不说了,切入正题。 我如下讲的VM是指VMware这个软件,VM软件其实没有完全虚拟化所用的CPU指令,因为它要考虑到 虚拟机里面操作系统的运行速度和效率,也就是说,Guest OS有时是可以直接访问硬件系统的,而不通过 Host OS进行指令虚拟化,这样就大大提高了Guest OS运行的速度,当然我也并不知道到底哪些CPU指令, 或者中断调用没有进行虚拟化,暂且我们认为存在这样的CPU指令或者中断调用或者系统调用之类的东西, 所以当虚拟机里面的Guest OS直接执行这些指令或者中断调用或者系统调用之类的东西时,我们可以截获 到这种动作,怎么讲呢? 我们可以通过在Host OS里面编写驱动截获到这些指令或者中断,或者系统调用 之类的动作,hook这些指令,在我们的hook例程里面注入shellcode, 这样可以让Guest OS执行你的 shellcode了,虽然这个注入shellcode注入执行说起来简单,但做起来的时候,还得考虑很多问题,当然 这已经不在这里的讨论范围了, 我简单的画了一个草图关于虚拟机Host OS注入到Guest OS的过程。 简单描述就是截持Guest OS直接访问硬件的行为,hook注入shellcode。不知道大家是怎么想的,可以 邮件交流讨论下:) ![]() |
最近读者:
