Vulhub / Docker 靶场搭建指南
admin
2026-10-27 03:16
37人看过
免费
# Vulhub + Docker 靶场搭建指南(Linux 版,推荐 Ubuntu / Debian,也附CentOS7说明)
> Vulhub:预编译漏洞环境集合,基于docker-compose一键拉起漏洞靶场,用于Web/内网漏洞复现、渗透练习。
> ⚠️ 重要提醒:**仅在本地虚拟机/个人测试环境使用,禁止在公网部署,禁止未经授权对任何外部IP进行渗透测试**。
## 一、环境前置要求
- 操作系统:Ubuntu 20.04/22.04 推荐;CentOS7/8 可用
- 硬件:内存 ≥4G,建议8G;磁盘预留至少20G空间(镜像占用大)
- 关闭宿主机防火墙/放行本地网段,虚拟机建议NAT模式
## 二、安装 Docker & Docker Compose
### 方式1:Ubuntu/Debian
```bash
# 更新软件源
apt update && apt upgrade -y
# 安装依赖
apt install ca-certificates curl git -y
# 安装docker官方源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
# 启动docker并设置开机自启
systemctl start docker
systemctl enable docker
# 将当前用户加入docker组(免sudo执行docker命令,需要重新登录生效)
usermod -aG docker $USER
```
### 方式2:CentOS7
```bash
yum install -y yum-utils git
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io -y
systemctl start docker
systemctl enable docker
usermod -aG docker $USER
# centos7 需要单独安装 docker-compose
yum install python3-pip -y
pip3 install docker-compose
```
### 验证安装
```bash
docker --version
docker compose version
```
## 三、下载 Vulhub 源码
```bash
git clone https://github.com/vulhub/vulhub.git
cd vulhub
# 查看漏洞目录,所有漏洞按项目分类
ls
```
> 国内访问github慢:可以使用国内镜像fork地址下载。
## 四、使用靶场基础操作(核心命令)
进入**对应漏洞目录**,例如 `spring4shell`
```bash
cd vulhub/spring/spring4shell
# 启动环境,后台拉取镜像并启动容器
docker compose up -d
```
- `-d` 后台守护运行,不占用终端
- 首次执行会自动下载漏洞镜像,网络慢会耗时较长
### 查看容器状态
```bash
docker ps
```
### 查看靶场输出信息(很多漏洞会输出访问地址、账号密码)
```bash
docker compose logs -f
```
### 关闭靶场(保留镜像,下次可以直接up)
```bash
docker compose down
```
### 关闭靶场并且**删除容器+镜像**(释放磁盘)
```bash
docker compose down --rmi all
```
## 五、常用docker辅助命令(靶场维护)
```bash
# 查看本地所有镜像
docker images
# 删除无用镜像(清理磁盘)
docker image prune -a
# 进入容器内部(调试)
docker exec -it 容器ID /bin/bash
# 停止所有容器
docker stop $(docker ps -q)
# 删除所有容器
docker rm $(docker ps -aq)
```
## 六、常见问题排查
1. **docker compose up 超时,镜像拉取失败**
> 配置Docker国内镜像加速器,编辑 `/etc/docker/daemon.json`
```json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
```
```bash
# 重启docker生效
systemctl daemon-reload
systemctl restart docker
```
2. **端口冲突**
报错提示端口已占用:修改`docker-compose.yml`,将宿主机映射端口更换,例如 `8080:80` → `8081:80`
3. 内存不足:启动失败、容器自动退出
> 分配更多虚拟机内存,关闭其他占用内存容器。
4. 宿主机无法访问靶场网站
- 检查容器是否正常启动 `docker ps`
- 检查虚拟机防火墙:`ufw status`,临时关闭 `ufw disable`
- 确认容器内服务监听0.0.0.0,不是127.0.0.1
## 七、靶场使用安全红线(必看)
1. Vulhub漏洞环境存在高危漏洞,**绝对不要暴露到公网**;仅本地虚拟机使用
2. 所有漏洞环境仅用于学习、复现、代码审计练习
3. 任何未经授权对外网/企业资产进行渗透测试属于违法行为
## 八、推荐优先复现的漏洞清单(Web渗透入门)
- struts2系列漏洞
- Spring4Shell / SpringBoot漏洞
- Fastjson 反序列化
- ThinkPHP 多版本漏洞
- Log4j2 远程代码执行
- PHP文件包含、SQL注入、文件上传靶场
版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载或以其他方式使用本站原创内容。