作者:(加)贝格斯(Beggs, R. W.)
出版社:机械工业出版社
格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT
Kali Linux高级渗透测试试读:
前言
本书致力于介绍如何使用Kali Linux对网络执行渗透测试。渗透测试可以模拟内部或外部的恶意攻击者对网络或系统进行攻击。不同于漏洞评估,渗透测试包括漏洞利用阶段。因此,漏洞是存在的,而且如果不采取相应的措施将会有很大风险。在这本书中,“渗透测试人员”“攻击者”和“黑客”使用完全相同的技术及工具评估网络和数据系统的安全性。他们之间唯一的区别是他们的目标——数据网络的安全或数据的外泄。
大多数的测试人员和攻击者遵循一个非正式的、开源的或专门定义的测试方法,指导测试过程。下面的一些方法有其固有的优势:
·测试过程的部分方法可以自动生成(例如,测试人员可以经常使用ping扫描发现潜在的目标;因此,这可以作为脚本利用),鼓励测试人员把重点放在发现和利用漏洞的技术创新上。
·结果是可重复的,允许反复比较,交叉验证测试的结果,确定随着时间的推移,目标的安全性是否有所改善。
·定义的方法在时间和人员的要求方面是可见的,鼓励成本控制并使成本最小化。
·测试方法已经预先获得客户批准,在对网络或数据造成任何损害时测试人员免责。
正式的方法包括以下著名的例子:
·Kevin Orrey的渗透测试框架:这种方法为测试人员提供一个渗透测试的序列步骤,以及工具的超链接和相关命令。更多信息请参见www.vulnerabilityassessment.co.uk。
·信息系统安全评估框架(Information Systems Security Assessment Framework,ISSAF):这个综合性指南的目标是单一的网络测试,更多信息请参见www.oissg.org。
·NIST SP 800-115,信息安全测试和评估技术手册:完成于2008年,这种四步走的方法已经有些过时。然而,它确实为渗透测试提供了一个很好的基本步骤总结。更多信息请参见http://csrc.nist.gov/publications/nistpubs/800-115/SP800-115.pdf。
·开源安全测试方法手册(Open Source Security Testing Methodology Manual,OSSTMM):这个最老的方法之一,并且最新版本试图量化确定的风险。更多详细内容参见www.osstmm.org。
·开放Web应用安全工程(Open Web Application Security Project,OWASP):该工程主要关注了基于Web应用的10个最常见的漏洞。更多信息请关注www.owasp.org。
·渗透测试执行标准(Penetration Testing Execution Standard,PTES):积极维护,这种方法能完整并且精确地反映恶意者的行为。更多信息请关注www.pentest-standard.org。
·攻击(Web)测试框架(Offensive(Web)Testing Framework,OWTF):在2012年提出,结合了OWASP方法和更完整、严格的PTES方法,这是一个非常有前途的研究方向。更多详细信息请关注https://github.com/7a/owtf。
但是,使用一个结构化的渗透测试方法可能会导致测试过程陷入泥潭:
·模型中很少考虑为什么要进行渗透测试,或哪些数据是业务的关键数据,并且需要保护。缺少这至关重要的一步,渗透测试无法抓住重点。
·很多渗透测试人员不愿遵循现成的模型方法,他们担心模型会阻碍他们进行网络渗透的创造力。
·渗透测试不能反映恶意攻击者的实际活动。通常,客户希望看到你能不能在一个特定的系统中获得管理上的访问权(“你可以打开这个盒子吗?”)。然而,攻击者可能会重点关注复制关键数据的方式——不需要底层接入,或引起拒绝服务。
为了解决形式化测试方法所固有的局限性,它们必须被整合在一个框架中,从一个攻击者的角度看这个网络框架,这就是“杀链”(kill chain)。渗透测试的“杀链”方案
在2009年,Lockheed Martin CERT的Mike Cloppert介绍了这个概念,现在被称为“攻击者杀链”(attacker kill chain)。当攻击者攻击网络时,“杀链”包含攻击者采取的步骤。“杀链”不总是以一个线性流呈现,因为一些步骤可能会并行出现。多发攻击可以对同一个目标瞬时进行多种攻击,并且在同一时间攻击步骤可能发生重叠。
在本书中,我们已经修改了Cloppert的杀链,使之能更准确地反映攻击者如何在测试网络和数据服务时应用这些步骤。下图显示了一个攻击者的典型杀链:图 典型的杀链
一个攻击者的典型杀链可以描述为:
·侦察阶段。有一句格言:“侦察永远不浪费时间”。大多数军事组织承认,在进攻敌人之前,最好尽可能地去了解敌人的一切信息。同样,攻击者在攻击之前也会对目标展开广泛的侦察。事实上,据估计,针对渗透测试或攻击,至少有70%的“工作量”是进行侦察!一般来说,可采用两种类型的侦察:
·被动侦察。这种方式并不直接与目标以敌对方式进行交互。例如,攻击者将会审查公共的可用网站,评估在线媒体(尤其是社交媒体网站),并试图确定目标的“攻击表面”。
一个详细的任务将会产生一份过去和现在的雇员名称的列表。这些名称将成为尝试蛮力攻击或密码猜测的基础。同样它们也被用到社会工程的攻击中。
这种类型的侦察很难从普通用户的行为中区分出来。
·主动侦察。这种方式可以被目标检测到,但是很难从常规的背景中区分出大多数在线组织的表现。
主动侦察期间的活动包括物理访问目标前端、端口扫描和远程漏洞扫描。
·交付阶段。交付是选择和开发武器,武器用于完成攻击中的任务。精确的武器选择取决于攻击者的意图以及实施路线(例如,借助网络、通过无线,或通过基于Web的服务)。交付阶段的影响将在本书第二部分进行研究。
·利用或攻击阶段。一个特定的漏洞被成功利用的时刻,此时攻击者实现他们的目标。攻击可能已经在一个特定的情景下发生(例如:通过缓冲区溢出利用一个已知操作系统的安全隐患),或者攻击可能在多个情景下发生(例如:一个攻击者物理访问公司住所,偷取他们的电话簿,用公司员工的名字来创建门户登录蛮力攻击列表。此外,电子邮件被发送到所有员工以引诱他们单击一个嵌入式链接,下载制作的PDF文件,这些文件会危及员工的计算机)。当恶意攻击者针对特定的企业时,多情景攻击是常态。
·后期利用阶段:对目标的行动。这经常被称为“渗漏阶段”(exfiltration phase),这是错误的,因为通常理解的攻击,仅仅以窃取敏感信息作为唯一的目的(如登录信息、个人信息和财务信息);但是,通常情况下,攻击者有不同的攻击目标。例如,这一阶段必须专注于攻击者的许多可能的行动。
最常见的利用活动是攻击者试图提升他们的访问权限到最高级(纵向升级),并且破解尽可能多的账号(横向升级)。
·后期利用:持久性。如果攻击一个网络或者系统是有价值的,那么这个价值很可能在持续攻击下增长。这就需要攻击者持续与被攻破的系统之间保持通信。从防护者的角度来看,这是攻击杀链中最容易检测到的一部分。
当攻击者试图攻击网络或特定的数据系统时,攻击杀链是攻击者行为的一种基本模型。作为一种元模型,它可以吸收任何私人的或商业的渗透测试方法。但是,也不同于这些方法,它使攻击者在一个战略高度上关注如何接近网络。这种专注于攻击者的活动将引导本书的布局和内容。本书涵盖的内容
本书分为两个部分。第一部分会根据杀链的步骤,详细分析每个阶段。第二部分会专注于交付阶段和一些有用的方法,来明确攻击是怎么发生的,以及如何用这种方法来保护网络。
第1章介绍了Kali Linux的基础知识和它支持渗透测试的最优配置。
第2章提供了一个关于怎么样利用公共可用资源搜集目标信息的背景,以及简化侦察和信息管理的工具。
第3章介绍用来获得目标信息的隐形方法,尤其是识别漏洞的信息,这种信息可以充分利用。
第4章证明了可以用来找到并执行渗透的方法,允许黑客攻击一个系统。
第5章描述攻击者怎样逐步提高自己的权限,实现他们攻击系统的目标,包括盗窃数据、改变数据、发动更多的攻击,或创建一个拒绝服务。
第6章介绍了怎样设置一个受损系统,以便攻击者可以任意返回和继续利用漏洞进行攻击。
第7章介绍了为什么可以在物理上访问一个系统,或者与系统管理者交互,该章提供了一个最佳的利用方法。
第8章阐明了怎样利用普通无线链接来访问数据网络与隔离系统。
第9章提供一个关于获得安全的、最复杂的交付阶段的简要综述:暴露在公共因特网上的基于Web的应用。
第10章提供一个进入系统的重要方法,因为越来越多的机构采用分布式和在家办公的模式,这种模式依赖于远程访问通信,而这种通信很容易受到攻击。
第11章主要讨论针对终端用户系统上应用的攻击,因为这些应用不会频繁地为终端用户的系统提供与企业的私人网络相同程度的保护。
附录概述安装Kali Linux的主要步骤,以及怎样采用全盘加密来避免机密测试数据的拦截。学习本书需要准备什么
为了练习本书中出现的示例,需要虚拟化工具,例如VMware或者VirtualBox。
需要下载和安装Kali Linux操作系统及工具套件。通过访问互联网来确保你的系统是最新的,并且安装了所有的工具。
不幸的是,不是Kali Linux系统上的所有工具都会呈现,因为工具太多了。本书的目标不是将所有的攻击和选项展现给读者,而是提供一个测试方法,这个方法可以为读者提供学习和掌握新工具的机会,经过一段时间后,将它们变为自己的经验和知识。
虽然本书中大多数示例是基于Microsoft Windows的,但是方法和大多数工具是可以转换到其他操作系统的,例如Linux和其他UNIX系统。
最后,本书应用Kali来完成攻击者的攻击流程,对目标系统进行攻击。你需要一个目标操作系统。本书的许多示例是基于Microsoft Windows XP的。虽然它在2014年4月已被弃用,但是该系统为许多工具提供了一个行为标准的“基线”。如果你知道怎样将一个方法应用到一个操作系统,那么你可以将它应用到更多现有的操作系统,例如Windows 7和Windows 8。本书的读者对象
本书适用于想要学习更多关于数据安全知识的人。特别是,它的目标人群是那些在实践中明白为什么要使用一个特定工具的人;而不是相反的一些人(为了查看一个系统是否有漏洞,他们使用尽可能多的工具)。我的目标是使读者开发他们自己的方法和方式来进行有效的渗透测试,这可以让他们试验和学习,使他们进步。我相信这种方法是理解黑客怎样攻击数据系统的唯一有效的方式;自然,这也是了解怎样在漏洞被利用之前弥补漏洞的唯一方法。
如果你是一名专业的安全人员、渗透测试人员,或者是对复杂数据环境的安全感兴趣的人,那么这本书是为你准备的。第一部分攻击者杀链■第1章 走进Kali Linux■第2章 确定目标——被动侦察■第3章 主动侦察和漏洞扫描■第4章 漏洞利用■第5章 后期利用——行动的目的■第6章 后期利用——持久性第1章走进Kali LinuxKali Linux(Kali)是BackTrack渗透测试平台的后继产品,BackTrack通常被认为是标准工具包,该工具包使安全数据和语音网络的渗透测试更加方便。本章介绍Kali,并着重讲解如何定制Kali以支持高级渗透测试。本章主要的知识点如下:
·Kali简介
·网络服务和安全通信配置
·Kali更新
·Kali定制
·用第三方应用程序扩展Kali的功能
·渗透测试集的有效管理1.1Kali Linux
BackTrack(BT)(www.offensive-security.com)是一种可扩展、多样化的渗透测试和防御工具,旨在帮助安全审计员和网络管理员正确评估网络安全。授权和未经授权的渗透测试人员(黑客)都在使用这一工具。
2012年8月,BackTrack发布了最新版本BT 5r3。BT 5r3版本基于Ubuntu Linux操作系统,并且已经被安全团体普遍采用和支持。但由于该版本的文件体系结构,导致对工具列表及其关联性的管理变得困难。
在BackTrack中,所有渗透测试工具均放置在/pentest目录下,而子目录/web或/database帮助定义本地工具。然而,在这样的文件系统层次结构中,要寻找和执行任意工具并非易事。例如,对于sqlninja,将其译成SQL注入还是网络漏洞评估工具,或者是网络攻击工具还是数据库开发工具?
2013年3月,基于Debian GNU/Linux操作系统的渗透测试新工具Kali Linux取代了BackTrack,它使用一种新的平台体系结构。
Debian遵守文件系统层次结构标准(Filesystem Hierarchy Standard,FHS),对于BackTrack,这是Debian的一个显著优点。不需要浏览/渗透测试树导航,可以从系统的任何地方调用一个工具,因为应用都包含在系统路径中。
Kali包含的其他特征如下:
·支持多种桌面环境,例如Gnome、KDE、LXDE以及XFCE,也支持多种语言。
·兼容Debian的工具一天至少和Debian资源库同步四次,使更新封装包和支持安全修复更容易。
·支持ISO自定义,也就是允许用户建立他们自己的Kali版本。引导程序功能也执行企业级网络的安装,可以用先前的种子文件进行自动化安装。
·ARMEL和ARMHF支持,允许Kali安装在Raspberry Pi、ODROID-U2/-X2,以及Samsung Chromebook这些硬件上。
·包含超过300个渗透测试、数据取证和防御工具。它们由内核补丁程序提供无线支持,允许一些数据包注入无线攻击。
·Kali保留了一个免费的开源项目。最重要的是,它得到了活跃的在线社区的支持。
在本书中,我们使用64位Kali环境下的VMware虚拟机(具体安装步骤请参考本书附录)。
使用VM,是因为在其他操作系统中很容易快速地执行某些应用,例如微软的Windows系统。另外,VM可以和渗透测试结果一起归档,通过评估档案,来决定一个特定的漏洞是否被测试工具集检测到。
Kali安装完成后,用户可以看到系统默认的GUI的顶部菜单栏和一些简单的图标。通过选择菜单项Applications,然后选择Kali Linux,用户可以访问菜单系统,菜单系统包含前10个安全工具(Top 10 Security Tools)以及一系列文件夹,这些工具由渗透测试期间遵循的一般顺序来排列,如图1.1所示。图1.1 Kali Linux启动菜单BT 5r3用户应熟悉这个菜单。然而,也存在一些改变,包括简化了的网络服务和通信访问。1.2配置网络服务和安全通信
使用Kali的第一步是确保其连接到有线网络或者无线网络,用来支持更新和用户自定义。
你或许需要通过动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)得到IP地址,或者静态分配。首先,在终端窗口中,用命令ifconfig来确认你的IP地址,如图1.2所示。图1.2 使用ifconfig命令确认IP地址
在这个特殊情况下,VM被分配到IP地址192.168.204.132。如果没有获得IP地址,可以通过命令dhclient eth0(或者其他可用的、依靠系统特定配置的端口)使用DHCP来分配地址。
如果一个静态IP地址被使用了,那么就需要添加信息。例如,通过如下代码可以分配一个静态的IP地址192.168.204.128:
打开终端窗口并输入以下命令:
这时的IP设置是非持续的,当Kali重新启动时,设置的IP会恢复原有状态。为了使配置永久保持,需要编辑/etc/network/interfaces文件,如图1.3所示。图1.3 编辑IP地址
默认情况下,Kali启动时没有激活DHCP服务。先声明新的网络IP地址,这样可能警告管理员:存在测试人员。对一些测试实例,这不仅仅不是问题,而且还有利于在启动期间自动开启一些服务。可以通过输入以下命令来实现:
Kali安装时就包含了网络服务,且它可以在需要时开启或关闭,包括DHCP、HTTP、SSH、TFTP以及VNC服务器。这些服务通常由命令行来调用,但其中一些也可以通过Kali菜单项来访问。1.2.1 调整网络代理设置
用户分为经过验证的,或者未经过验证的。连接时必须更改bash.bashrc和apt.conf。这两个文件都在/root/etc目录中。
1.编辑bash.bashrc文件,如图1.4所示,用文本编辑器打开文件,并添加以下内容到bash.bashrc文件底部:图1.4 编辑bash.bashrc文件
2.分别用你的代理IP地址和端口号代替proxyIP和port,然后用你的验证用户名和密码代替用户名和密码。如果不需要验证,那么只需要写@符号后面的部分。
3.在同一个目录中,创建apt.conf文件,输入下面的命令行,如图1.5所示。图1.5 编辑apt.conf文件
4.保存并关闭文件。注销后重新登录以激活新的配置。1.2.2 使用安全Shell保护通信安全
在测试过程中,为了最小化被目标网络检测到的可能,Kali不用任何外部监听网络服务。一些服务已经安装,例如安全Shell(SSH,Secure Shell)。自然,必须优先使用它们。
Kali用默认的SSH密钥进行预配置。在开启SSH服务前,禁用默认密钥,并生成一个唯一的密钥集以供使用。
将默认的SSH密钥移动到备份文件夹,然后通过下列命令生成一个新的SSH密钥集:
移动原始密钥和生成新密钥集的过程是公开的,如图1.6所示。图1.6 移动密钥
为了验证新生成的密钥是唯一的,计算它们的哈希值md5sum,然后和原始密钥进行比较,如图1.7所示。
要用菜单项来开启SSH服务,依次选择Applications|Kali Linux|System Services|SSHD|SSHD Start。
用命令行启动SSH服务,如图1.8所示。图1.7 计算md5sum与原始密钥进行比较图1.8 用命令行启动SSH服务
为了验证SSH正在运行,执行一个netstat查询,如图1.9所示。图1.9 运行netstat检查SSH运行状态
在先前的例子中,SSH的守护进程正在监听22号端口。使用如下命令行终止SSH:1.3更新Kali Linux
Kali必须定期打补丁,确保基本的操作系统和应用是最新的,同时更新了安全补丁。Debian软件包管理系统
Debian的软件包管理系统是一个独立绑定的应用,叫作软件包(packages)。在自定义环境中,用户可以安装或者移除软件包,软件包也支持一些任务,例如渗透测试。它们也可以扩展Kali的一些功能,支持一些任务,例如通信(Skype、即时消息、安全邮件等)或者编辑文档(在Wine环境下运行的OpenOffice和Microsoft Office)。
软件包存储在资源库中,用户下载到自己的系统中,以此确保软件包是完整的。软件包和资源库
默认情况下,Kali只使用官方的Kali资源库。不完整的安装进程可能不能把资源库添加到正确的source.list文件,或者当有新的应用添加时,你可能希望扩展可用的资源库。
用命令行来更新source.list文件(echo debhttp://http.kali.org/kiali kali main contrib non-free>>/etc/apt/sources.list),或者用一个文本编辑器来更新。
默认程序包资源库在目录/etc/apt/sources.list中,如下所示;如果不存在,编辑sources.list文件,增加它们。
官方工具资源库中并不包含所有的Kali工具。如果你选择手动更新一个工具,那么你有可能重写现有的软件包文件,并破坏依赖性。因此,存在一些没正式地移入Debian资源库中的工具,例如aircrack-ng、dnsrecon、sqlmap、beef-xss等,以及社交工程工具包(Social Engineering Toolkit),这些工具由Bleeding Edge资源库维护。用下面的命令行将资源库添加到sources.list中:dpkg
dpkg是Debian的软件包管理系统。这里使用命令行来安装、移除和查询软件包。一般来说,dpkg在独立的软件包上执行功能。在Kali系统中,dpkg在编译安装的应用列表时特别有用,命令是dpkg-l>list.txt。如果你想知道一个特定工具是否已安装,可输入命令dpkg-l|grep<tool name>。
图1.10表明,当调用dpkg-1时,引用了返回数据,并提供了安装在Kali版本上的应用列表;这对于识别应用特别有用,应用只能用命令行来直接访问。图1.10 使用dpkg-1命令使用高级软件包工具
高级软件包工具(Advanced Packaging Tool,APT),通过搜索资源库、安装或者升级的软件包,以及所有需要的依赖性,来扩展dkpg的功能。APT也可以用来升级完整的版本。
最常用的apt命令如下:
·apt-get update:该命令用来重新同步本地软件包索引文件和它们定义在/etc/apt/sources.list目录下的资源。在执行一个upgrade或者dist-upgrade命令前,始终应该首先使用update命令。
·apt-get upgrade:用来安装软件包的最新版本,这些软件包使用/etc/apt/sources.list安装在系统上。升级安装在Kali上的有最新版本的软件包。升级命令不会改变或者删除没有升级的软件包,也不会安装已有的软件包。
·apt-get dist-upgrade:该命令升级现所有安装在系统和相关位置的软件包。命令也可从系统上移除淘汰的软件包。
命令apt-get可以全面描述一个软件包,并标识包的依赖性(apt-cache show<package name>)或者移除一个软件包(apt-get remove<package name>)。在启动阶段,通过执行apt-get update命令和upgrade命令来确保你的会话正在使用最新的工具。完成任务最简单的方法是创建一个update.sh脚本,这个脚本包含以下命令行:
apt-get update&&apt-get upgrade–y&&apt-get distupgrade–y
一些应用不通过apt-get命令来升级。例如,exploit-db存档文件的本地副本必须手动升级。创建一个update.sh脚本,并添加下列命令行,使其自动执行升级:1.4配置和自定义Kali Linux
Kali是一个用来完成渗透测试的框架。然而,测试人员不会感觉到相关联的默认安装的测试工具,或者是使用Kali桌面安装的工具。通过自定义BackTrack,测试人员可以提高收集到的客户数据的安全性,使渗透测试更简单。
Kali的常见自定义包括:
·重置超级用户密码
·添加普通用户
·加速Kali运行
·与Microsoft Windows共享文件夹
·创建加密文件夹1.4.1 重置超级用户密码
使用以下命令修改用户密码:
然后会提示你输入一个新的密码,如图1.11所示。图1.11 修改用户密码1.4.2 添加普通用户
为了执行其功能,Kali提供的许多应用必须用超级用户的权限(Root-level privileges)运行。超级用户权限有一定的风险,例如,输错一个命令或者使用了一个错误的命令,将会导致应用终止,甚至损害被测试的系统。在一些例子中,使用普通用户级权限来测试是更可取的。事实上,一些应用促进了低权限账户的使用。
为了创建一个普通用户,可以简单地在终端上使用命令adduser,接着会出现指令,如图1.12所示。图1.12 创建普通用户1.4.3 加速Kali运行
以下几个工具可以用来优化和加速Kali运行:
·在使用虚拟机时,安装VM软件驱动包Guest Additions(VirtualBox)或者VMware Tools(VMware)。
·在创建虚拟机时,选择一个固定大小的磁盘,而不是动态分配的磁盘。固定大小的磁盘可以更快地添加文件,并且碎片更少。
·预先加载的应用(apt-get install preload)能识别一个用户最常用的程序,也能把二进制文件和依赖性预先加载到内存,以提供更快速的访问。随着安装后的第一次重启,它会自动运行。
·BleachBit(apt-get install bleachbit)释放磁盘空间,通过释放缓存、删除cookie、清除上网记录、粉碎临时文件、删除日志,以及丢弃其他一些非必需的文件来提高隐私性。使用高级技术,包括粉碎文件来防止恢复,擦除空闲磁盘空间来隐藏没有完全删除的文件的踪迹。
·在默认情况下,Kali不会显示所有出现在开始菜单里的应用。每个在启动阶段安装的应用降低了系统数据,并且可能会影响内存使用和系统性能。用启动管理器BUM(Boot Up Manager)来禁止启动时非必要的服务和应用(apt-get install bum),如图1.13所示。图1.13 启用BUM
·直接从键盘添加gnome-do(apt-get install gnome-do)启动应用。从应用|附件(Applications|Accessories)菜单中选择gnome-do配置它。一旦启动后,选择首选项(Preferences)菜单,激活静启动(Quiet Launch)功能,并选择一个启动命令(例如,Ctrl+Shift)。选好启动密钥后,清除现有的命令,然后输入需要执行的命令行。
如果不从键盘直接启动,那么可能会写入一些能启动复杂操作的特定脚本语句。1.4.4 与Microsoft Windows共享文件夹
Kali工具集能灵活地与驻留在不同操作系统上的应用共享成果,特别是Microsoft Windows。最有效的数据共享方式是创建从主机操作系统以及Kali Linux VM客户机能访问的一个文件夹。
当将主机或VM中的数据放置在共享文件夹中时,所有能访问共享文件夹的系统都能立刻访问数据。
创建共享文件夹的步骤如下:
1.在主机操作系统上建立一个文件夹。在这个例子中,我们将其命名为Kali_Share。
2.右击文件夹,选择共享(Sharing)选项卡,并从中选择Share。
3.确保文件是与每个人(Everyone)共享的,允许级别(Permission Level)设置为读/写(Read/Write)。
4.如果你没有这样操作,那么在BackTrack上安装适当的工具。例如,在使用VMware时,安装VMware工具(具体安装步骤可参考本书附录)。
5.在完成安装之后,在VMware菜单里选择虚拟机设置(Virtual Machine Setting)。找到共享文件夹(Shared Folders)菜单,并选择保持打开(Always Enabled)选项。创建主机操作系统中已存在的共享文件夹的路径,如图1.14所示。图1.14 虚拟机设置界面
试读结束[说明:试读内容隐藏了图片]