vmware漏洞实例分析之一

vmware漏洞实例分析之一

ID:13482195

大小:17.57 KB

页数:6页

时间:2018-07-22

vmware漏洞实例分析之一_第1页
vmware漏洞实例分析之一_第2页
vmware漏洞实例分析之一_第3页
vmware漏洞实例分析之一_第4页
vmware漏洞实例分析之一_第5页
资源描述:

《vmware漏洞实例分析之一》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VMware漏洞实例分析之一–共享文件夹目录遍历漏洞创建时间:2008-10-31文章属性:原创文章提交:vxasm(xasm2008_at_gmail.com)VMware漏洞实例分析之一–共享文件夹目录遍历漏洞标题:VMware漏洞实例分析之一–共享文件夹目录遍历漏洞作者:vxasm(mail:xasm2008@gmail.com)时间:2008-10-5一名词定义Host机:运行VMware软件的真实主机;Guest机:装在VMware软件中的虚拟系统;后门:VMware有一套自己专有的“BackdoorI/OPo

2、rt”指令,Host和Guest之间的所有数据都是通过一个固定的IO端口,使用in和out指令来进行传递,Guest就是通过这个端口发命令让Host帮助它完成某些自身不能完成的工作。二漏洞背景理论上来说,可以认为Host机和Guest机是两台不同的电脑,只不过它们是共享同一套真实的物理硬件,这样就带来一个问题,即如何在Host和Guest之间传输数据,VMware的共享文件夹就是解决该问题的一个很实用功能,不需要设置任何网络,就可以在Host和Guest机器间互相传输文件。至于怎么设置共享文件夹,不是本文的重点,就不多说

3、了,不熟悉的建议Google一下先。在安装完VMwareTools后,会在Guest机上看到一个名为Hgfs.sys的文件,这个驱动文件实现了一个虚拟的文件系统,这个虚拟文件系统的根目录就是\.host,当你在Guest机上进入任何共享文件夹的目录时,可以看到路径都是以\.host开始的,在这个目录下的所有操作都将通过后门传递给运行在Host上的VMware主程序。举例来说:在Host机上有个目录是:E:DebugShare,把这个目录设置为Guest系统的共享目录后,VMware会记录下这个目录所对应的Host

4、路径是E:DebugShare,当在Guest机的“运行”对话框中输入:\.hostSharedFoldersShare,就会在Guest上打开E:DebugShare这个目录。这个过程是通过后门完成的,Guest把“遍历目录“命令传递给Host,Host上的VMware主程序找到该目录对应关系,通过API函数遍历E:DebugShare目录,把得到的数据通过后门返回给Guest,最后Guest上就列出了Share目录下的所有文件。三漏洞描述现在就到了本文所要说的重点了。我们知道,当Guest位于\.

5、hostSharedFoldersShare目录下时,Guest执行命令“dir”,就相当于要求Host机执行“dirE:DebugShare”,没有问题。那再让Guest执行命令“dir..”,会发生什么情况呢?如果是Host本身在执行这条命令,没有问题,自然会列出E:Debug下的所有文件;但现在要求执行命令的是Guest,Host只设置了E:DebugShare这个目录给Guest,自然是希望Guest只能看到这个目录,而没有权限看到它的父目录,因此VMware会对含有“..”的路径名作特别处理,处理

6、的结果就是Guest上执行这条命令无效。那么它的处理方法是什么呢?简单说来是这样的,VMware会对共享文件夹的路径名进行验证,确认它不含有0x2e0x2e(翻译为ASCII子字符就是“..”)字符串后,就会将其从多字节字符串转换为宽字符字符串,然后将所生成的宽字符字符串传送给Host上的系统文件API。这个转换使用WindowsAPI中的MultiByteToWideChar函数完成。该函数的原型如下:intMultiByteToWideChar(UINTCodePage,DWORDdwFlags,LPCSTRlpMu

7、ltiByteStr,intcbMultiByte,LPWSTRlpWideCharStr,intcchWideChar);这里只对dwFlags做简单解释。dwFlags:指定是否转换成预制字符或合成的宽字符,对控制字符是否使用像形文字,以及怎样处理无效字符。其中:MB_ERR_INVALID_CHARS:设置此选项,则函数遇到非法字符就失败并返回错误码ERROR_NO_UNICODE_TRANSLATION,否则丢弃非法字符。正是由于对MultiByteToWideChar函数中dwFlags参数的错误使用,导致VM

8、ware共享文件夹先后出现了两个漏洞,按时间顺序是CVE-2007-1744和CVE-2008-0923。不过严格说起来,这并非是因为VMware开发人员在使用MultiByteToWideChar函数时的编码错误,而是由于这套验证机制本身在逻辑上就存在一个漏洞。因为:验证“..”字符串是在转换输入字符串之前执行的,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。