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 等配置方法请参考帮助文档。

Vulhub 靶场搭建相关推荐

  1. Vulhub靶场搭建

    Vulhub靶场搭建 1. 环境准备 VMware虚拟机.linux镜像(Centos7) 2. 配置yum源为阿里云,安装软件时经常出现Could not resolve host:mirrorli ...

  2. vulhub靶场搭建+docker环境搭建详解(最稳定方式)

    安装vulhub靶场,首先到其官网下载,也可以直接拉去,我是下载通过xshell上传的,主要是docker环境很麻烦 这里我建议直接离线安装,在线安装有各种乱七八糟问题,特别是安装docker-com ...

  3. kali中使用Docker搭建vulhub靶场和vulapps靶场(新手向)

    一. Docker安装与配置 1.Docker安装 sudo apt-get install -y docker-compose 2.查看版本 docker --version docker-comp ...

  4. 【环境搭建】CentOS上部署Vulhub靶场

    目录 0 前言 1 安装 1.1 在虚拟机中安装CentOS 1.2 安装Docker 1.3 安装docker-compose 1.4 安装Vulhub 1.5 修改镜像源 1.6 设置快照 2 启 ...

  5. 搭建Vulhub靶场 【附图】

    目录 0x01简单概述 0x02安装环境 1. kali设置 2. 更新软件源中的所有软件列表 3. 安装https协议及CA证书 0x03安装步骤 一.安装Docker 1. 下载安装 2. 查看D ...

  6. 【踩坑】CentOS7部署Vulhub靶场后,在启动漏洞容器时弹出SELinux警告,致使网站无法正常执行文件上传功能。

    目录 1 背景 2 SELinux 概述 3 解决 参考文献 1 背景 为研究网络安全,本人准备在CentOS上部署Vulhub靶场来实现,部署过程参考文章<CentOS上部署Vulhub靶场& ...

  7. Vulhub 靶场下载使用

    Vulhub 靶场安装_Gjqhs的博客-CSDN博客 官网查找是否有此漏洞镜像 点击搜索结果即可查看对应信息以及复现利用方法 拉取方法 修改网址前面加git,后面操作大体跟上面官网步骤走即可(注意目 ...

  8. 掌握渗透测试,从Web漏洞靶场搭建开始

    摘要:漏洞靶场,不仅可以帮助我们锻炼渗透测试能力.可以帮助我们分析漏洞形成机理.更可以学习如何修复提高代码能力,同时也可以帮助我们检测各种各样漏洞扫描器的效果. 本文分享自华为云社区<Web漏洞 ...

  9. 【JIS-CTF靶场搭建及解题思路】

    JIS-CTF靶场搭建及解题思路 JIS-CTF 安装镜像 解题 Vulnhub是一个提供各类漏洞环境的靶场,每一个靶场有对应的目标和难度,挑战者经过网络闯入系统获取root权限和查看flag. Vu ...

最新文章

  1. python操作Mysql基础
  2. linux telnet远程登录工具,Linux 远程登录(telnet ssh)
  3. Jmeter响应结果unicode转成中文显示
  4. mysql db compare_数据传输 | mysqldiff/mysqldbcompare 实现 DTLE 自动化测试
  5. Oracle入门(十二H)之设置、恢复和删除不可用列
  6. Android官方开发文档Training系列课程中文版:电池续航时间优化之按需开启广播接收器
  7. enable pen pressure in ps
  8. 快速创建精彩的Flash游戏 (二) Flash3D引擎简介
  9. python 干什么工作具有明显优势-Python 的优势在哪里?
  10. 配置druid的过程以及问题
  11. CentOS中的网络管理
  12. MySQL创建外键出现 ERROR 1005: Can't create table (errno: 150)解决办法
  13. GJS和GNOME Extension趟坑指南
  14. 利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该年没有举办世界杯,则输出:没有举办世界杯。
  15. 邯郸市信息产业局关于参加2007’中国河北软件与信息服务业发展国际论坛的通知...
  16. CTGU·OJ 快乐
  17. 树莓派的GPIO端口详解
  18. JAVA怎么批量更新mysql_java 批量添加、批量更新 操作数据库
  19. TikTok营销策略 如何打造TikTok爆款视频?
  20. [zt] SAP 标准教材和自学方法

热门文章

  1. Ubuntu与ROS的Docker桌面系统与ROS在线练习课程(在线Linux虚拟机)
  2. 2022年网络运维必备软件和工具推荐
  3. 滑稽树下你和我Average distance(树形dp求任意两点距离之和)
  4. 加州伯克利计算机科学录取,加州大学伯克利分校录取数据分析
  5. pvr图片格式转png--shell脚本
  6. 2021-2027全球与中国孢子条市场现状及未来发展趋势
  7. 微服务架构系列主题:探索原味BFF模式
  8. python2.7下载哪个_Python2.7.13下载安装全过程(Windows版)
  9. 容器的作用span div10
  10. 360全景拍摄曝光问题如何处理?