前言

众所周知,想要学好网络安全,搭建漏洞靶场是必不可少的。复现各种漏洞,能更好的理解漏洞产生的原因,提高自己的渗透测试能力。下面我在kali中演示如何详细安装漏洞靶场Vulhub。

vulhub简介

Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。Vulhub的官方地址为www.vulhub.org。

1.docker

1.1了解docker

虚拟机需要模拟硬件,运行整个操作系统,不但体积臃肿内存占用较高,程序的性能也会收到影响。docker在概念上与虚拟机非常类似,但却轻量很多,它不会去模拟底层硬件,只为每一个应用提供完全隔离的运行环境,如下图:
一个docker镜像可以创建多个容器(Container),一个个容器就像一台台运行起来的虚拟机,里面运行了你的应用程序,每个容器都是独立运行的,相互不受影响。

1.2 apt命令与apt-get命令

在正式安装之前我们需要了解一下apt命令与apt-get命令。

Debian 作为 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操作系统的母板,其具有强健的「包管理」系统,它的每个组件和应用程序都内置在系统中安装的软件包中。Debian 使用一套名为 Advanced Packaging Tool(APT)的工具来管理这种包系统,不过请不要把它与 apt 命令混淆,它们之间是其实不是同一个东西。

在基于 Debian 的 Linux 发行版中,有各种工具可以与 APT 进行交互,以方便用户安装、删除和管理的软件包。apt-get 便是其中一款广受欢迎的命令行工具。

最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中,apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。

在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。

简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。

1.3开始安装docker

在root用户下更新软件源中的所有软件列表,update读取所有源的软件列表,需要联网下载,作用是激活和更新源。
apt-get update
使用atp命令需要其支持的https协议和CA证书,我们安装一下。
apt-get install -y apt-transport-https ca-certificates
安装docker
apt install docker.io
出现报错
按照提示执行apt --fix-broken install命令,这个时候,会让你安装一些依赖包,会提示你是否安装,选择Y。
运行完之后重新执行apt install docker.io安装docker。
安装完之后查看docker的版本检验是否安装成功。
docker -v查看简略信息

docker version查看详细信息

启动docker
systemctl start docker
显示正在运行的容器docker ps
显示所有的容器,包括未运行的docker ps -a
可以看到有容器、ID、镜像、命令、创建、状态、端口、名字这几列信息,由于还没有创建任何容器,所以只显示了这些单词。

1.4安装pip

执行apt-get install python3-pip安装pip

1.5安装docker-compose

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

执行pip3 install docker-compose命令以安装。
查看docker-compose版本
docker-compose -v

2.下载vulhub

这个下载有点慢,耐心等待就好了。
git clone https://github.com/vulhub/vulhub.git

下载成功后,进入到vulhub目录cd vulhub,通过ls命令查看漏洞靶场。
随便进入一个目录,以cd vulhub/shiro/CVE-2016-4437为例。
然后启动靶场docker-compose up -d

查看启动环境,发现端口是8080
docker-compose ps

在kali中使用浏览器访问,成功。

3.互ping测试

查看宿主机ip地址ipconfig

查看虚拟机的ip地址ifconfig或者ip addr,同时查看docker的ip。


宿主机ping虚拟机。

虚拟机ping宿主机。
在Linux系统中,当能ping通一个主机时,此时ping命令会一直执行,要想终止,可采用Ctrl +cCtrl+z方式退出。也可以设置选项方式,使得ping命令执行若干次包就终止,例如ping 192.168.0.104 -c 4此时ping命令将执行4次。

在虚拟机中ping通docker。

宿主机ping docker是ping不通的,因为不在同一个局域网进行通信需要依靠路由进行转发,需要手动对宿主机设置路由route add -p 172.17.0.0 mask 255.255.0.0 192.168.124.133
以管理员身份打开命令窗口,执行命令。
查看路由route print
(注意:虚拟机要设为NAT模式)
此时我们就可以使用宿主机ping通docker了。

宿主机访问靶场成功!

3.关闭靶场

docker-compose会默认根据当前目录下的配置文件启动容器,在关闭及移除环境的时候,也需要在对应目录下。我们执行docker-compose up -d后,不要离开当前目录即可,漏洞测试结束后,执行如下命令移除环境:
docker-compose down

完工!!!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐