Vulhub

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

我们刚刚了解了docker,现在再来看看一个非常好的漏洞环境集合Vulhub
官方网址:Vulhub
官方网站上非常详细,包括安装下载,各漏洞库如何使用
github地址:Vulhub-Github
Vulhub使用的是docker-compose,那docker-compose是啥呢?
在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例。Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
上述参考自Docker入门之docker-compose
相当于几个容器构成了一个工程,而compose就是用来管理这个工程的。

安装Vulhub

Docker-compose基于Python开发,所以我们可以使用pip进行安装。
安装pip:curl -s https://bootstrap.pypa.io/get-pip.py | python
安装docker-compose:pip install docker-compose
然后报了好多错,我们来改一下(这里更正一下,pip指的也是python3)
安装pip3:sudo apt-get install python3-pip
安装docker-compose:pip3 install docker-compose
发现报错jsonschema 3.2.0 has requirement six>=1.11.0, but you'll have six 1.10.0 which is incompatible.
这时候pip3 install six --user -U
如果提示pip版本低的话sudo pip3 install --upgrade pip
ok了,然后docker-compose -v看看是否成功
然后安装Vulhub
新建个目录(vulhub),以后作为漏洞库用
git clone https://github.com/vulhub/vulhub.git

复现一个漏洞

我们来测试一下如何应用该漏洞库,选择CVE-2016-10134作为复现对象
cd zabbix
cd CVE-2016-10134
docker-compose up -d
然后报错ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?,然后我看了一篇博客sudo gpasswd -a ${USER} docker然后再sudo susu ${USER},然后提示我sudo apt install docker-compose
然后docker-compose up -d就可以了
此时容器都开了,然后我们输入网址localhost:8080发现在zabbix的登录页
用账号guest(密码为空)登录游客账户
剩下的操作不再做了,可见是可以的
docker ps
1
我们可以看到除了之前所开的test-mysql外均为本次操作所开容器
然后怎样关闭呢?
在当前目录执行docker-compose down即可
2
但是此时我们发现docker images里images并没有清除
下次再执行docker-compose up -d命令,就不需要再次编译相关镜像了
-d是后台运行
好了,关于Vulhub的介绍到这里,具体文档等可以看其官网,漏洞可以一边学习一边复现。
记录下username这个文件夹的目前权限为rwxr-xr-x