一、使用背景
本文将介绍如何零学习成本的使用Docker进行环境搭建漏洞复现。
更多介绍及详细用法参考文章:Re:从零开始的Docker使用生活
二、安装Docker
1、一键安装
在未安装过Docker的机器上,root权限执行如下命令即可一键安装最新版Docker:
1 | curl -s https://get.docker.com/ | sh |
如果你已经安装过老版本Docker(且不是用这个一键安装脚本安装的),请先卸载Docker(例如sudo apt purge –autoremove docker.io)。
注:docker是一个系统服务,所以,安装完成后可能需要手工启动服务:service start docker
,否则会出现连接失败的情况。同样,如果docker没有自启动,你也需要手工启动docker服务。如果你是使用一键安装工具安装的docker,则docker会自动启动。
三、安装docker-compose
Docker-compose用于组合服务与内网。有部分环境涉及到多个容器,且不同环境开启的端口、目录也不相同,所以Vulhub选择使用docker-compose做环境一键化管理工具。用户不再需要学习docker命令的各种参数与用法,只需要简单地执行docker-compose up -d即可启动容器。
1、安装PIP
Docker-compose基于Python开发,所以我们可以使用pip进行安装。
当然,如果你的环境中没有安装pip,还需要先安装pip。
推荐使用如下命令进行安装,这种方式将会少安装很多不需要的依赖:
1 | curl -s https://bootstrap.pypa.io/get-pip.py | python3 |
2、安装docker-compose
有pip后即可直接使用pip安装docker-compose:
1 | pip install docker-compose |
安装完成后,执行docker-compose -v
,有返回则说明安装成功。
四、使用Docker快速搭建漏洞复现环境
既然说了是零学习成本使用Docker,那么就不介绍纯命令行的用法
1、结合Vulhub快速搭建漏洞环境
Vulhub的搭建详见《使用Vulhub一键搭建漏洞测试靶场》
vulhub官网地址:https://vulhub.org/
(1)首先拉取Vulhub到本地任意目录:
1 | git clone https://github.com/vulhub/vulhub.git |
如果拉取速度太慢,可以直接下载master分支的压缩包:Vulhub.zip。
(2)访问漏洞环境页面,搜索想要复现的漏洞环境
(3)确定对应环境的路径
这里拿Apache Shiro反序列化漏洞为例,可以看到路径Path:shiro/CVE-2016-4437
(4)跳转至第一步拉取到本地的vulhub对应路径
本文vulhub
是存放在/root
目录下,那么便跳转至/root/vulhub/shiro/CVE-2016-4437
1 | cd /root/vulhub/shiro/CVE-2016-4437 |
(5)看页面提示启动对应环境
(6)访问服务对应端口
(7)最后漏洞复现完成后移除环境
在关闭及移除环境的时候,也需要在对应目录下。
我们执行docker-compose up -d
后,不要离开当前目录即可,漏洞测试结束后,执行如下命令移除环境:
1 | docker-compose down |
2、使用镜像管理工具搭建和管理docker镜像
这里推荐两款管理工具
- Portainer
- 宝塔
Portainer在《Re:从零开始的Docker使用生活》中有详细介绍,本文介绍一下宝塔的Linux管理插件
(1)宝塔的安装
官方提供了在线以及一键安装脚本等多种方式方式:
https://www.bt.cn/new/download.html
如果是购买的云服务厂商的服务器,还可以一键设置宝塔面板
(2)宝塔docker管理插件
(3)镜像拉取
在dockerhub中搜索想要使用的镜像:https://hub.docker.com/
打开镜像页面获取镜像名sagikazarmark/dvwa
最后点击从仓库拉取镜像,并填入镜像名
拉取成功后可以对镜像进行管理
(4)容器启动
点击容器-添加容器
容器这里随便填,镜像勾选刚才拉取的镜像,端口把需要映射出来的端口填入
如何确定需要映射出来的端口,可以通过查看dockerhub上镜像的相关信息获知
可以看到本文用到的镜像有3306、80两个端口,3306是mysql服务,80是web服务
这里我们只需要web服务,那便把80映射出来
最后点击加号添加映射端口,点击添加启动容器
容器启动后可以可以进行管理
访问映射出来的3333端口查看服务
到这里基础的使用步骤,接下来介绍一下怎么修改容器,以及打包新镜像,推送至自己的仓库
3、使用宝塔修改、打包、推送docker容器/镜像
(1)点击容器目录,进入容器的目录管理页面
(2)修改容器文件
接下来就可以和正常的操作系统一样修改文件内容,如下图修改web目录下的源码
(3)打包修改过后的容器
点击容器名
输入相关镜像信息并点击生成镜像
(4)推送镜像前首先登录自己的仓库
点击仓库
-添加仓库
仓库地址就填docker.io
其他填写自己的仓库信息
(5)推送镜像到自己的仓库
打开镜像管理,找到刚才打包的镜像,点击推送
选择自己的仓库,确认推送
查看dockerhub上刚推送的镜像
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1975763359@qq.com