Vulhub 靶场搭建
简介
Make vulnerability environments easier
Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。
安装 docker 和 docker-compose 后即可开始使用Vulhub,我使用ubuntu2018.04.5搭建
官方安装命令如下(详情请见下文)
# If you don't have a docker installed, you'll need to install docker
curl -s https://get.docker.com/ | sh
# Use pip to install docker-compose
pip install docker-compose
# Entry vulnerability directory
cd /path/to/vuln/
# Compile (optional)
docker-compose build
# Run
docker-compose up -d
安装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会自动启动。
我也采用一键安装的方法,在这之前先更新一下ubuntu的源(这是一个很好习惯,不管下载什么软件,都要的一个步骤,一般第一更新时间比较久,命令:apt update)
这样应该下载好了
手工安装Docker
如果你使用的操作系统不支持使用一键安装脚本,也没有包管理工具,可以选择手工安装最新版Docker。
Docker分为CE版本和EE版本,其中CE版本面向开源社区,是免费软件;我们选用CE版本即可。
常见操作系统安装Docker的方法在文档中均可查阅,我就不再赘述: https://docs.docker.com/engine/installation/
注意,docker是一个系统服务,所以,安装完成后可能需要手工启动服务:service start docker,否则会出现连接失败的情况。同样,如果docker没有自启动,你也需要手工启动docker服务。
安装docker-compose
Docker-compose用于组合服务与内网。有部分环境涉及到多个容器,且不同环境开启的端口、目录也不相同,所以Vulhub选择使用docker-compose做环境一键化管理工具。用户不再需要学习docker命令的各种参数与用法,只需要简单地执行docker-compose up -d即可启动容器。
Docker-compose基于Python开发,所以我们可以使用pip进行安装。
安装PIP
当然,如果你的环境中没有安装pip,还需要先安装pip。推荐使用如下命令进行安装,这种方式将会少安装很多不需要的依赖:
curl -s https://bootstrap.pypa.io/get-pip.py | python3
执行命令后报错,发现缺少一个模块,我们安装一下:apt-get install python3-distutils
然后重新执行命令:curl -s https://bootstrap.pypa.io/get-pip.py | python3
又报错,发现缺少launchpadlib(我们再安装一下:pip install launchpadlib),在次执行命令
安装成功
安装docker-compose
有pip后即可直接使用pip安装docker-compose:
pip install docker-compose
安装完成后,执行docker-compose -v,有返回则说明安装成功。
成功安装
下载Vulhub
安装完成docker和docker-compose后,拉取Vulhub到本地任意目录即可:git clone https://github.com/vulhub/vulhub.git
在ubuntu2018.04.5中没有安装git,我们安装一下:apt install git
速度不算快,的等一会
如果拉取速度太慢,可以直接下载master分支的压缩包:Vulhub.zip。(其实很简单,这里就不演示了,嫌麻烦……)
到这vurhub基本环境搭建成功,可以根据需要复现不同漏洞
注意:ubuntu系统默认开启dns缓存服务,但是有时候Docker服务要用到53端口
因此要禁用53端口
关闭53端口(此端口为dnsmq服务即dns缓存服务)
- 修改其配置文件(这个我不会):/etc/NetworkManager/NetworkManager.conf
重启即可 - 我使用命令(重启后又会开启需要时再关):service systemd-resolved stop
启动漏洞环境(举例)
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来重新编译靶场环境
复现漏洞
Vulhub中所有漏洞环境均配置了详细的文档,包括如何编译、启动、原理、复现。
我们可以在本文档中搜索并查看所有漏洞环境,这里不再赘述。
这里只是搭建vulhub环境,具体的漏洞复现与测试就不演示了
移除环境
Vulhub中所有环境均为漏洞靶场,在测试结束后,请及时关闭并移除环境,避免被他人恶意利用。
虽然靶场全部运行在Docker中,但大多数恶意软件并不会因为运行在容器中就失去效果!
前面说了,docker-compose会默认根据当前目录下的配置文件启动容器,在关闭及移除环境的时候,也需要在对应目录下。我们执行docker-compose up -d后,不要离开当前目录即可,漏洞测试结束后,执行如下命令移除环境:
docker-compose down
上述命令会执行如下几个动作:
• 关闭正在运行的容器
• 删除所有相关容器
• 移除NAT(docker-compose在运行的时候会创建一个NAT网段)但不会移除编译好的漏洞镜像,下次再执行docker-compose up -d命令,就不需要再次编译相关镜像了。
Docker加速器
由于Vulhub所有的资源均来自于Dockerhub/Github/软件官网,而上述站点服务器在国内访问可能存在速度慢、丢包率高等问题,导致我们在启动Vulhub漏洞环境的时候太卡,影响正常体验。
所以,我们首先推荐使用国外VPS进行漏洞环境的搭建,在这种情况下,平均启动一个环境只需要30秒。
如果实在没有条件购买国外VPS,也可以Docker加速器对Dockerhub进行加速(当然只能加速Dockerhub)。
为了以后更好地使用,我们得配置好Docker 镜像
官方文档如下:
- 配置 Docker 镜像站
Linux
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
这样就成功了,重新启动Docker即可(root权限下不用前面sudo):
sudo systemctl restart docker.service
该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件/etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,
其他版本可能有细微不同。更多详情请访问文档。
macOS
Docker For Mac
右键点击桌面顶栏的 docker 图标,选择 Preferences ,在 Daemon 标签(Docker 17.03 之前版本为 Advanced 标签)下的 Registry mirrors 列表中加入下面的镜像地址:http://f1361db2.m.daocloud.io
点击 Apply & Restart 按钮使设置生效。
Docker Toolbox 等配置方法请参考帮助文档。
Windows
Docker For Windows
在桌面右下角状态栏中右键 docker 图标,修改在 Docker Daemon 标签页中的 json ,把下面的地址:http://f1361db2.m.daocloud.io
文章来源:https://www.toymoban.com/news/detail-721947.html
加到" registry-mirrors"的数组里。点击 Apply 。
Docker Toolbox 等配置方法请参考帮助文档。文章来源地址https://www.toymoban.com/news/detail-721947.html
到了这里,关于Vulhub 靶场搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!