头图:https://cdn.naraku.cn/imgs/Vulhub-Portainer-0.jpg
摘要:搭建Vulhub漏洞测试靶场并使用Portainer进行可视化管理
首发于Bugfor - 使用Portainer管理Vulhub,转载需注明出处。
安装 Docker
yum
相关配置$ sudo yum update # 使用root权限登录 Centos,确保 yum 包更新到最新
$ sudo yum remove docker docker-common docker-selinux docker-engine # 如果安装过旧版本Docker,需要卸载
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装需要的软件包
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 设置yum源
安装Docker
$ yum list docker-ce --showduplicates | sort -r # 查看所有仓库中所Docker版本
$ sudo yum install docker-ce-18.06.3.ce # 安装指定版本
# 启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
验证。有
Client
和Service
两部分表示Docker安装启动都成功了$ docker version
###
Client:
Version: 18.06.3-ce
API version: 1.38
Go version: go1.10.3
Git commit: d7080c1
Built: Wed Feb 20 02:26:51 2019
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.3-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: d7080c1
Built: Wed Feb 20 02:28:17 2019
OS/Arch: linux/amd64
Experimental: false
###
换国内源,国外服务器可忽略
$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
部署 Portainer
下载
$ docker search portainer
$ docker pull docker.io/portainer/portainer
汉化。在根目录
/
下新建public
,并把Portainer-CN.zip
汉化包解压到其中运行
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /public:/public portainer/portainer
查看容器
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d5abd09ddda7 portainer/portainer "/portainer" 8 seconds ago Up 6 seconds 0.0.0.0:9000->9000/tcp quirky_zhukovsky
最后访问
http://ip:9000
-
运行 Vulhub
点击左侧
堆栈 > 添加堆栈
,自定义靶场名称以及输入对应的compose
配置即可(相应文件已在文末打包),最后拉到最下方点击Deploy the stack
,等待部署- 部署成功后,默认运行在
8080
端口,如果同时部署多个漏洞靶场,可在左侧点击容器
,查看运行中的容器具体的映射端口
关于 Compose
- 前面说到的
compose
文件即为每个漏洞靶场目录下的docker-compose.yml
文件,这里我已将全部compose
打包并按照对应靶场命名,有需要可自取 - 使用时只需要在Vulhub文档中找到想开启的漏洞环境,查看该漏洞环境所在目录,根据目录名找到对应文件内容并按照前面的方法进行部署即可。如这里的
AppWeb认证绕过漏洞
对应的文件即为CVE-2018-8715.yml
自己打包也可以,将此以下脚本放到
Vulhub
仓库所在目录下运行即可import os
path = os.getcwd()
for root, dirs, files in os.walk(path):
if "docker-compose.yml" in files:
# print(root)
file_name = root.split("\\")[-1] + ".yml" # 这里使用目录名代替docker-compose文件名
# 读取
with open(f"{root}\\docker-compose.yml", "r+") as f:
compose_file = f.readlines()
# 写入
with open(file_name, "w+") as f:
f.writelines(compose_file)
其它
说明:建议在闲置VPS上搭建漏洞环境,并且在测试完成后及时删除容器,切勿在存放重要数据的服务器或生产环境中使用!
- 文件下载:请前往博客共享网盘下载