Vulhub 靶场搭建

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

加到" registry-mirrors"的数组里。点击 Apply 。
Docker Toolbox 等配置方法请参考帮助文档。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
靶场,是指为信息安全人员提供实战演练、渗透测试和攻防对抗等训练环境的虚拟或实体场地。在不同的领域中,靶场扮演着重要的角色,尤其是在网络安全领域,靶场成为培养和提高安全专业人员技能的重要平台。 首先,靶场为安全从业者提供了一个模拟真实网络环境的平台。通过构建类似实际网络的拓扑结构、部署各种安全设备和应用,靶场可以模拟出多样化的网络攻防场景。这使得安全人员能够在安全的环境中进行实际操作,全面提升其实战能力。 其次,靶场是渗透测试和漏洞攻防演练的理想场所。在靶场中,安全专业人员可以模拟攻击者的行为,发现系统和应用的漏洞,并进行渗透测试,从而及时修复和改进防御机制。同时,这也为防御方提供了锻炼机会,通过对抗攻击提高防御能力。 靶场搭建还促进了团队协作与沟通。在攻防对抗中,往往需要多人协同作战,团队成员之间需要密切配合,共同制定攻击和防御策略。这有助于培养团队合作意识,提高协同作战的效率。 此外,靶场为学习者提供了一个安全的学习环境。在靶场中,学生可以通过实际操作掌握安全知识,了解攻击技术和防御策略。这样的学习方式比传统的理论课程更加生动直观,有助于深化对安全领域的理解。 最后,靶场也是安全社区交流的平台。在靶场中,安全从业者可以分享攻防经验,交流最新的安全威胁情报,共同探讨解决方案。这有助于建立更广泛的安全社区,推动整个行业的发展。 总体而言,靶场在信息安全领域具有重要地位,为安全专业人员提供了实战演练的机会,促进了团队协作与沟通,为学习者提供了安全的学习环境,同时也是安全社区交流的重要平台。通过靶场的实践操作,安全从业者能够更好地应对不断演变的网络威胁,提高整体的安全水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值