ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于VMware搭建网络安全攻防实验环境全攻略

基于VMware搭建网络安全攻防实验环境全攻略 做安全方向的朋友或者正准备入门网络安全测试的初学者应该都有过类似的尴尬文档看了不少工具也装了但总觉得缺一个“能随便折腾”的实验环境。我早年刚接触这行的时候直接在物理机上装了一堆测试工具系统崩了不知道多少次教训惨痛。后来老老实实用VMware Workstation把攻防实验环境整套搭起来攻击机、靶机、网络隔离井井有条想打快照就打快照想回滚就回滚学习效率直接翻倍。这篇就把我这套基于VMware的攻防实验环境搭建过程分享出来从虚拟机安装、网络规划、靶场搭建到排错经验尽量写全给有同样需求的朋友一个能直接照做的参考。1. 搭建前的整体思路与方案选型1.1 为什么选VMware Workstation而不是其他方案搭建实验环境第1步不是急着下载软件而是想清楚自己到底需要什么。可选方案其实不少VirtualBox、VMware Workstation Pro、VMware Workstation Player、甚至直接用云主机。我最终选了VMware Workstation Pro作为主力理由很实际。VMware Workstation Pro支持Windows和Linux双平台和Windows的集成做得比较顺虚拟网络编辑器VMnet的灵活度在同级别软件里算是顶配。它能让你手工定义多个虚拟网段NAT、Host-only、桥接三种模式随意切换攻防环境恰恰需要这种可控性——攻击机在网段A靶机在网段B或者完全隔离的Host-only模式一个软件都能搞定。另外快照和克隆这两个功能太实用了。实验过程中把靶机搞坏了一条命令就回到干净状态要同时跑好几个相同配置的靶机用克隆几分钟就能复制出一批。这些特性对“反复试错、频繁回滚”的安全学习场景来说价值怎么强调都不过分。VirtualBox免费开源也够用但它对复杂网络拓扑的管理效率和稳定性实话实说和VMware Workstation Pro对比还是有差距。尤其是大内存快照、多虚拟机并发启动的场景VMware的调度明显更稳。如果你不差这点软件授权费用选Pro版本能省不少心。1.2 攻防实验环境的网络拓扑设计攻防实验环境并不是简单装两个虚拟机就算完事网络规划才是重头戏。大多数情况下攻击测试机我习惯叫攻击机和靶机需要在一个“受控”的网络环境里互相通信同时又不能干扰你家里的真实局域网更不能让实验流量跑到外网去。VMware的虚拟网络编辑器默认提供了好几个VMnetVMnet0对应桥接模式虚拟机直接暴露在物理局域网中就像局域网里的一台独立主机。VMnet8对应NAT模式虚拟机通过宿主机共享IP访问外网外部看虚拟机和宿主机是一个地址。VMnet1对应Host-only模式虚拟机只能和宿主机以及同网段的虚拟机通信无法访问外网。对于攻防实验环境我的核心方案是“NAT为主Host-only为辅”。攻击机和大多数靶机放同一个NAT网段比如VMnet8默认192.168.x.0/24这样虚拟机既能上网更新工具、下载漏洞库彼此间也能自由通信操作起来最顺手。而需要做隔离测试的靶机比如验证某些攻击流量会不会外泄、需要绝对可控网络边界的情况就单独挂Host-only网段切断外网只留虚拟网络内部通信。这样一个攻击机可以同时接入多个网段的靶机网络拓扑灵活后续复现各种攻击场景不用反复改虚拟机网卡配置非常省事。1.3 准备哪些虚拟机镜像和工具环境搭建之前先把“食材”备齐。我的标准配置是这样的攻击机Kali Linux。Kali自带几百个安全测试工具开箱即用是绝大多数安全学习者的首选。基础靶机Metasploitable 2。一个故意做旧的Ubuntu虚拟机内置了十几种典型漏洞服务特别适合练手。Web安全靶场DVWADamn Vulnerable Web Application。用PHP写的带漏洞的Web应用专门练习SQL注入、XSS、文件上传等Web漏洞。进阶靶场Vulnhub系列。Vulnhub上有很多现成的靶机镜像每个都是一个小型挑战场景需要综合运用信息收集、漏洞利用、权限提升等技能非常适合模拟真实渗透流程。其他Windows XP或Windows 7虚拟机某些内网渗透、横向移动的实验会用到老系统平时同时开着备用。所有镜像都建议从官方渠道下载别图方便用不知名网站的资源安全第一。这套配置下来从入门到中阶的安全实验基本都能覆盖了。2. VMware Workstation的安装与初始配置2.1 下载安装时需要留意的几个坑不要小看安装这一步很多“稀奇古怪”的问题都源于安装环节埋下的雷。首先安装路径一定不要出现中文和空格。我见过太多人把VMware装到“D:\软件\VMware”这种路径结果启动虚拟机时提示找不到vmware-vmx.exe折腾半天。正确做法是装到类似“D:\VMware”或者默认的“C:\Program Files\VMware”这种纯英文路径下省掉后续一系列麻烦。其次安装过程中会询问是否安装VMware Tools、是否加入改善计划等建议VMware Tools可以装其他选项可以关掉。安装完成后检查Windows服务里是否有VMware Authorization Service、VMware DHCP Service、VMware NAT Service这几个服务并且确保它们是“自动启动”状态。很多“VMware Workstation无法连接到虚拟机”的报错其实是因为Authorization Service没起来。还有一点很关键确认BIOS里开启了虚拟化技术。Intel是VT-xAMD是AMD-V。用任务管理器查看性能标签页如果显示“虚拟化已启用”那就没问题。没启用的话虚拟机直接起不来或者性能极差。2.2 虚拟网络编辑器VMnet的配置要点VMware Workstation安装完后建议先打开“编辑 - 虚拟网络编辑器”看看默认网络设置再动手创建虚拟机。我的习惯是把NAT模式的网段固定下来避免每次还原快照IP变动。比如我把VMnet8的设置改成“子网IP192.168.88.0”子网掩码255.255.255.0然后点击“NAT设置”记住网关IP默认是192.168.88.2。这样攻击机和靶机的IP都手动指定到192.168.88.0/24网段内。为什么要手动固定网段因为在攻防实验中IP地址经常涉及写入配置文件、设置代理、添加路由表等操作。如果DHCP动态分配每次重启IP都可能变实验进行到一半突然连不上靶机心态直接崩。所以宁可前期多花两分钟設定后期能省很多急。Host-only模式对应的VMnet1我也建议固定一个独立网段比如192.168.188.0/24。这个网段默认就只有虚拟机之间以及宿主机和虚拟机之间的通信外网访问不了特别适合做隔离实验。2.3 创建虚拟机资源分配的技巧新建虚拟机的“新建虚拟机向导”大部分人可能点过几百次了但资源分配这里我发现很多新手容易走极端。一种是抠门型给Kali只分配2GB内存、单核CPU结果一开浏览器系统就卡成PPT。另一种是土豪型给靶机分配了全部CPU核数和16GB内存结果宿主机卡得鼠标都动不了。这两种我都踩过。实际经验是攻击机Kali至少分配4GB内存、2核CPU、60GB磁盘空间这才能流畅跑浏览器、Burp Suite、抓包工具这些“内存大户”。靶机像Metasploitable 2比较轻量1GB内存、单核CPU就绰绰有余。DVWA/Ubuntu靶机给2GB左右足够。Windows 7靶机给2GB内存能流畅运行。硬盘分配方面建议选“将虚拟磁盘存储为单个文件”性能更好也更方便后期复制迁移。磁盘大小按需设置但最好预大不预小比如Kali可以预留60GB实际占用初始只有十几GB用“立即分配所有磁盘”这个选项不用勾不然创建时就会占用全部空间。2.4 安装VMware Tools增强体验虚拟机装好系统后第一件事不是配置工具而是安装VMware Tools。这个软件包能显著提升虚拟机的图形性能、鼠标无缝切换、剪贴板共享、文件拖拽等功能对日常操作体验影响巨大。在VMware Workstation菜单栏点击“虚拟机 - 安装VMware Tools”它会在虚拟机里挂载一个虚拟光驱然后进入系统里执行安装脚本即可。如果是Linux系统用命令行安装sudo mount /dev/cdrom /mnt cd /mnt tar zxpf VMwareTools-*.tar.gz -C /tmp cd /tmp/vmware-tools-distrib sudo ./vmware-install.pl安装过程中一路回车用默认选项完成后重启虚拟机。如果是Ubuntu等现代发行版其实也可以用更简单的open-vm-tools终端执行sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop重启后一样能实现共享文件夹、剪贴板同步等功能。这个方式更轻量我后来基本都用它替代官方VMware Tools。3. 攻防实验环境核心搭建实操3.1 攻击机Kali Linux搭建流程Kali Linux是目前安全圈最常用的测试系统搭建攻击机的核心就是装好Kali并完成基础配置。从官网下载Kali的VMware镜像或ISO镜像都行。我更推荐直接下载官方提供的VMware镜像文件省去安装过程导入就能用。下载解压后在VMware里选择“打开虚拟机”定位到解压目录里的.vmx文件然后设置好资源分配。首次启动后默认用户名和密码通常都是kali如果用的是官方VMware镜像界面会引导你修改密码按提示操作就行。接下来做这几件事更新软件源。Kali默认软件源通常在官网但下载速度不稳定。支持自定义源先备份原配置再替换为国内镜像源比如阿里云或清华大学的Kali源。禁用睡眠和屏幕锁定。实验过程中经常挂着抓包或者跑扫描系统一锁屏就断网很耽误事。设置里关掉自动锁屏。开启SSH服务。后续你可能会从宿主机直接SSH到Kali操作比在虚拟机窗口里切来切去效率高sudo systemctl enable ssh --now设置静态IP。如果你的NAT网段是192.168.88.0/24可以给Kali指定一个固定IP比如192.168.88.10。配置完以后先用ping命令确认Kali能通宿主机、能通外网再装其他工具就事半功倍了。3.2 Metasploitable 2靶机搭建Metasploitable 2是Rapid7官方推出的漏洞靶机本质是一个Ubuntu 8.04系统预置了vsftpd、Apache、MySQL、Samba、openssh等十几种存在漏洞的服务是初学者练手扫端口、识别服务版本、漏洞利用的绝佳对象。下载Metasploitable 2的zip压缩包解压后同样用VMware“打开虚拟机”导入.vmx文件。默认账号密码msfadmin。开机后它默认是DHCP获取IP建议在虚拟机里改静态IP让它在你的VMnet8网段里固定下来。Metasploitable 2这种老系统内核版本比较旧部分新硬件环境下可能会有兼容性提示但在VMware Workstation里基本是开箱即用。如果启动后提示“检测到不支持的CPU”之类可以给虚拟机设置里调整操作系统版本为“Ubuntu 64位”试试。这个靶机用完可以随时打快照重启后所有服务都会自动拉起来非常方便。3.3 DVWA Web安全靶场搭建DVWA是一个专门为Web安全实验设计的PHP应用里面包含暴力破解、SQL注入、XSS、文件包含等常见漏洞模块且每个模块都设置了四种难度等级适合循序渐进地学习。搭建DVWA有两种常见方式我分别说下。方式一集成环境手动部署。先准备一台Ubuntu虚拟机或直接用Kali里自带的Apache/PHP环境安装Apache、PHP、MySQL再把DVWA代码放到web目录。折腾起来步骤比较多但能让你更清楚Web服务的工作原理适合想边学PHP边学安全的同学。方式二Docker一键部署推荐。如果你对Docker有一定基础用Docker镜像搭建DVWA会非常清爽docker run --rm -it -p 80:80 vulnerables/web-dvwa启动后浏览器访问虚拟机IP就能进入DVWA安装页面。这种方式干净利落不污染系统环境删除容器即完全清理。首次使用DVWA需要先点“Create / Reset Database”它会自动创建数据库表然后跳转到登录页。默认账号密码admin/password。我自己的习惯是把DVWA的默认难度设成“medium”通过代码审计和实际测试对照来理解漏洞原理。直接上“high”难度对新手不太友好容易劝退。3.4 Vulnhub系列靶机的导入与使用Vulnhub是一个提供“漏洞虚拟机”平台每个靶机通常都是一个独立镜像下载后导入VMware就能开玩。这些靶机题材五花八门从初级到地狱难度都有是进阶学习绕不开的资源库。导入方式和Metasploitable类似解压后直接用VMware打开ovf或vmx文件。有些靶机镜像默认使用NAT模式有些可能要求桥接模式具体看靶机描述文档。多数情况下NAT模式就能满足实验要求。使用Vulnhub靶机的典型思路是先找到靶机在虚拟机网络里的IP比如通过ARP扫描、netdiscover或fping。然后扫描端口、识别服务再对服务进行漏洞探测和利用。最终拿shell、提权、拿到root权限。我印象很深的一个入门级靶机是Kioptrix Level 1它非常经典覆盖了端口扫描、Web目录扫描、溢出利用、内网提权等基础技能很适合第一次完整体验一遍。初学者如果能独立拿下第一个Vulnhub靶机对信心的提升是很明显的。不过注意Vulnhub靶机文件大小经常好几GB提前确认磁盘空间充足解压时也别放到中文目录下。3.5 主机与虚拟机之间联通性测试所有环境搭建完后一定要做一次完整的联通性测试。很多实验做到一半发现攻击机连不上靶机最后查来查去发现是网络配置从一开始就没弄对。测试时我在宿主机命令提示符里执行ping 192.168.88.10能通说明NAT网络没问题。然后在Kali里执行ping -c 4 192.168.88.20如果攻击机能通靶机IP说明虚拟网络内部通信正常。接着浏览器访问DVWA的地址确认Web服务正常再用SSH连Metasploitable验证服务端口可达。其中最容易出问题的是被测试的虚拟机自己开启了防火墙。安装完Linux系统后第一时间检查防火墙状态建议实验环境内直接关闭防火墙不然排查起来会让你怀疑人生sudo systemctl stop ufw sudo systemctl disable ufwWindows靶机也一样网络配置文件里不要选“公用”网络或者直接关闭Windows防火墙。4. 攻防实验环境的进阶管理与技巧4.1 快照实验环境的后悔药快照是攻防实验里最核心的“后悔药”。在你做某一步操作之前先打一个干净快照万一环境被搞坏一条命令就能回到初始状态省去重新安装配置的时间。VMware Workstation打快照很简单在虚拟机标签页上右键“快照 - 拍摄快照”。注意给快照取个能看懂的名字比如“Web打点-初始状态”、“vulnhub-kt2-开始”别用默认的“快照1”“快照2”时间一长自己都分不清。快照恢复时VMware默认会保留当前状态所以可以放心大胆测试。我通常在每个关键阶段都打一个快照刚装完系统并完成初始配置安装完DVWA并重置数据库Vulnhub靶机拿shell前和提权前这样每一步都有状态可以回退不会因为一次失误被迫重新搭整套环境。快照也有个坑不要在虚拟机处于挂起状态下打快照。挂起状态下的快照存在兼容性问题恢复时容易出幺蛾子。最好先启动虚拟机到正常桌面状态再打快照。4.2 克隆批量复制实验虚拟机如果实验需要同时开多台相同配置的靶机用克隆就行。在VMware里选中虚拟机右键“管理 - 克隆”可以选择“创建链接克隆”或“创建完整克隆”。链接克隆快、占空间小但它依赖原始虚拟机的磁盘文件原始虚拟机的快照或者文件变动会影响克隆出来的机器。完整克隆是一个完全独立的副本互不干扰耗费的磁盘空间也多一些。实验环境我个人建议用完整克隆虽然是慢一点、占空间大一些但胜在稳。因为攻防实验经常要修改系统文件、安装服务链接克隆环境出现“诡异问题”的概率比完整克隆高不少。克隆完成后记得修改克隆机的hostname和IP地址避免和原始虚拟机冲突。Linux下改IP可以用nmtui或修改网卡配置文件改完重启网络服务即可。4.3 网络抓包与调试技巧攻防实验里看数据包能看出很多在终端上发现不了的问题。VMware Workstation的虚拟网卡默认交给NAT或Host-only网络Wireshark安装在Windows宿主或Kali里都能直接抓包。在Kali里用Wireshark抓包时物理网络接口是eth0虚拟网络接口也是eth0类需要选择正确接口。如果同时挂了多张虚拟网卡建议给每张网卡设置不同的静态IP段方便在抓包时区分。举个例子攻击机通过NAT访问靶机的HTTP端口8080但始终连不上你在攻击机上抓包发现TCP握手包发出来了但没有回包那问题可能出在靶机防火墙或者服务本身。如果连SYN包都没发出去那问题更可能出在路由或者网卡配置上。这种“先看包、再定位”的思路从入门阶段就应该养成。另外VMware Workstation允许抓取VMnet网络中的流量在“虚拟网络编辑器”里选择某个VMnet然后点击“编辑”里面有一个“带宽”和“数据包捕获”选项可以导出pcap文件方便离线分析。4.4 共享文件夹、剪贴板与文件传输实验过程中经常需要在宿主机和虚拟机之间传输脚本、工具、报告虽然可以用scp或者python http.server临时起个传输服务但日常用共享文件夹和剪贴板更省事。在VMware Workstation里右键虚拟机“设置 - 选项 - 共享文件夹”启用共享文件夹后指定一个宿主机的目录虚拟机里会把它挂载起来。Linux虚拟机里通常会自动挂载到/mnt/hgfs/下。如果没有自动挂载可以用vmhgfs-fuse手动挂载sudo mkdir -p /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid1000剪贴板共享需要在安装了VMware Tools或open-vm-tools之后才生效勾选“虚拟机 - 设置 - 选项 - 客户机隔离 - 启用复制粘贴”就能在宿主机和虚拟机之间直接复制文本内容了。写个Payload先复制到宿主再到虚拟机里粘贴执行效率比在终端里手动输入高太多。5. 常见问题与排查技巧实录5.1 VMware Workstation无法连接到虚拟机这个报错特别常见表现形式是打开虚拟机提示“VMware Workstation无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问该程序使用的临时文件。”排查思路按顺序来首先看VMware相关的Windows服务是否正在运行重点是VMware Authorization Service。打开“服务”services.msc找到这个服务右键启动并改为自动启动。其次检查虚拟机文件权限。如果你把虚拟机放在系统盘以外的目录比如F盘目录权限不足也会导致这个报错。右键虚拟机.vmx文件查看安全标签页给当前用户完整控制权限。最后如果以上都正常尝试以管理员身份运行VMware Workstation。有些系统权限策略比较严非管理员跑虚拟机会出现各种不可预期错误。我还遇到过一次是杀毒软件把它们当成了危险进程拦截后直接导致VMware服务全部挂掉。遇到这种情况把VMware相关的执行文件和目录加进白名单就行。5.2 提示找不到vmware-vmx.exe还有一类常见问题“Unable to find the vmx binary F:\虚拟机\VMware-vmx.exe”或类似找不到vmx二进制的报错。基本就是两种原因安装目录路径有问题或VMware程序文件被破坏。如果是路径问题检查VMware Workstation安装目录里是否存在vmware-vmx.exe。如果存在重新打开虚拟机的vmx文件或者调整环境变量指向正确路径如果不存在只能重装VMware。其实很多时候这个问题是杀毒软件误删了VMware的部分文件。解决办法是卸载后重装安装时关闭实时防护装完再把VMware加入信任列表。另外如果你的原虚拟机是从别人那里拷贝过来的里面可能记录了原机器的绝对路径用文本编辑器打开.vmx文件检查其中是否有中文或无效路径。5.3 生成快照失败及“静默状态”报错有时候给虚拟机打快照VMware会提示“使虚拟机处于静默状态时出错。有关详细信息请参见虚拟机的事件日志。”这个问题通常不是让你看日志而是VMware没法让客户机操作系统安静下来。造成这个问题的原因一般是虚拟机里没有安装VMware Tools或者VMware Tools版本太旧无法响应快照请求。解决办法确保VMware Tools正确安装且版本匹配。如果安装了open-vm-tools检查服务是否在运行sudo systemctl status open-vm-tools还不行的话暂时关闭“静默快照”特性。在VMware Workstation中虚拟机设置 - 选项 - 高级将“使用客户机操作系统的静默快照”取消勾选。这样快照走的是纯虚拟化层快照虽然不如静默模式一致性高但单独做实验环境完全够用不会再报错了。5.4 虚拟机启动蓝屏或CPU占用过高虚拟机启动时蓝屏尤其是Windows虚拟机大概率是分配给虚拟机的CPU配置和宿主机不匹配或者没有启用正确的虚拟化引擎。解决方案是编辑虚拟机设置处理器选项卡中勾选“虚拟化Intel VT-x/EPT或AMD-V/RVI”并且尝试调整处理器内核数量。有些老旧系统可能只支持单CPU单核先改成单核试试能不能正常启动。CPU占用过高优先检查是不是同时开了太多虚拟机。VMware Workstation在宿主机资源管理上切换不如虚拟化平台精细建议限制虚拟机同时启动数量。Kali加Metasploitable加DVWA同时跑内存16GB的机器可能会吃力我一般是开一台攻击机加一台靶机用完关掉再开另一台。5.5 网络不通的排查策略实验过程中最让人头疼的就是“某个虚拟机突然上不了网”了。我的排查顺序很固定先从宿主机ping虚拟机IP确认宿主机到虚拟机的链路。再从虚拟机ping宿主机网关确认网关是否通。在虚拟机里执行ip addr或ifconfig确认网卡已获得正确IP。检查虚拟网络编辑器里对应VMnet是否勾选“连接主机虚拟适配器”。检查虚拟机和宿主机防火墙。如果是多网卡虚拟机还得注意路由表。有时候你在多个网卡上配置了多个IP系统默认路由可能指向了其中一个网卡的网关导致去往某些网段走了“错误的路由”。用route -n查看路由表必要时手动添加入口sudo ip route add 192.168.188.0/24 via 192.168.88.1这种问题不复杂但排查起来很费时间。如果你有一个标准的检查流程能省下大量调试时间。除了上述问题还有个小技巧VMware虚拟机的配置文件vmx其实是个文本文件。出问题的时候别急着重装用记事本打开看看有时候会发现配置里残留了无效参数。这个习惯我保持了很长时间帮我在很多“疑难杂症”中找到了突破口。搭建攻防实验环境这件事本身就是一个不断踩坑、填坑、再踩新坑的过程。我第一次搭完整套环境花了好几天中间无数次怀疑人生但一旦跑通之后后续所有安全测试实验都变得异常顺畅。这套环境的可扩展性也很好后面想加新靶机、新网段、新工具都是几分钟的事。当你有了一个稳定可控的实验室学习效率和动手能力真的会明显上一个大台阶。
返回列表