刚开始学网络安全的时候,我最大的困扰就是找不到合适的练习环境。直接在真实网站上测试?那是违法的。用在线靶场?经常遇到访问不稳定或者功能受限的问题。直到发现了Vulfocus这个神器,我才真正找到了安全学习的正确打开方式。
Vulfocus是一个基于Docker的漏洞集成平台,它把各种常见漏洞环境打包成Docker镜像,让你可以一键启动各种漏洞场景。想象一下,你有一个私人实验室,里面摆满了各种精心设计的"漏洞玩具",想怎么玩就怎么玩,完全不用担心法律风险或者影响他人。
相比在线靶场,本地部署的Vulfocus有几个不可替代的优势:
Vulfocus支持主流Linux发行版,我个人推荐使用Ubuntu,因为它的包管理更友好。不过为了照顾不同用户,我会分别介绍CentOS和Ubuntu下的安装方法。
重要提示:无论哪种系统,都建议使用纯净环境,避免已有Docker安装导致冲突。如果之前装过Docker,可以先执行卸载:
bash复制# CentOS
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# Ubuntu
sudo apt-get remove docker docker-engine docker.io containerd runc
在CentOS上,我建议直接使用官方脚本安装,比yum源里的版本更新:
bash复制# 安装必要工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker官方仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker引擎
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 验证安装
sudo docker --version
Ubuntu用户可以直接用apt安装,但为了获得最新版本,还是推荐官方方式:
bash复制# 更新软件包索引
sudo apt-get update
# 安装依赖
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 安装Docker引擎
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# 验证安装
sudo docker --version
国内用户直接拉取镜像可能会很慢,这里分享几个实测可用的加速源:
bash复制# 创建或修改daemon.json
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
EOF
# 重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
官方镜像可以直接拉取,但国内用户可能会遇到网络问题。这里分享一个实测有效的解决方案:
bash复制# 使用代理镜像源拉取
docker pull dockerproxy.com/vulfocus/vulfocus:latest
# 重命名为官方镜像名称
docker tag dockerproxy.com/vulfocus/vulfocus:latest vulfocus/vulfocus:latest
# 删除代理镜像(可选)
docker rmi dockerproxy.com/vulfocus/vulfocus:latest
启动命令看似简单,但有几个关键参数需要注意:
bash复制docker run -d -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=你的服务器IP vulfocus/vulfocus
解释下这些参数:
-d:后台运行-p 80:80:将容器80端口映射到主机80端口-v /var/run/docker.sock:/var/run/docker.sock:这是关键!让Vulfocus能管理其他Docker容器-e VUL_IP=你的服务器IP:设置访问IP,如果是本地就填127.0.0.1启动完成后,打开浏览器访问http://你的服务器IP,你会看到登录界面。默认账号密码都是admin,强烈建议首次登录后立即修改密码。
登录后,你可以看到Vulfocus的仪表盘。这里有几个实用功能:
Vulfocus会创建两类容器:平台本身和各个漏洞环境。管理它们需要一些技巧:
bash复制# 查看所有运行中的容器
docker ps
# 查看Vulfocus平台容器ID
docker ps | grep vulfocus
# 停止特定漏洞环境
docker stop 容器ID
# 删除不再需要的环境
docker rm 容器ID
定期备份是个好习惯,特别是当你自定义了一些环境后:
bash复制# 备份Vulfocus数据库
docker exec -it vulfocus容器ID sh -c "mongodump --out /tmp/backup"
docker cp vulfocus容器ID:/tmp/backup ./vulfocus_backup
# 恢复备份
docker cp ./vulfocus_backup vulfocus容器ID:/tmp/backup
docker exec -it vulfocus容器ID sh -c "mongorestore --drop /tmp/backup"
问题1:无法启动漏洞环境
docker logs vulfocus容器ID问题2:网页访问缓慢
问题3:登录后空白页
curl http://localhost/api/当熟悉基础用法后,你可以开始创建自己的漏洞环境。Vulfocus支持自定义Docker镜像,只需要遵循一些简单规则:
这里有个简单的示例:
dockerfile复制# 基础镜像
FROM ubuntu:20.04
# 安装必要软件
RUN apt-get update && apt-get install -y \
vulnerable-package \
&& rm -rf /var/lib/apt/lists/*
# 暴露服务端口
EXPOSE 80
# 启动命令
CMD ["/usr/sbin/vulnerable-service"]
然后在同一目录创建vulfocus.json:
json复制{
"name": "我的自定义漏洞",
"description": "这是一个演示用的漏洞环境",
"level": "中等",
"type": "Web漏洞",
"author": "你的名字"
}
最后构建并上传:
bash复制docker build -t my-vuln-image .
docker tag my-vuln-image 你的仓库/my-vuln-image
docker push 你的仓库/my-vuln-image
在Vulfocus管理后台添加这个镜像,就可以和其他官方环境一样使用了。