虚拟磁盘工具vmware-mount及其引发的安全担忧

2011-09-29 22:49 by hackerzhou

最近在做一些提高团队开发/测试效率的工具,了解到了一些vmware有意思的小工具,本文介绍的就是vmware-mount。vmware-mount是VMware Virtual Disk Development Kit里的一个工具,VMware workstation和vSphere都采用vmdk文件来表示磁盘,而vmware-mount可以用来把远程或本地的vmdk mount成为一个本地磁盘或者挂载到某个挂载点。

vmware-mount的安装及运行(仅示范VDDK Linux版的挂载remote vmdk功能,更多详细用法请参考官方文档):

#Install VDDK
./vmware-vix-disklib-distrib/vmware-install.pl
#Use ESX host directly
vmware-mount -h <ESX_HOST_IP> -u <ESX_USERNAME> -F <FILE_CONTAINS_ESX_PASSWORD> "<VMDK PATH IN DATASTORE>" <MOUNT_POINT>
#or you can use VC
vmware-mount -v "<InventoryPath_of_VM>" -h <VC_IP> -u <VC_USERNAME> -F <FILE_CONTAINS_VC_PASSWORD> "<VMDK PATH IN DATASTORE>" <MOUNT_POINT>

从以上命令可以看出:一旦我们得到了VC或者是ESX的权限,我们就可以直接读写虚拟机的磁盘(如果磁盘未加密),这样就很容易造成信息的泄漏。虽然ESX用户有着控制整个服务器的权限,但我觉得这种权限应该仅局限于创建/删除虚拟机,而没有权限不经过该虚拟机用户的授权就可以读取甚至修改虚拟机里的文件应该是不被许可的。简单的来说就是:就算管理员可以删除我的虚拟机,也不能未经授权就读取我的文件。

由于目前大多数主流的Linux系统都不使用明文来保存系统密码了,但是依旧可以采用替换/etc/shadow文件的方式来用已知的密码来替换未知的密码。在/etc/shadow文件中记录的用户密码信息有着特定的格式,诸如“hackerzhou:[一堆密文及加密方法]:15240:0:99999:7:::”。所以,执行如下命令可以把root密码设置为12345。

sed -i 's#^\(root:\)[^:]*#\1$6$sHSPz6Pw$xIP/V.HKQdhfaagzoUxSkbjOYFET8pQDE754ZBDWAmu8LM4LYvBXdRqAOAi.x1isBd5.xZUw9S.rpHWAREVC/1#' "${MOUNT_POINT}/etc/shadow"
#MOUNT_POINT is the mounting point of VMDK

以上就是我对于vmware-mount工具可能造成的安全问题的一些思考,希望大家在实施的时候要注意保护ESX 和VC的用户名/密码,并对用户权限加以限制,毕竟一旦用户使用vSphere Client登录了VC/ESX,可以通过手工添加磁盘的方法来把别的虚拟机的VMDK mount到本机上。

本文基于 署名 2.5 中国大陆 许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 hackerzhou 并包含 原文链接
发表评论

本文有 6 条评论

  1. leon
    2014-09-21 19:24

    请问,你网站用的是什么主机

  2. leon
    2014-09-21 19:21

    请问,你用的是什么主机

  3. random
    2013-08-28 07:38

    EFS证书在密码重置后会丢失

    • hackerzhou
      2013-10-07 10:03

      真的是这样?更改密码就会失效?那以前的数据都读不出来了?这样也太不安全了吧?我记得是绑定SID的啊

      • annoy
        2014-01-15 11:54

        会失效的,EFS证书是用用户密码加密的,其安全性等同于用户密码的安全性

        • hackerzhou
          2014-01-18 21:26

          嗯,后来了解到EFS在重置密码后是不可访问的。

发表评论