零学习成本使用Docker搭建靶场

一、使用背景

本文将介绍如何零学习成本的使用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

💰

Title:零学习成本使用Docker搭建靶场

Count:1.4k

Author:zcsmile

Created At:2024-03-07, 15:24:58

Updated At:2024-03-07, 15:26:47

Url:https://zcsmile.github.io/2024/03/07/7/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

Help us with donation