首发于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
  • 验证。有ClientService两部分表示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

运行 Vulhub

  • 点击左侧堆栈 > 添加堆栈,自定义靶场名称以及输入对应的compose配置即可(相应文件已在文末打包),最后拉到最下方点击Deploy the stack,等待部署
  • 部署成功后,默认运行在8080端口,如果同时部署多个漏洞靶场,可在左侧点击容器,查看运行中的容器具体的映射端口

Vulhub-Portainer-1

关于 Compose

  • 前面说到的compose文件即为每个漏洞靶场目录下的docker-compose.yml文件,这里我已将全部compose打包并按照对应靶场命名,有需要可自取
  • 使用时只需要在Vulhub文档中找到想开启的漏洞环境,查看该漏洞环境所在目录,根据目录名找到对应文件内容并按照前面的方法进行部署即可。如这里的AppWeb认证绕过漏洞对应的文件即为CVE-2018-8715.yml

Vulhub-Portainer-2

  • 自己打包也可以,将此以下脚本放到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)

其它 Download

  • 说明:建议在闲置VPS上搭建漏洞环境,并且在测试完成后及时删除容器,切勿在存放重要数据的服务器或生产环境中使用!
  • 文件下载:请前往博客共享网盘下载
如果觉得我的文章对你有帮助,请我吃颗糖吧~