jruggles656/proxmox-pentest-lab
GitHub: jruggles656/proxmox-pentest-lab
基于 Proxmox VE 构建的全隔离渗透测试实验环境,通过双宿主 Kali 跳板机连接多个漏洞靶机与 IDS 传感器,支持攻防技能的实战化训练。
Stars: 0 | Forks: 0
# 🔓 Proxmox 渗透测试实验环境





## 🏗️ 实验环境架构
```
Mac Mini (SSH client)
│
▼
┌─────────────────────────────────────────────────┐
│ vmbr0 - Home VLAN (internet, production) │
│ ├── Mint Workstation (100) │
│ ├── Docker (101) │
│ └── Kali (102) ◄── eth0: DHCP from home LAN │
└────────────────────┬────────────────────────────┘
│ Kali has TWO NICs
┌────────────────────┴────────────────────────────┐
│ vmbr1 - Isolated Lab (10.100.0.0/24, no GW) │
│ ├── Kali (102) ◄── eth1: 10.100.0.10/24 │
│ ├── Makulu (104) 10.100.0.104/24 │
│ ├── Metasploitable 2 (105) 10.100.0.105/24 │
│ ├── Metasploitable 3 (106) 10.100.0.106/24 │
│ ├── Windows 11 (107) 10.100.0.107/24 │
│ └── Snort IDS (108) 10.100.0.108/24 │
└─────────────────────────────────────────────────┘
```
- 🔀 Kali 是唯一的双宿主 VM,作为跳板机同时位于两个网络中
- 🖥️ 通过 vmbr0 从 Mac Mini SSH 登录到 Kali,实现剪贴板共享和文件传输
- 🔒 所有目标机完全隔离在 vmbr1 中,零互联网访问
- 🎯 模拟真实的跳板机/渗透测试任务场景
## 💻 实验环境 VMs
| VMID | 名称 | 操作系统 | 内存 | 核心数 | 网络 | 角色 |
|------|------|----|-----|-------|---------|------|
| 102 | `kali-main` | Kali Linux | - | - | vmbr0 + vmbr1 | 🗡️ 攻击机 / 跳板机 |
| 104 | `makulu-lab` | Makulu LinDoz | 4 GB | 4 | vmbr1 | 🎯 目标机 |
| 105 | `metasploitable2` | Ubuntu 8.04 | 1 GB | 2 | vmbr1 | 🎯 目标机 (旧版) |
| 106 | `metasploitable3` | Ubuntu 14.04 | 2 GB | 2 | vmbr1 | 🎯 目标机 (现代版) |
| 107 | `win11-target` | Windows 11 Eval | 8 GB | 4 | vmbr1 | 🎯 目标机 (AD/域环境) |
| 108 | `snort-ids` | Ubuntu Server 24.04 | 2 GB | 2 | vmbr1 | 🛡️ Snort 3 IDS 传感器 |
## 📁 仓库内容
| 文件 | 描述 |
|------|-------------|
| 📘 [`pentest-lab-setup.md`](pentest-lab-setup.md) | 涵盖所有 VM、网络配置及 Proxmox 组织架构的完整设置指南 |
| 📓 [`lab-journal.md`](lab-journal.md) | 包含故障排除与经验总结的原始构建日志 |
| 📋 [`exercises/`](exercises/) | 渗透测试练习与扫描结果 *(持续更新中)* |
## ⚡ 值得注意的事项
**MS3 构建流水线** - 在 Kali VM 中使用 Packer 从源代码构建 Metasploitable 3(嵌套 KVM)。由于 Ubuntu 14.04 无法再与 Docker 现代的 APT 仓库通信,不得不跨越三个 Chef cookbook 文件追踪一次 TLS 故障。
**网络隔离** - `vmbr1` 没有物理上行链路。目标机之间可以互相通信,但与外界完全隔离。不会因意外更新破坏存在漏洞的服务。
**旧版系统避坑指南** - MS2 (Ubuntu 8.04) 需要使用 IDE 而不是 SCSI,因为其内核版本太旧,不支持 VirtIO。Makulu 需要使用 SeaBIOS 而不是 UEFI。这些问题均已记录在案,以免他人重蹈覆辙。
## 🧪 练习
每次练习都会在 [`exercises/`](exercises/) 目录中生成一份报告。
| # | 练习 | 目标机 | 状态 |
|---|----------|---------|--------|
| 01 | [Snort IDS 对决 Nmap:攻击与检测](exercises/01-snort-ids-challenge.md) | Snort IDS (108), 整个子网 | ✅ |
| 03 | [隐蔽扫描与 IDS 调优](exercises/03-stealthy-scanning-ids-tuning.md) | Snort IDS (108), Metasploitable 2 (105) | ✅ |
## 🖥️ 运行环境
| | |
|---|---|
| 🏠 **Hypervisor** | Proxmox VE 8.x,Ryzen 7 3700X,64 GB 内存,1 TB NVMe |
| 🔧 **构建工具** | Packer 1.11.2, QEMU 10.2.1 (在 Kali VM 上) |
| 💾 **存储** | 精简配置的 `local-lvm`(约 800 GB 存储池) |
| 💿 **备份** | 每晚备份至 NAS,使用 zstd 压缩,保留最近 4 份 |
## 🛠️ 相关技能
- Proxmox VE 管理(VM 创建、资源池、存储)
- 网络架构(隔离网桥、双宿主跳板机)
- 使用嵌套 KVM 的 Packer 构建流水线
- Chef cookbook 调试与依赖追踪
- 磁盘镜像格式转换 (VMDK 转换为 qcow2)
- 旧版操作系统兼容性故障排除
- 渗透测试方法论
- 基础设施文档编写
标签:Docker, Metasploitable, OPA, PE 加载器, Proxmox VE, TGT, Windows 11, 入侵检测系统, 双宿主机, 安全实验室, 安全数据湖, 安全架构, 安全防御评估, 插件系统, 攻防演练, 数据展示, 红队, 网络分段, 网络安全实训, 网络安全实验环境, 网络安全审计, 网络隔离, 虚拟化, 零信任网络, 靶场