红蓝对抗实验室从零搭建:VMware + Kali Linux + Windows 11 隔离靶场实战
本文最后更新于 2026年9月1日 晚上
一套从零搭建的本地红蓝对抗实验环境:Windows 11 宿主机 + VMware Workstation Pro,一台 Kali Linux 测试机对一台隔离的 Windows 11 25H2 靶机,从 UEFI/Secure Boot/TPM 配置、隔离网络搭建,到红队扫描、蓝队溯源的完整实战记录。
🛡️ 红蓝对抗实验室从零搭建
本文整理自本地网络安全实验记录,环境完全隔离、不接触真实局域网或公网。
本环境只能用于自己拥有或明确获得授权的虚拟机,禁止将教程中的测试方法用于宿主机、真实局域网、公网或其他未授权目标。
🎯 1. 教程目标
本教程记录一套从零搭建的本地网络攻防实验环境,包括:
- 在 Windows 11 宿主机中安装 VMware Workstation Pro。
- 创建 Kali Linux 安全测试机。
- 使用
Win11_25H2_Pro_Chinese_Simplified_x64.iso创建 Windows 11 靶机。 - 正确配置 UEFI、Secure Boot、TPM 2.0 和 VMware Tools。
- 创建只允许虚拟机互通的 VMnet2 隔离网络。
- 设置 Kali 与 Windows 11 的固定 IP 地址。
- 解决单向 ping、
timeout efinet、快照恢复后网卡未激活等问题。 - 创建 R-agent(红队)和 B-agent(蓝队)的持久化角色定义。
- 完成第一次低影响端口扫描和蓝队分析。
🗺️ 2. 最终实验拓扑
1 | |
VMnet2 使用子网 192.168.77.0/24(等价于子网掩码 255.255.255.0):
192.168.77.0是网络地址。192.168.77.10分配给 Kali。192.168.77.20分配给 Windows 11。192.168.77.255是广播地址。- 实验网卡不设置默认网关和 DNS,防止靶机通过它访问外网。

🖥️ 3. 宿主机准备
3.1 硬件建议
| 项目 | 最低 | 建议 |
|---|---|---|
| 宿主机内存 | 8 GB | 16 GB 或更多 |
| 空闲存储 | 140 GB | 200 GB 或更多 |
| CPU | 4 线程 | 8 线程或更多 |
| 存储介质 | HDD | SSD/NVMe |
3.2 检查 CPU 虚拟化
打开 Windows 任务管理器:
1 | |
确认右下角显示:
1 | |
如果显示”已禁用”,需要进入主板 BIOS/UEFI,开启下列选项之一:
- Intel Virtualization Technology / VT-x
- AMD-V / SVM Mode
3.3 避免虚拟化平台冲突
实验中使用 VMware Workstation Pro,不要同时启动 VirtualBox、Hyper-V 中的其他虚拟机或其他虚拟化管理器。否则可能引起性能下降、虚拟机无法启动或网络行为异常。
🐧 4. 创建 Kali Linux 测试机
4.1 新建虚拟机
在 VMware Workstation Pro 中选择:
1 | |
建议配置:
| 项目 | 建议值 |
|---|---|
| Guest OS | Linux |
| Version | Debian 12.x 64-bit 或当前最接近的 Debian 64-bit |
| CPU | 1 个处理器、2–4 个核心 |
| 内存 | 4–8 GB |
| 虚拟硬盘 | 60–80 GB,动态扩展 |
| 固件 | UEFI |
| 安装阶段网络 | NAT |
挂载 Kali ISO 后启动虚拟机,选择 Graphical install。
4.2 Kali 安装向导
建议流程:
- 语言和键盘按个人习惯选择。
- 主机名可设为
kali。 - 创建普通用户,不要为了方便而长期直接使用 root。
- 分区选择
Guided - use entire disk。 - 实验机可选择
All files in one partition。 - 确认写入虚拟硬盘。这里的”整块磁盘”是 VMware 虚拟硬盘,不是宿主机真实磁盘。
- 安装 GRUB 引导器。
- 安装完成后重启,并从虚拟光驱中卸载 ISO。
4.3 VMware Tools
Kali 通常使用开源 VMware Tools。如果缺失,可在 NAT 联网状态下安装:
1 | |
命令解释:
sudo:以管理员权限执行命令。apt update:更新软件包索引,不直接升级已安装软件。apt install:安装软件包。-y:自动回答安装过程中的确认问题。open-vm-tools-desktop:提供分辨率自适应、鼠标集成和剪贴板等桌面功能。reboot:重启 Kali,使服务和桌面组件完整生效。
🎯 5. 创建 Windows 11 25H2 靶机
5.1 创建空虚拟机
在 VMware Workstation Pro 中选择:
1 | |
在安装来源页选择:
1 | |
这样可以先完成 UEFI、Secure Boot 和 TPM 设置,避免 VMware Easy Install 提前修改安装流程。
建议配置:
| 项目 | 建议值 |
|---|---|
| Guest OS | Microsoft Windows |
| Version | Windows 11 x64 |
| 名称 | Win11-25H2-Target |
| CPU | 1 个处理器、4 个核心 |
| 内存 | 8 GB |
| 虚拟硬盘 | 100 GB、NVMe、动态扩展 |
| 安装阶段网络 | NAT |
5.2 加密和 TPM 2.0
Windows 11 需要 TPM 2.0。VMware Workstation Pro 中的虚拟 TPM 需要先加密虚拟机的支持文件。
在虚拟机完全关机时进入:
1 | |
如果界面提供两种方式,实验机可优先选择:
1 | |
设置并妥善保存加密密码。忘记密码可能导致虚拟机无法修改或迁移。
然后进入:
1 | |
5.3 UEFI 和 Secure Boot
进入:
1 | |
设置:
1 | |
如果已安装 Windows 但 msinfo32 显示”安全启动状态:关闭”,先检查 BitLocker:
1 | |
命令解释:
manage-bde:Windows BitLocker 命令行管理工具。-status:只查询状态,不修改加密配置。C::查询系统盘。
本次实验结果为:
1 | |
因此可以关机后直接勾选 Secure Boot。如果 BitLocker 已开启,应先保存恢复密钥并暂停保护,否则修改启动状态后可能要求恢复密钥。
5.4 挂载 Windows ISO
在虚拟机关机时进入:
1 | |
选择:
1 | |
关机时 Connected 选项可能是灰色且无法勾选,这是正常的。Connected 表示设备的当前运行状态;关机时只需勾选 Connect at power on。
5.5 解决 timeout efinet
如果出现:
1 | |
efinet 表示 VMware 已经跳转到 EFI 网络启动。通常是 ISO 光驱未连接、未捕获按键或光驱未位于启动顺序中。
排查步骤:
- 完全关闭虚拟机。
- 重新选择 ISO,并勾选
Connect at power on。 - 临时取消网卡的
Connect at power on,避免再次进入 EFI 网络启动。 - 选择
VM → Power → Power On to Firmware。 - 进入
Boot Manager。 - 选择
EFI VMware Virtual SATA CDROM Drive。 - 出现按键提示时,点击虚拟机窗口,按
Ctrl+G捕获键盘,再按空格键。
如果固件中的光驱项显示 No Media,说明 VMware 没有读到 ISO,应重新挂载 ISO,或删除后重新添加 SATA CD/DVD 设备。
5.6 安装 Windows 11
进入 Windows 安装程序后:
- 选择简体中文和微软拼音。
- 点击”现在安装”。
- 有密钥时输入密钥;暂时没有时选择”我没有产品密钥”。
- 选择
Windows 11 专业版,与 ISO 和许可证版本保持一致。 - 选择”自定义:仅安装 Windows”。
- 在磁盘页面选中
驱动器 0 未分配的空间,直接点击”下一步”。
Windows 会自动创建 EFI、MSR、系统和恢复分区。对实验靶机而言,单个系统分区更容易创建快照和恢复,无需额外划分 D 盘。
5.7 安装 VMware Tools
进入 Windows 桌面后,如果 VMware 菜单显示 Install VMware Tools,说明尚未安装。
- 点击
VM → Install VMware Tools。 - 在 Windows 中打开”此电脑”。
- 打开 VMware Tools DVD。
- 运行
setup64.exe。 - 选择
Typical。 - 安装完成后重启虚拟机。
安装后可以获得鼠标集成、分辨率自适应、网卡驱动和剪贴板等功能。
5.8 验证 Secure Boot 和 TPM
按 Win+R,输入:
1 | |
确认:
1 | |
管理员 PowerShell 中也可以执行:
1 | |
返回 True 表示 Secure Boot 已启用。
按 Win+R,输入:
1 | |
应看到 TPM 已就绪,规范版本为 2.0。
🔒 6. 创建 VMnet2 隔离实验网络
6.1 创建虚拟网络
先关闭两台虚拟机,然后进入:
1 | |
点击 Add Network,选择 VMnet2,设置:
1 | |
为了加强隔离,取消:
1 | |
第一项取消后,宿主机不直接加入 VMnet2。第二项取消后,两台虚拟机使用手动固定 IP,地址不会因 DHCP 租约变化。
6.2 Windows 11 网卡
安装和更新完成后,关闭 Windows 11,进入:
1 | |
选择:
1 | |
日常对抗实验时,Windows 11 靶机只保留 VMnet2,不使用 Bridged,也不使用 NAT。
6.3 Kali 网卡
Kali 保留两张网卡:
1 | |
NAT 网卡仅用于 Kali 安装更新或必要的工具。VMnet2 网卡用于向靶机发送实验流量。
建议在 Kali 中检查转发状态:
1 | |
正常应显示:
1 | |
0 表示 Kali 不会在 NAT 网卡与 VMnet2 网卡之间转发 IPv4 数据包。
📡 7. 配置固定 IP
7.1 Windows 11:192.168.77.20/24
按 Win+R,输入:
1 | |
然后:
- 右键 VMnet2 对应的以太网。
- 选择”属性”。
- 双击”Internet 协议版本 4”。
- 填写:
1 | |
使用以下命令查看结果:
1 | |
ipconfig 只读取 Windows 的网卡配置,不会修改系统。
7.2 Kali:192.168.77.10/24
先查看网卡:
1 | |
参数解释:
ip:Linux 网络配置和查询工具。-br:brief的缩写,使输出更紧凑。address:显示各网卡的 IP 地址。
本环境中:
1 | |
查看 NetworkManager 状态:
1 | |
为 eth1 创建固定 IP 连接:
1 | |
各部分含义:
nmcli:NetworkManager 的命令行客户端。connection add:新建一个持久化网络连接。type ethernet:连接类型为以太网。ifname eth1:将连接绑定到eth1。con-name lab-vmnet2:将连接配置命名为lab-vmnet2。ipv4.method manual:使用手动 IPv4,不使用 DHCP。ipv4.addresses 192.168.77.10/24:设置 IP 和前缀长度。ipv4.never-default yes:禁止该连接成为默认互联网路由。ipv6.method disabled:在该实验网卡上禁用 IPv6,减少本次 IPv4 实验的干扰。
启用连接:
1 | |
验证:
1 | |
预期输出:
1 | |
🔗 8. 验证双向连通
8.1 Windows 11 到 Kali
在 Windows 命令提示符中执行:
1 | |
本次实验中往返延迟不超过 1ms,表明两台虚拟机位于同一个本地虚拟交换网络。
8.2 Kali 到 Windows 11
在 Kali 中执行:
1 | |
参数解释:
ping:发送 ICMP Echo Request,用于测试 IP 层连通性。-c 4:只发送 4 个数据包,然后自动停止。192.168.77.20:唯一获得授权的 Windows 11 靶机。
如果 Windows 可以 ping Kali,但 Kali ping Windows 为 100% packet loss,通常是 Windows 防火墙默认阻止入站 ICMP。
在 Windows 管理员 PowerShell 中添加一条仅允许 ICMPv4 回显的规则:
1 | |
参数解释:
New-NetFirewallRule:创建 Windows Defender 防火墙规则。-DisplayName "Lab ICMPv4 Echo":指定易于识别的规则名。-Direction Inbound:只影响进入靶机的流量。-Protocol ICMPv4:规则只匹配 IPv4 ICMP。-IcmpType 8:只匹配 Echo Request,即 ping 请求。-Action Allow:允许匹配流量。
如需删除该规则:
1 | |
📸 9. 创建干净基线快照
快照应在虚拟机正常关机后创建。关机状态的快照更容易得到一致、可恢复的基线。
9.1 Windows 11 基线
快照路径:
1 | |
名称:
1 | |
建议描述:
1 | |
9.2 Kali 基线
快照名称:
1 | |
建议描述:
1 | |
恢复快照:
1 | |
恢复会丢弃基线之后的虚拟机改动。快照不是备份;虚拟磁盘损坏或虚拟机目录丢失时,快照也可能无法恢复。
🤖 10. 创建红蓝对抗 Agent
10.1 为什么需要两个角色
**R-agent(红队)**负责:
- 明确授权范围内的攻击面分析。
- 低影响扫描和服务识别。
- 记录测试参数、时间和结果。
- 将发现交给 B-agent 验证。
**B-agent(蓝队)**负责:
- 记录扫描前的系统基线。
- 分析端口、进程、服务、防火墙和安全日志。
- 为红队活动寻找可观测证据。
- 提出可回滚的防御措施,再由红队验证。

10.2 永久保存的角色文件
角色定义保存在服务器工作区:
1 | |
目录结构:
1 | |
角色文件定义了:
- Agent 名称和职责。
- 唯一授权网段
192.168.77.0/24。 - Kali 和 Windows 11 的固定 IP。
- 禁止触碰的范围。
- 快照名称。
- 执行前确认、证据记录和复盘要求。
需要注意:AGENT.md 是持久化的角色定义,不是会话关闭后仍在后台运行的进程。新会话中需要先读取这两个文件,再重新创建运行中的 R-agent 和 B-agent。
10.3 为什么不在 Kali 本地跑 AI 助手
本实验的 AI 协作端跑在云端服务器上,本地 Kali 网络环境不一定能直连对应的模型服务,即使安装了对应 CLI 也可能无法正常登录调用。
实际协作方式为:
1 | |
这种方式不需要为 VMnet2 开放公网路由,也不需要在 Windows 靶机中安装额外的 CLI 工具,对初学实验更安全。
🔍 11. 第一次红蓝对抗测试
11.1 蓝队:记录扫描前的监听端口
在 Windows 11 管理员 PowerShell 中执行:
1 | |
命令解释:
Get-NetTCPConnection:读取 Windows 的 TCP 端点和连接。-State Listen:只显示正在等待连接的监听端口。|:PowerShell 管道,把前一条命令的对象传递给后一条命令。Sort-Object LocalPort:按本地端口号从小到大排序。
实验基线观察到:
1 | |
蓝队初步归类:
| 端口 | 常见用途 | 观察重点 |
|---|---|---|
| 135 | RPC Endpoint Mapper | RPC 枚举以及随后对高位动态端口的连接 |
| 139 | NetBIOS Session Service | 旧式 SMB、匿名访问和认证失败 |
| 445 | SMB over TCP | 共享枚举、登录失败、账户锁定 |
| 5040 | Windows 系统服务常用端口 | 应结合 PID 和服务实际确认 |
| 7680 | Delivery Optimization | Windows 更新的对等传输 |
| 49664–49669 | Windows 动态 RPC | 端口可随重启变化,需结合 PID 判断 |
11.2 红队:低影响的指定端口扫描
在 Kali 中执行:
1 | |
命令逐项解释:
sudo:以管理员权限运行 Nmap。nmap:网络主机和服务发现工具。-sT:使用完整 TCPconnect()建立连接,便于理解且容易在防守方看到,适合第一次实验。-sV:对可访问端口执行服务版本识别。--version-light:使用较轻量的版本探测强度,减少额外请求。-Pn:不依赖 Nmap 的主机发现结果,直接把目标当作在线主机。-p ...:只扫描已从蓝队基线获知的指定端口,不扫描全网段。192.168.77.20:唯一授权靶机地址。
本次实际结果:
1 | |
状态解释:
open:目标接受了 TCP 连接,端口从 Kali 可访问。closed:主机明确回复该端口没有服务监听。filtered:防火墙或过滤设备没有让 Nmap 获得明确开放/关闭结果。本次是 Windows 防火墙屏蔽了大部分入站连接。
Nmap 显示的 pando-pub? 只是根据端口号和响应特征做出的推测,问号代表不确定,不能将它直接当作 Windows 中的真实服务名。

11.3 蓝队:将端口映射到进程和服务
先查看 7680 端口的监听 PID:
1 | |
命令解释:
-LocalPort 7680:只查询本地 7680 端口。-State Listen:只查看监听状态。Select-Object:只显示需要的字段。OwningProcess:拥有该 socket 的进程 PID。
实验中得到:
1 | |
查询进程:
1 | |
得到进程名 svchost。svchost.exe 只是 Windows 服务宿主,还需要继续将 PID 映射到服务:
1 | |
参数解释:
Get-CimInstance Win32_Service:从 Windows CIM/WMI 服务类读取系统服务。-Filter "ProcessId=5708":只返回由 PID 5708 承载的服务。Name:服务内部名称。DisplayName:服务管理器中显示的名称。State:当前运行状态。StartMode:启动类型。
实际结果:
1 | |
因此 7680 端口是 Windows Delivery Optimization(传递优化)服务,不是恶意程序。它用于 Windows 更新的对等传输。在隔离靶机中可继续评估是否需要允许它接受入站连接,但在未经用户确认前不应修改服务或防火墙。
🧯 12. 常见故障与排查
12.1 Kali 提示 ping: connect: 网络不可达
首先执行:
1 | |
本次快照恢复后出现:
1 | |
这表明网卡已启用,但只有 IPv6 链路本地地址,没有 192.168.77.10/24,所以 Linux 没有到 192.168.77.0/24 的 IPv4 路由。
检查保存配置:
1 | |
参数解释:
grep -E:使用扩展正则表达式筛选文本。'ipv4.method|ipv4.addresses':只保留包含两个配置名之一的行,|在正则中表示”或”。
如果配置仍是 manual 和 192.168.77.10/24,只需重新激活连接:
1 | |
再次检查:
1 | |
12.2 Kali 终端输入文字有下划线
Kali 默认 shell 可以对命令进行语法高亮。输入不存在的命令时,文本可能显示下划线或其他颜色。
例如:
1 | |
会显示:
1 | |
因为 00-Clean-Kali 是 VMware 快照名称,不是 Linux 命令。快照操作必须在 VMware Workstation 图形界面中完成。
12.3 VMware 剪贴板不可用
如果 VMware 菜单显示 Install VMware Tools,先安装 VMware Tools 并重启 Windows。安装后再测试宿主机与虚拟机之间的剪贴板。
对真实高风险恶意样本实验,应关闭共享剪贴板、拖放和共享文件夹,避免宿主机和靶机之间存在额外通道。
12.4 云端 AI 无法在 Kali 中直接调用
如果 Kali 本地网络无法直连对应的模型服务,不必反复尝试在虚拟机里安装 CLI。可以继续使用云端的 AI 作为控制和分析中心,由用户在两台虚拟机中手动执行经确认的命令。
🔁 13. 标准红蓝实验流程
后续每次实验建议使用相同流程:
- 确认授权边界:唯一目标为
192.168.77.20。 - 恢复基线:必要时恢复两台虚拟机的
00-Clean-*快照。 - 检查网络:确认 Kali
eth1为192.168.77.10/24,Windows 为192.168.77.20/24。 - 蓝队记录基线:记录端口、进程、服务、日志和时间。
- 红队执行单一可控动作:从低影响的发现和验证开始。
- 蓝队寻找证据:将日志、连接和系统变化与红队时间线匹配。
- 蓝队提出防御措施:说明影响、回滚方法和验证方法。
- 红队重新测试:使用相同参数进行对比,不随意改变测试条件。
- 复盘:记录发现、检测证据、修复和剩余风险。
- 恢复或保存快照:根据实验目标回到基线,或保存新的防御基线。
📋 14. 当前实验状态
| 项目 | 当前状态 |
|---|---|
| Kali | 192.168.77.10/24,eth1 连接 VMnet2 |
| Windows 11 | 192.168.77.20/24,只用于授权靶机测试 |
| Secure Boot | 已启用 |
| TPM | 已启用 |
| VMware Tools | Windows 已安装 |
| ICMP | Kali 与 Windows 可双向 ping |
| Windows 基线快照 | 00-Clean-Win11-25H2 |
| Kali 基线快照 | 00-Clean-Kali |
| R-agent | 定义保存于 R-agent/AGENT.md |
| B-agent | 定义保存于 B-agent/AGENT.md |
| 首次扫描 | 已完成指定端口低影响扫描 |
| 已确认服务 | TCP 7680 → DoSvc / Delivery Optimization |
下一个合理的实验是:由 B-agent 提出一条可回滚的入站防火墙规则,阻止 VMnet2 上对 TCP 7680 的访问;再由 R-agent 使用完全相同的 Nmap 参数重新测试,比较加固前后的差异。任何配置修改都应在用户明确确认后才执行。
全程操作均在自建的隔离虚拟网络中完成,靶机不接触真实局域网或公网,也不面向任何第三方系统。这套流程的价值不在”扫描”本身,而在红蓝两端围绕同一份基线做的记录、比对和复盘。