0x01 Docker是什么?
Docker是一款针对程序开发人员和系统管理员来开发、部署、运行应用的一款虚拟化平台。Docker可以让你像使用集装箱一样快速的组合成应用、屏蔽代码层面的差异,会尽可能的缩短从代码测试到产品部署的时间。Docker由镜像(Image)、容器(Container)、仓库(Repository) 三大核心组成。
既然都是虚拟化,那么Docker和VMWare等传统虚拟化技术的原理有何不同?
l 更快速的交付和部署(使用docker,开发人员可以用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用相同环境来部署代码。)
l 更轻松的迁移和扩展(docker容器几乎可以在任意平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。可以在不同的平台轻松地迁移应用)
l 更简单的更新管理(使用Dockerfile,只需要修改小小的配置,就可以替代以往大量的更新工作)
总之,docker灵活方便,搭建一些测试类的靶场是再合适不过了。下面就请戴大师讲解一下,到底怎么搞。
0x02 Docker环境配置
戴大师:我们用深受大家喜爱的kali为例子啊。在虚拟机kali中对docker容器里的vulhub镜像进行访问:kali--->docker--->vulhub;大家安装好虚拟机和kali系统之后,看黑板:
2-1.安装pip
curl -s https://bootstrap.pypa.io/get-pip.py| python3
2-2.安装docker
apt-getupdate && apt-get install docker.io
2-3.clone vulhub
Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。官网地址:https://vulhub.org/
git clone https://github.com/phith0n/vulhub.git
2-4.启动docker
servicedocker start
update-rc.ddocker enable
2-5.检测是否启动
dockerversion
2-6.安装docker-compose
pip installdocker-compose
0x03 使用vulhub靶场
现在进入vulhub目录,可以看到很多测试环境目录,每个环境目录下都有相应的说明文件。
3-1.进入某一个漏洞/环境的目录
进入测试靶场目录,这里我们想测试struts2-016漏洞,可以先看下struts2目录下现有的漏洞测试环境。随后进入s2-016 目录。
3-2.自动化编译环境
docker-compose build
3-3.启动整个环境
docker-compose up -d
完成后,我们测试下访问web页面,这说明测试环境正常
我们可以用struts2漏洞检测工具对其进行检测
3-4.测试完成后,删除整个环境
docker-compose down
0x04 使用宿主机访问docker
戴大师还要给同学们开小灶,假如你想用自己的宿主机访问虚拟机中的docker,有一些操作得会:
4-1.查看docker容器内系统IP
docker ps 找到容器内的对象的ID:3bb7e93ae0ac
docker inspect 3bb7e93ae0ac,显示出容器内系统的IP,如:172.18.0.2
4-2.虚拟机IP配置
如为nat方式时,修改虚拟机的IP为同网段IP
宿主机的IP
修改虚拟机中的nat模式的vmnet8的NAT IP
修改虚拟机中的nat模式的vmnet8的DHCP IP
此时,查看虚拟机IP,如此时为192.168.2.2,同宿主主机192.168.2.20
在同一段内,ping 192.168.2.2如果能通,说明修改IP成
4-3.在路由中添加
在windows中添加相应路由即可,以管理员身份运行powershell
ROUTE add 172.17.0.0 mask 255.255.0.0 192.168.209.155
在这里添加路由如下:
ROUTE add 172.18.0.0 mask 255.255.0.0 192.168.2.2
都配置好以后,在宿主机的浏览器中输入 http://docker-ip:port,这里假设为上面查到的IP,http://172.18.0.2:8161/
好,戴大师授课完成!菜鸟阿姨表示还要继续领会和实践。起码以后搭靶场,几句命令就OK了,十分方便!怎么样,你学会了么?
参考:
https://blog.csdn.net/relax_hb/article/details/69668815