文章目录
-
- 一、为什么你需要一台「自己的靶场」?
- 二、先定架构:一张图看懂整体
- 三、硬件与软件要求
-
- [3.1 宿主机最低配置](#3.1 宿主机最低配置)
- [3.2 虚拟化平台选型](#3.2 虚拟化平台选型)
- [3.3 开启 CPU 虚拟化](#3.3 开启 CPU 虚拟化)
- [四、Step 1:创建隔离网络](#四、Step 1:创建隔离网络)
-
- [4.1 VirtualBox Host-Only 网络](#4.1 VirtualBox Host-Only 网络)
- [4.2 网络模式怎么选?](#4.2 网络模式怎么选?)
- [五、Step 2:部署攻击机 --- Kali Linux](#五、Step 2:部署攻击机 — Kali Linux)
-
- [5.1 获取镜像](#5.1 获取镜像)
- [5.2 创建 VM(若用 ISO 安装)](#5.2 创建 VM(若用 ISO 安装))
- [5.3 装完必做:更新与基础工具](#5.3 装完必做:更新与基础工具)
- [5.4 打快照](#5.4 打快照)
- [六、Step 3:部署靶机 --- 三大入门标配](#六、Step 3:部署靶机 — 三大入门标配)
-
- [6.1 Metasploitable 2(综合漏洞 Linux)](#6.1 Metasploitable 2(综合漏洞 Linux))
- [6.2 DVWA(Web 漏洞靶场)](#6.2 DVWA(Web 漏洞靶场))
- [6.3 Windows 漏洞靶机(练内网/域渗透进阶)](#6.3 Windows 漏洞靶机(练内网/域渗透进阶))
- [七、Step 4:Docker 快速靶场(省内存利器)](#七、Step 4:Docker 快速靶场(省内存利器))
-
- [7.1 安装 Docker](#7.1 安装 Docker)
- [7.2 Vulhub --- 按 CVE 练漏洞](#7.2 Vulhub — 按 CVE 练漏洞)
- [7.3 其他 Docker 靶场](#7.3 其他 Docker 靶场)
- [八、Step 5:可选 --- 迷你蓝队环境](#八、Step 5:可选 — 迷你蓝队环境)
- [九、推荐网络 IP 规划](#九、推荐网络 IP 规划)
- 十、搭完后的「验收清单」
- 十一、三种配置方案(按内存选)
-
- [方案 A:轻量入门(16 GB 内存)](#方案 A:轻量入门(16 GB 内存))
- [方案 B:标准练习(32 GB 内存)](#方案 B:标准练习(32 GB 内存))
- [方案 C:域渗透进阶(32~64 GB)](#方案 C:域渗透进阶(32~64 GB))
- 十二、注意点
-
- [12.1 踩坑记录(真实 FAQ)](#12.1 踩坑记录(真实 FAQ))
- [12.2 安全与合规底线](#12.2 安全与合规底线)
- [12.3 资源下载速查](#12.3 资源下载速查)
- [12.4 VirtualBox 常用命令(宿主机终端)](#12.4 VirtualBox 常用命令(宿主机终端))
- [12. 5 最小 docker-compose 靶场示例](#12. 5 最小 docker-compose 靶场示例)
- [十三、一台电脑靶场 核心记忆](#十三、一台电脑靶场 核心记忆)
一、为什么你需要一台「自己的靶场」?
很多人学安全的路径是这样的:
text
看视频 → 装 Kali → 对着公网随便扫 → 被封 IP / 惹麻烦 → 放弃
问题不在工具,在于没有一块安全、可重置、可反复折腾的练习场。
一块合格的本地靶场,应该满足:
| 需求 | 说明 |
|---|---|
| 合法 | 目标机器归你所有,或专为练习设计 |
| 可重复 | 搞坏了?恢复快照,5 分钟重来 |
| 够完整 | 至少有「攻击机 + 靶机 + 隔离网络」 |
| 可扩展 | 今天练 Web,明天练内网域渗透 |
| 不扰民 | 与日常上网、公司网络隔离 |
本文目标:用一台普通电脑,搭出一套能支撑 80% 入门~中级练习的靶场 ,总成本 0 元(全开源),半天可搭完。
二、先定架构:一张图看懂整体
text
┌─────────────────────────────────────┐
│ 宿主机(你的电脑) │
│ Windows / macOS / Linux │
└─────────────────────────────────────┘
│
┌─────────────────┴─────────────────┐
│ 虚拟化平台 │
│ VMware / VirtualBox / Hyper-V │
└─────────────────┬─────────────────┘
│
┌───────────────────────────┼───────────────────────────┐
│ │ │
┌──────┴──────┐ ┌───────┴───────┐ ┌───────┴───────┐
│ 攻击机 │ │ 靶机 A │ │ 靶机 B │
│ Kali Linux │◄──ping────►│ Metasploitable│ │ DVWA / Win │
│ 192.168.56.10│ │ 192.168.56.20 │ │ 192.168.56.30 │
└─────────────┘ └───────────────┘ └───────────────┘
│ │ │
└───────────────────────────┴───────────────────────────┘
Host-Only 隔离网络
(192.168.56.0/24,不出公网)
核心原则:
- 攻击机 1 台:Kali(工具最全)
- 靶机 ≥ 2 台:Linux 漏洞机 + Web 漏洞环境
- 网络隔离 :Host-Only 或 Internal Network,不要把靶机桥接到家庭 WiFi
- 快照习惯:每台 VM 建完立刻打快照
三、硬件与软件要求
3.1 宿主机最低配置
| 项目 | 最低 | 推荐 | 说明 |
|---|---|---|---|
| CPU | 4 核 | 8 核+ | 需支持虚拟化(Intel VT-x / AMD-V) |
| 内存 | 16 GB | 32 GB | 同时开 3 台 VM 至少占 8~12 GB |
| 硬盘 | 100 GB 空闲 | 256 GB+ SSD | 每个靶机镜像 2~10 GB |
| 系统 | Win10+/macOS/Linux | --- | 本文三套方案均覆盖 |
3.2 虚拟化平台选型
| 平台 | 优点 | 缺点 | 推荐人群 |
|---|---|---|---|
| VirtualBox | 免费、跨平台、够用 | 性能略弱、快照慢 | 入门首选 |
| VMware Workstation | 性能好、快照快 | 收费(有 Player 免费版) | 长期练习 |
| Hyper-V | Win 专业版内置 | macOS 不可用 | 纯 Windows 用户 |
| UTM | macOS 友好 | 生态较小 | M 系列 Mac |
本文以 VirtualBox 为主演示(免费、全平台),VMware 操作类似。
3.3 开启 CPU 虚拟化
若 VM 创建失败或极卡,进 BIOS/UEFI 确认已开启:
- Intel:Intel Virtualization Technology (VT-x)
- AMD:SVM Mode
Windows 用户额外注意:若装了 Hyper-V、WSL2、Docker Desktop,可能与 VirtualBox 冲突,需二选一或改用 VMware。
四、Step 1:创建隔离网络
4.1 VirtualBox Host-Only 网络
text
VirtualBox → 管理 → 全局设定 → 网络 → 添加 Host-Only 网络
推荐配置:
网卡名称:vboxnet0
IPv4:192.168.56.1
掩码:255.255.255.0
DHCP:可开启(自动分配 192.168.56.101~200)
4.2 网络模式怎么选?
| 模式 | 靶场用途 | 风险 |
|---|---|---|
| Host-Only | ✅ 推荐:仅宿主机与 VM 互通 | 低 |
| Internal Network | ✅ 多 VM 互访、宿主机不直连 | 低 |
| NAT | 靶机可上网更新,攻击机也可 | 中(误操作时) |
| 桥接(Bridged) | ❌ 靶机与局域网同网段 | 高,不推荐 |
建议组合:
- 攻击机 Kali:NAT + Host-Only (既能
apt update,又能打靶) - 靶机:仅 Host-Only(完全隔离,更安全)
五、Step 2:部署攻击机 --- Kali Linux
5.1 获取镜像
官网:https://www.kali.org/get-kali/#kali-virtual-machines
推荐直接下载 Kali Linux VirtualBox / VMware 预构建镜像(省安装时间)。
| 版本 | 大小 | 说明 |
|---|---|---|
| Kali 2024.x VirtualBox | ~3 GB | 开箱即用 |
| Kali 2024.x ISO | ~4 GB | 需自己安装 |
默认账号:kali / kali(首次登录建议改密码)。
5.2 创建 VM(若用 ISO 安装)
text
名称:Kali-Attacker
类型:Linux → Debian (64-bit)
内存:4096 MB(最低 2048)
硬盘:80 GB 动态分配
网络:
网卡1 → NAT(上网)
网卡2 → Host-Only (vboxnet0)
5.3 装完必做:更新与基础工具
bash
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y git curl wget nmap dirsearch seclists
验证网络:
bash
# 能上网
ping -c 2 8.8.8.8
# 能看到 Host-Only 网段
ip a | grep 192.168.56
5.4 打快照
text
快照名:clean-kali-2024
说明:全新更新完毕,未开始任何实验
养成习惯:每次实验前「恢复到 clean 快照 → 克隆或再快照 → 再开干」。
六、Step 3:部署靶机 --- 三大入门标配
6.1 Metasploitable 2(综合漏洞 Linux)
用途:练端口扫描、服务漏洞、Metasploit 基础、提权。
| 项目 | 说明 |
|---|---|
| 下载 | SourceForge 搜 Metasploitable 2 或 Rapid7 官方 |
| 大小 | ~800 MB |
| 默认账号 | msfadmin / msfadmin |
| 已知问题 | 故意含大量漏洞,绝不能联网暴露 |
网络配置:
text
仅 Host-Only → 192.168.56.20(可设静态 IP 或 DHCP)
第一个实验(在 Kali 上):
bash
nmap -sV 192.168.56.20
# 应看到 FTP、SSH、Telnet、HTTP、MySQL、PostgreSQL 等大量开放端口
快照名:metasploitable2-clean
6.2 DVWA(Web 漏洞靶场)
用途:SQL 注入、XSS、CSRF、文件上传等 OWASP 经典漏洞。
方式 A:Docker 一键(推荐,轻量)
宿主机或 Kali 上安装 Docker 后:
bash
docker run -d --name dvwa -p 8080:80 vulnerables/web-dvwa
浏览器访问:http://127.0.0.1:8080
默认:admin / password → 点 Create / Reset Database → 安全级别选 Low。
方式 B:装成独立 VM
在 Ubuntu 22.04 上部署 LAMP + DVWA 源码,适合练「手工搭环境」。
方式 C:Metasploitable 2 内置
Metasploitable 2 已带 Mutillidae、Damn Vulnerable Web App 等,可一并练习。
网络注意:Docker 版在宿主机跑时,Kali 通过 Host-Only 访问宿主机 IP 的 8080 端口;纯隔离环境建议 Docker 也跑在 Kali 或单独 Linux 靶机内。
6.3 Windows 漏洞靶机(练内网/域渗透进阶)
用途:Active Directory、Kerberos、Windows 提权、BloodHound。
| 镜像 | 说明 | 资源占用 |
|---|---|---|
| Metasploitable 3 | 多组件 Windows/Linux 场景 | 高 |
| GOAD (Game of Active Directory) | 域环境自动化搭建 | 高(需 16GB+ 内存) |
| Windows 10 评估版 + 故意弱配置 | 自建 | 中 |
入门可先跳过,等 Linux + Web 练熟再上。若内存 ≥ 32 GB,推荐 GOAD:
bash
# GitHub: Orange-Cyberdefense/GOAD
# 使用 Vagrant + VirtualBox 一键起域环境
七、Step 4:Docker 快速靶场(省内存利器)
内存紧张时,不必所有靶场都开 VM,Docker 可快速起/毁:
7.1 安装 Docker
bash
# Kali / Ubuntu
sudo apt install -y docker.io
sudo systemctl enable docker --now
sudo usermod -aG docker $USER
# 重新登录生效
7.2 Vulhub --- 按 CVE 练漏洞
bash
git clone https://github.com/vulhub/vulhub.git
cd vulhub/struts2/s2-045 # 举例:Struts2 漏洞
docker compose up -d
# 访问 http://宿主机IP:8080
docker compose down -v # 练完即毁
覆盖:Struts2、Shiro、Weblogic、Tomcat、Redis 未授权、ThinkPHP 等 100+ 场景。
7.3 其他 Docker 靶场
| 项目 | 用途 |
|---|---|
vulnerables/web-dvwa |
DVWA |
bkimminich/juice-shop |
OWASP Juice Shop 现代 Web |
hacksploit/seccurecorp |
小型综合场景 |
ctftraining/practitioner |
CTF 练习 |
Docker 靶场原则:练完 down -v,不要长期暴露端口。
八、Step 5:可选 --- 迷你蓝队环境
想同时练检测与响应,可在宿主机或单独 VM 加轻量组件:
text
┌─────────────┐ 日志/流量 ┌─────────────┐
│ 靶机 │ ───────────────► │ ELK / Wazuh │
│ 被攻击 │ │ 或 Security Onion │
└─────────────┘ └─────────────┘
| 方案 | 内存需求 | 适合 |
|---|---|---|
| Wazuh + Docker | 4 GB+ | 主机日志、简单告警 |
| Elastic Stack (单节点) | 8 GB+ | 日志检索、可视化 |
| Security Onion | 16 GB+ | 流量 + 日志一体 |
入门阶段不必强求,等红队基础打透后再加,避免一开始被 SIEM 配置拖垮。
九、推荐网络 IP 规划
text
192.168.56.0/24 Host-Only 靶场网段
192.168.56.1 VirtualBox Host-Only 网关(宿主机)
192.168.56.10 Kali 攻击机(静态)
192.168.56.20 Metasploitable 2
192.168.56.30 Ubuntu-DVWA / Web 靶机
192.168.56.40 Windows 靶机(进阶)
192.168.56.50 域控 DC(GOAD 等)
192.168.56.100+ DHCP 池
Kali 设静态 IP 示例(/etc/network/interfaces 或 NetworkManager):
bash
# 示例:Host-Only 网卡 eth1
sudo nmcli con mod "Wired connection 2" ipv4.addresses 192.168.56.10/24
sudo nmcli con mod "Wired connection 2" ipv4.method manual
sudo nmcli con up "Wired connection 2"
十、搭完后的「验收清单」
按顺序自测,全部通过 = 靶场可用:
text
□ 1. Kali 能 ping 通 192.168.56.20(Metasploitable)
□ 2. nmap 扫描靶机,能看到 10+ 开放端口
□ 3. 浏览器访问 DVWA,能登录并改 Security Level
□ 4. Metasploit 能连上并 exploit 一个基础模块(如 vsftpd)
□ 5. 靶机无法 ping 通你手机/路由器(确认未桥接泄露)
□ 6. 每台 VM 都有 clean 快照,恢复测试通过
□ 7. (可选)Docker vulhub 起一个漏洞,访问后成功 down 掉
第一个完整实验建议:
text
Kali → nmap 扫描 Metasploitable → msfconsole → exploit/unix/ftp/vsftpd_234_backdoor
→ 拿到 shell → whoami → 恢复快照重来
十一、三种配置方案(按内存选)
方案 A:轻量入门(16 GB 内存)
text
Kali 4 GB
Metasploitable2 1 GB
DVWA (Docker) 512 MB
宿主机剩余 ≥ 10 GB
适合:端口扫描、基础 Web、Metasploit 入门。
方案 B:标准练习(32 GB 内存)
text
Kali 4 GB
Metasploitable2 1 GB
Ubuntu + DVWA 2 GB
Windows 10 靶机 4 GB
Docker 漏洞栈 按需
适合:Web + 内网 + Windows 基础。
方案 C:域渗透进阶(32~64 GB)
text
Kali 4 GB
GOAD 域环境 16~24 GB(DC + 多台成员机)
适合:AD 攻防、BloodHound、Kerberos 攻击。
十二、注意点
12.1 踩坑记录(真实 FAQ)
| 问题 | 原因 | 解决 |
|---|---|---|
| VM 极卡 | 内存分太少 / 虚拟化未开 | 加 RAM、开 VT-x |
| Kali 不能上网 | 只配了 Host-Only | 加 NAT 网卡 |
| 靶机 ping 不通 | 防火墙 / 网段不一致 | ufw disable(仅靶场)、检查 IP |
| Metasploit exploit 失败 | 靶机 IP 变了 | 设静态 IP 或 DHCP 保留 |
| Docker 端口访问不了 | 绑定 127.0.0.1 | 改 -p 0.0.0.0:8080:80 |
| macOS M 芯片装 x86 VM | 架构不兼容 | 用 ARM 版 Kali 或 UTM |
| 搞完系统崩了 | 没打快照 | 恢复 clean 快照 |
| 杀毒软件报毒 | 靶机含恶意样本 | 靶场目录加白名单,别在生产机练 |
12.2 安全与合规底线
text
✅ 可以做:
· 本地 VM / Docker 隔离靶场内的任意测试
· HackTheBox、TryHackMe 等授权平台
· 自己拥有或有书面授权的系统
❌ 禁止做:
· 扫描 / 攻击公网 IP、学校或公司内未授权机器
· 把 Metasploitable 以桥接模式暴露到家庭路由器
· 在靶场练成的 exploit 用于真实目标
靶场网络隔离不是可选项,是法律与道德底线。
12.3 资源下载速查
| 资源 | 地址 |
|---|---|
| Kali 预构建 VM | https://www.kali.org/get-kali/#kali-virtual-machines |
| VirtualBox | https://www.virtualbox.org/wiki/Downloads |
| Metasploitable 2 | SourceForge / Rapid7 官方 |
| DVWA 源码 | https://github.com/digininja/DVWA |
| Vulhub | https://github.com/vulhub/vulhub |
| GOAD 域环境 | https://github.com/Orange-Cyberdefense/GOAD |
| Juice Shop | https://github.com/juice-shop/juice-shop |
12.4 VirtualBox 常用命令(宿主机终端)
bash
# 列出 VM
VBoxManage list vms
# 启动 / 关闭
VBoxManage startvm "Kali-Attacker" --type headless
VBoxManage controlvm "Kali-Attacker" poweroff
# 快照
VBoxManage snapshot "Metasploitable2" take clean-base
VBoxManage snapshot "Metasploitable2" restore clean-base
# 查看 Host-Only 网络
VBoxManage list hostonlyifs
12. 5 最小 docker-compose 靶场示例
保存为 lab-dvwa-compose.yml:
yaml
services:
dvwa:
image: vulnerables/web-dvwa
ports:
- "8080:80"
restart: unless-stopped
bash
docker compose -f lab-dvwa-compose.yml up -d
# 练完
docker compose -f lab-dvwa-compose.yml down -v
十三、一台电脑靶场 核心记忆
text
┌────────────────────────────────────────────────────────────┐
│ 一台电脑靶场 核心记忆 │
├────────────────────────────────────────────────────────────┤
│ 攻击机:Kali(NAT + Host-Only) │
│ 靶 机:Metasploitable 2 + DVWA(Host-Only 隔离) │
│ 加速器:Docker + Vulhub(按 CVE 即练即毁) │
│ 进 阶:Windows / GOAD 域环境(32GB+ 内存) │
│ 习 惯:快照 · 隔离 · 不碰未授权目标 │
└────────────────────────────────────────────────────────────┘