头图:https://cdn.naraku.cn/imgs/Vulhub-Portainer-0.jpg
摘要:搭建Vulhub漏洞测试靶场并使用Portainer进行可视化管理

首发于Bugfor - 使用Portainer管理Vulhub,转载需注明出处。

安装 Docker

  • yum相关配置

    1. $ sudo yum update # 使用root权限登录 Centos,确保 yum 包更新到最新
    2. $ sudo yum remove docker docker-common docker-selinux docker-engine # 如果安装过旧版本Docker,需要卸载
    3. $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装需要的软件包
    4. $ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 设置yum源
  • 安装Docker

    1. $ yum list docker-ce --showduplicates | sort -r # 查看所有仓库中所Docker版本
    2. $ sudo yum install docker-ce-18.06.3.ce # 安装指定版本
    3. # 启动并加入开机启动
    4. $ sudo systemctl start docker
    5. $ sudo systemctl enable docker
  • 验证。有ClientService两部分表示Docker安装启动都成功了

    1. $ docker version
    2. ###
    3. Client:
    4. Version: 18.06.3-ce
    5. API version: 1.38
    6. Go version: go1.10.3
    7. Git commit: d7080c1
    8. Built: Wed Feb 20 02:26:51 2019
    9. OS/Arch: linux/amd64
    10. Experimental: false
    11. Server:
    12. Engine:
    13. Version: 18.06.3-ce
    14. API version: 1.38 (minimum version 1.12)
    15. Go version: go1.10.3
    16. Git commit: d7080c1
    17. Built: Wed Feb 20 02:28:17 2019
    18. OS/Arch: linux/amd64
    19. Experimental: false
    20. ###
  • 换国内源,国外服务器可忽略

    1. $ vim /etc/docker/daemon.json
    2. {
    3. "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    4. }
    5. $ sudo systemctl daemon-reload
    6. $ sudo systemctl restart docker

    部署 Portainer

  • 下载

    1. $ docker search portainer
    2. $ docker pull docker.io/portainer/portainer
  • 汉化。在根目录/下新建public,并把 Portainer-CN.zip 汉化包解压到其中

  • 运行

    1. $ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /public:/public portainer/portainer
  • 查看容器

    1. $ docker ps -a
    2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3. d5abd09ddda7 portainer/portainer "/portainer" 8 seconds ago Up 6 seconds 0.0.0.0:9000->9000/tcp quirky_zhukovsky
  • 最后访问http://ip:9000

  • 参考:Docker管理面板Portainer中文汉化项目

    运行 Vulhub

  • 点击左侧堆栈 > 添加堆栈,自定义靶场名称以及输入对应的compose配置即可(相应文件已在文末打包),最后拉到最下方点击Deploy the stack,等待部署

  • 部署成功后,默认运行在8080端口,如果同时部署多个漏洞靶场,可在左侧点击容器,查看运行中的容器具体的映射端口

使用Portainer管理Vulhub - 图1

关于 Compose

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

使用Portainer管理Vulhub - 图2

  • 自己打包也可以,将此以下脚本放到Vulhub仓库所在目录下运行即可

    1. import os
    2. path = os.getcwd()
    3. for root, dirs, files in os.walk(path):
    4. if "docker-compose.yml" in files:
    5. # print(root)
    6. file_name = root.split("\\")[-1] + ".yml" # 这里使用目录名代替docker-compose文件名
    7. # 读取
    8. with open(f"{root}\\docker-compose.yml", "r+") as f:
    9. compose_file = f.readlines()
    10. # 写入
    11. with open(file_name, "w+") as f:
    12. f.writelines(compose_file)

    其它

  • 说明:建议在闲置VPS上搭建漏洞环境,并且在测试完成后及时删除容器,切勿在存放重要数据的服务器或生产环境中使用!

  • 文件下载:请前往博客共享网盘下载