基于Docker容器化的Web渗透测试平台实现与应用

2021-10-21 02:15
信息记录材料 2021年9期
关键词:宿主机IP地址命令

闫 梅

(山西机电职业技术学院信息工程系 山西 长治 046001)

1 引言

随着新技术的快速发展,网络作为现代社会信息传播的重要途径,遍布于人们日常生活的方方面面。人们在享受着网络带给我们方便快捷的同时,网络欺诈、隐私泄露等网络安全事件时有发生,给个人、公司、国家的财产造成损失,网络安全越来越成为不可忽视的问题。网络安全技术的快速更新对人才需求提出更多新的挑战,目前对网络安全从业人员培养主要依赖于理论课程的学习,缺乏对实际场景下攻防历练的实操练习。在学习过程中,为帮助学习者真正理解漏洞形成的原因,需要在真实的渗透测试演练系统下展开实操[1]。不同系统环境下迁移成本高、部署过程繁琐、对本机系统的影响等问题,是搭建渗透测试平台过程中经常遇到的问题,Docker作为一种新兴的虚拟化技术,其快速的启动时间、一致的运行环境、快速的交付和部署、轻松的迁移等特点可以较好地解决上述问题,为学习者提供方便快捷的学习环境。

2 Docker工作过程

Docker是一个开源的应用容器引擎,开发者可以打包需要的应用以及依赖包到一个可移植的镜像中,发布到任何Linux或Windows机器上。与传统虚拟技术最大的不同在于,Docker是在操作系统的基础上实现的虚拟技术,相当于是宿主机上一个普通的进程,能够保证运行环境的一致性,一次配置多次运行,不会出现由于环境配置不一致引起的开发、测试问题[2]。Docker容器与传统虚拟机对比,见图1。

图1 Docker容器与传统虚拟机对比

Docker采用C/S的系统架构,主要由客户端、守护进程、容器、镜像、仓库组成,见图2。Docker客户端作为Docker用户与Docker交互的主要方式;守护进程运行于服务器端后台,用于接收客户端的请求;容器是通过镜像来创建应用运行的实例,容器之间相互隔离,互不影响,保证安全的平台[3];镜像是一个只读文件,提供了运行程序完整的软硬件资源,可以将镜像看作是容器的模板,同一个镜像文件,可以生成多个同时运行的容器实例。

图2 Docker组成结构图

Docker的运行过程具体如下。

(1)客户端通过执行终端命令调用服务器端的daemon守护进程。

(2)守护进程向Linux OS请求建立容器。

(3)Linux创建一个空的容器。

(4)守护进程检查本机是否有Docker镜像文件,若有,加载到容器并完成安装;若本机无Docker镜像文件,则去仓库联网下载,下载回来后再进行装载到容器的动作[4]。

(5)形成安装好镜像文件的容器。

3 基于Docker的Web渗透测试平台的实现

3.1 基于Docker的Web渗透测试平台的设计

网络安全从业人员在学习Web渗透测试的过程中,通常会利用Windows系统下可用的DVWA平台进行学习或者在自己的PC端借助于虚拟机,在虚拟机上安装Centos并部署操作环境[1]。在统一进行学习或培训的过程中,机房电脑带有还原系统,每次课前部署学习环境的过程比较麻烦,采用Docker技术实现的学习平台搭建具有部署启动速度快,占用空间小的优点。如图3所示,基于Docker的Web渗透测试平台采用B/S的系统架构,教室机作为服务器安装虚拟机,在虚拟机上安装centos的Linux操作系统并利用Docker部署Web渗透测试平台,学生机通过浏览器打开部署好的Web渗透测试平台。

图3 基于Docker的Web渗透测试平台的设计

3.2 基于Docker的Web渗透测试平台的搭建

3.2.1 宿主机与虚拟机上Linux系统的连通性配置

使用VMware Workstation 15版本的虚拟机,在新建的虚拟机上安装完成Centos 7 64位操作系统,为了实现宿主机与centos系统之间的通信,需进行如下的网络配置。

(1)宿主机的操作。在宿主机下通过在命令行窗口中输入ipconfig命令,查看本机的IP地址为:172.18.16.200、子网掩码:255.255.255.0、网关:172.18.16.1。

(2)centos上的操作。默认情况下虚拟机上的系统采用dhcp的方式获取IP地址,通过输入ip a命令查看centos上自动获取的IP地址为192.168.157.131。为了实现宿主机与Linux操作系统的连通性,两者的网段需要保持一致,切换目录到/etc/sysconfig/network-scripts目录下,输入l s命令查看该目录下存在哪些文件和目录,见图4。

图4 network-scripts目录下文件

其中,ifcfg-ens33为Linux操作系统下的网卡配置文件,通过vim编辑器打开,修改BOOTPROTO=”static”,同时在文件后手动添加TCP/IP信息,IP地址设置为IPADDR=172.18.16.222,子网掩码设置为NETMASK=255.255.255.0,网关设置为GATEWAY=172.18.16.1,保存并退出文件编辑,见图5。

图5 网卡配置文件内容

(3)vm虚拟机的配置。打卡虚拟机下的“虚拟网络编辑器”,通过“更改设置”,设置桥接模式桥接至Realtek PCIe GBE Family Controller。

(4)测试Linux与宿主机的连通性。Linux操作系统与宿主机之间相互ping测试,实现Linux与宿主机的连通,见图6。

图6 Linux与宿主机之间的相互测试

3.2.2 Docker容器的配置

(1)repo文件的定位。选择国内的源地址http://download.Docker.com/Linux/centos/Docker-ce.repo作为Docker的安装源,切换目录到/etc/yum.repos.d目录下,通过l s命令可以看到”/etc/yum.repo.d”目录下的众多repo文件,见图7,执行yum命令时,会首先从中取得软件仓库的地址并下载“元数据”。

图7 众多repo文件

(2)使用yum下载并安装Docker。为避免repo文件的丢失,通过执行 cp ./* /home/back完成对repo文件的备份。通过输入命令#wget https://download.Docker.com/Linux/centos/Docker-ce.repo,在阿里源下载Docker,见图8。

图8 Docker源的下载

yum会把下载的软件包和header存储在cache中,使用yum clean命令删除,然后通过yum makecache命令将服务器上的软件包信息在本地缓存,以提高搜索安装软件的速度,见图9。

图9 创建本地缓存

(3)Docker的启用。通过执行#systemctl start Docker #sysrtem status Docker命令,启用Docker并查看运行的状态,见图10。

图10 Docker运行状态

在查看运行状态过程中发现有一行标红的提示,为了解决此问题,我们在/etc/sysconfig/Docker文件设置-enabled=false关闭SELinux,重新启动Docker后再次查看运行状态,发现问题得到解决。

3.2.3 Web渗透测试平台的部署

(1)Web渗透测试平台的上传。通过xftp软件连接到目标的centos,将Web渗透测试平台环境的tar包导入到centos系统下的/root目录下,见图11。

图11 Web渗透测试平台环境的上传

切换到centos系统下的/root目录下,查看文件是否上传成功,通过ls命令验证文件是否上传成功。

(2)利用Docker导入平台环境。通过执行#dokcer load

图12 平台环境的导入

(3)利用Docker启用Web渗透测试环境。通过执行#Docker run -d -p 8001:80 dcn-anhui命令,在后台运行Docker容器通过参数-p映射端口号8001,渗透平台环境启动成功,见图13。

图13 平台的启动

4 Web渗透测试平台的应用

4.1 在本地主机访问

教师机打开本地浏览器,在地址栏中输入centso的IP地址及映射的容器端口号,http://172.18.16.222:8001,成功访问Web渗透测试平台,见图14。

图14 访问Web渗透测试平台

4.2 在局域网内访问

学生机在局域网内访问教师机上的Web渗透测试平台时出现无法访问的情况,需要在教师机虚拟机下Linux操作系统/etc/sysctl.conf文件中添加net.ipv4.ip_forward=1开启centos7 ip转发,见图15,学生机成功访问Web渗透测试平台。

图15 开启centos ip转发

5 结语

针对学习者在搭建学习环境平台中遇到的问题,基于Docker技术搭建Web渗透测试平台,简化了学习者的操作难度,学习者只要通过浏览器即可访问服务器端的资源,提高了学习的效率。

猜你喜欢
宿主机IP地址命令
只听主人的命令
嵌入式计算机软件测试关键技术研究
铁路远动系统几种组网方式IP地址的申请和设置
移防命令下达后
IP地址切换器(IPCFG)
虚拟网络实验室在农村职校计算机网络技术教学中的应用研究
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
这是人民的命令
对卢沟桥事变期间一份“作战命令”的考析