靶场是什么
靶场是在隔离网络里按需拉起的一批『刻意带漏洞』的应用与系统,用来做渗透练习、检测规则验证、扫描器调参和新人培训。它替代的是『拿生产系统练手』:全部操作风险被限制在可随时销毁的环境里。常见开源靶场有 DVWA、OWASP Juice Shop、WebGoat,集群场景还有 K8s 靶场;部署多见于 Linux 宿主上的 Docker/Compose,或独立 K8s 命名空间。
基本信息
| 部署方式 | Docker/Compose 或独立 K8s 命名空间 |
|---|---|
| 网络 | 独立 VLAN/VPC,不与办公网生产网互通 |
| 访问 | 仅跳板机或固定出口,禁止公网暴露 |
| 数据 | 全部使用模拟数据 |
| 生命周期 | 按演练周期开关机,结束快照归档 |
典型使用场景
- 新人培训:在受控环境里从零练习注入、越权、文件上传等手法
- 检测验证:确认 WAF/IDS 规则对某类攻击是否真的告警,而不是只看厂商文档
- 扫描器调参:用已知漏洞的靶场测误报与漏报,再决定投产参数
- 红蓝演练:攻击侧与防守侧在同一环境里对练,复盘有据可查
- 工具升级回归:扫描器或规则库升级后先跑靶场,确认检出能力没有退化
隔离部署示例
隔离部署示例
docker network create --internal range-net # 内部网络,默认无外网出口
docker run -d --name juice --network range-net -p 127.0.0.1:3000:3000 bkimminich/juice-shop
# 只绑 127.0.0.1,经跳板机访问;不要写成 -p 3000:3000 直接对外
docker run -d --name dvwa --network range-net -p 127.0.0.1:8080:80 vulnerables/web-dvwa
# 演练结束即销毁:docker rm -f juice dvwa(环境本身无需要保留的数据)隔离要点与检查方式
| 维度 | 要求 | 检查方式 |
|---|---|---|
| 网络 | 独立网段,不通办公网与生产网 | 从靶场主机反向探测内网地址应不可达 |
| 访问 | 只经跳板机或固定出口 | 外部扫描靶场公网地址应无开放端口 |
| 数据 | 全部为模拟数据 | 抽查库表,确认不含真实用户信息 |
| 生命周期 | 演练期外处于关机状态 | 核对开关机记录与快照归档 |
靶场里练出来的操作能力只能在授权环境使用:这条边界要写进演练准入说明,并由参与人签署确认。
长期不更新的靶场会与工具版本脱节(老漏洞新扫描器不再检出);建议按季度重建基础镜像,并在文档里固定镜像 digest 保证可复现。