安装Docker
在安装、使用Docker的过程中出现错误比较多,所以这一节来说明一下如何正确安装最新版本的Docker,(国内机器)并且配置加速器。
一键安装Docker
这是推荐方式。在未安装过Docker的机器上,root权限执行如下命令即可一键安装最新版Docker:
curl -s https://get.docker.com/ | sh
如果你已经安装过老版本Docker(且不是用这个一键安装脚本安装的),请先卸载Docker(例如sudo apt purge --autoremove docker.io
)。
如果你不想使用这种方式安装Docker,也可以使用系统自带的包管理工具来安装,比如在Ubuntu下:
sudo apt install docker.io
但包管理工具安装的Docker版本一般较老,有可能在使用Vulhub的时候会出现BUG(基本上下不会,但也不排除有的Docker版本过老的)。
注意,docker是一个系统服务,所以,安装完成后可能需要手工启动服务:service start docker
,否则会出现连接失败的情况。同样,如果docker没有自启动,你也需要手工启动docker服务。如果你是使用一键安装工具安装的docker,则docker会自动启动。
安装docker-compose
Docker-compose用于组合服务与内网。有部分环境涉及到多个容器,且不同环境开启的端口、目录也不相同,所以Vulhub选择使用docker-compose做环境一键化管理工具。用户不再需要学习docker命令的各种参数与用法,只需要简单地执行docker-compose up -d
即可启动容器。
Docker-compose基于Python开发,所以我们可以使用pip进行安装。
安装PIP
当然,如果你的环境中没有安装pip,还需要先安装pip。推荐使用如下命令进行安装,这种方式将会少安装很多不需要的依赖:
yum -y install epel-release yum install python-pip
安装docker-compose
有pip后即可直接使用pip安装docker-compose:
pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,执行docker-compose -v
,有返回则说明安装成功。
下载Vulhub
安装完成docker和docker-compose后,拉取Vulhub到本地任意目录即可:
git clone https://github.com/vulhub/vulhub.git
如果拉取速度太慢,可以直接下载master分支的压缩包:Vulhub.zip。
启动漏洞环境
docker-compose会自动查找当前目录下的配置文件(默认文件名为docker-compose.yml
),并根据其内容编译镜像和启动容器。所以,要运行某个漏洞靶场,需要先进入该漏洞所在的目录。
在Vulhub中选择某个环境,进入对应目录。如Flask服务端模板注入漏洞,我们进入flask/ssti
目录:
cd flask/ssti
直接执行如下命令,进行漏洞靶场的编译和运行:
# 可选 docker-compose build docker-compose up -d
为什么docker-compose build
是可选的?
docker-compose up -d
运行后,会自动查找当前目录下的配置文件。如果配置文件中包含的环境均已经存在,则不会再次编译;如果配置文件中包含的环境不存在,则会自动进行编译。所以,其实docker-compose up -d
命令是包含了docker-compose build
的。
如果更新了配置文件,你可以手工执行docker-compose build
来重新编译靶场环境。