docker oracle漏洞,Docker是如何构建漏洞环境的?看这一篇就够了!

原标题:Docker是如何构建漏洞环境的?看这一篇就够了!

开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题;

运维人员利用 Docker 可以在隔离容器中并行运行、管理应用,获得更好的计算密度;

企业利用 Docker 可以构建敏捷的软件交付管道,更快、更安全、更可靠的为Linux和Windows Server应用发布新功能;

同时,Docker也可以用来快速重现一些漏洞实验环境。

本期“安仔课堂”,ISEC实验室的老师,为大家演示Docker是如何构建漏洞环境的。

1d4272238b20acf40ea4475a830d12b8.png

安装Docker

Windows

①Docker for Windows

前提需求:

Windows 10 pro x64

Microsoft Hyper-V

下载以下安装包安装即可:

2832eb274c3883a0ce335c8cbf7ae72c.png

需要注意的是,Hyper-V开启后“vmware workstation”将无法正常运行,会出现以下错误信息。

d0c00abb0b208d46d932031bc0e4134c.png

②Docker Toolbox

“Docker Toolbox”提供了一种在较旧的Windows系统上使用Docker的方法,它们不符合“Docker for Windows”应用程序的最低系统要求。

“Docker Toolbox”包括以下Docker工具:

Docker CLI客户端:运行“Docker Engine”来创建图像和容器

Docker Machine:可从Windows终端运行“Docker Engine”命令

Docker Compose:运行该“Docker-Compose”命令

Kitematic、Docker GUI

为Docker命令行环境预配置了“Docker QuickStart shell”

Oracle VM VirtualBox

下载以下安装包安装即可:

66698a99da032f9bde08be9dd1f5184a.png

安装“Docker Toolbox”时将会安装其他几个帮助程序:

适用于Windows的“Docker Client”

“Docker Toolbox”管理工具和ISO

Oracle VM VirtualBox

Git MSYS-git UNIX工具

如果您安装了以前版本的“VirtualBox”,请勿使用“Docker Toolbox”安装程序重新安装,提示安装时取消选择即可。安装完成后打开“Docker Quickstart Terminal”开始设置环境,待出现“$”后即可使用。

Ubuntu

使用软件仓库在新的主机上首次安装“Docker CE”前,需要设置Docker软件仓库,然后从此软件仓库安装和更新Docker。

①更新“apt”软件包索引

cfac4cb53f586502fc69c122d676ff0a.png

②安装软件包,以允许“apt”通过“HTTPS”使用软件仓库

20e484f5726b6b7b025b8bf1dd6029f4.png

③添加Docker的官方GPG密钥

02e02547a06ed519a0cea7b70dda9bc0.png

④设置“stable”软件仓库

4ea2ce9b544fb3255646659949a25a03.png

⑤安装“Docker CE”

449c5324912d5360cf455e0feecf6f7f.png

Centos 7 64位

①安装所需的软件包

e283e6eedf41b444c5ecec64a4f2c1d8.png

②设置“stable”软件仓库

80bebcf15a9753ea944b4ecf14d70ea9.png

③安装最新版本“Doucker CE”

03fd9a3adcc4da30a28861207a2d2e80.png

95b1717821141decd122ae50491f469d.png

④启动Docker

df1981f41596483d4168674561c998e7.png

Mac

下载以下安装包,双击打开并拖拽到应用文件夹即可

05deee822cc2b2ae827eef50c6e5a8dd.png

安装完成后在命令行输入“docker run hello-world”,得到:

a18300464dd52a811e62676fc6b82d67.png

了解Docker基本内容

镜像

Docker镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了为运行准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像是只读的,构建之后就不会改变。

容器

在镜像的基础上增加一个读写层,用户可在读写层进行操作。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。

镜像仓库

存储用户、官方上传镜像的仓库

我们想要使用Docker搭建漏洞环境,其实就是要构建漏洞环境镜像,而Docker镜像构建有两种方式:

①容器构建

运行一个实例进行操作,通过“docker commit 容器id 镜像名字”生成一个新的镜像,其他使用者将不知道什么文件是经过修改的。

②“Dockerfile”构建

通过编写一个“Dockerfile”文件,在“Dockerfile”文件路径使用“docker build -t 镜像名称 .”生成一个新的镜像,其他使用者将知道如何得到此镜象。

利用Docker构建靶场演示环境

构建“S2-045”漏洞镜像

接下来将会使用“Dockerfile”的方式去构建“S2-045”漏洞镜像。

下载一个“S2-045”的测试环境:

b1b66ea20a1ea7d261f44b37a00c876c.png

然后创建一个“Dockerfile”文件,写入以下内容:

7a6fd688b153981ba340d390b90d48da.png

说明:

90e6fff68a021648ab2d00b61ff9e3d5.png

RUN和CMD的区别:

RUN:构建镜像时运行的指令

CMD:运行容器时运行的指令

使用“docker build -t s2-045 .”命令构建“s2-045”镜像:

729db876eb78aa85210613a99adb9d11.png

执行"docker images",“s2-045:latest”在镜像列表出现,同时还出现了基础镜像“tomcat:8.0-gre8”。

3ca1cad279b289c6e316a0bb58acf580.png

执行“docker run -d -p 80:8080 s2-045“命令运行刚刚构建的镜像,运行后会返回一个容器ID。

“-d”:在后台运行容器并输出容器id

“-p”:把容器的端口“8080”映射到我们的物理机上“80”

“s2-045”:我们刚构建的镜像名

d355b871580e4a5a71373ae0cb5b8163.png

执行”docker stats“查看运行状态,根据“CONTAINER ID”找到刚启动的容器。

3d30c32d69e23a52607485d1db593cf5.png

可以从浏览器访问环境,访问地址如下:

2c57da54b1bd14597475a74177e68ee9.png

接下来使用“python2”运行“s2-045”的“exp”查看能否成功利用。

“exp”于以下地址获取:

6f420c49951500acb8f7d06d6a1db3d4.png

b889c1d2b754ed981d42da9e1bc2aa1a.png

上图可见,已成功返回期望执行命令的结果,那么这个漏洞镜像就完成了。

目前互联网上存在两个比较出名的基于Docker的漏洞环境仓库,分别为“Vulhub”和“Vulapps”。

Vulhub

“Vulhub”是一个面向大众的开源漏洞靶场,无需Docker知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。

f1771f60e76e4b27e276dfb4b71981fd.png

“Vulhub”是采用“docker-compose”程序去编译、运行环境,只需要简单的2个命令即可轻松搞定。

# 自动化编译环境:“docker-compose build”

# 启动整个环境:“docker-compose up -d”

#删除整个环境:“docker-compose down”

得益于“docker-compose.yml”文件,可使用统一命令去编译和运行。

4f20117c0d84831954c374531c9f10e5.png

在文件中已经配置好了Docker运行所需要的参数(ports:- "8080:80")。

VulApps

收集各种漏洞环境,为方便使用,统一采用“Dockerfile”形式,同时也收集了安全工具环境。

c97b9954f21b5b8d57ab6ae3c175a70f.png

05c0e626b335b3da8d154c90a94a4806.png

可以看到在项目仓库里面提供了“s2-037”的“Dockerfile”文件,需要我们本地构建,然后输入参数去运行。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值