Docker与Docker-compose安装Vulfocus Vulhub漏洞环境

news2024/11/18 8:23:24

目录

一.docker 和 docker-compose 介绍: 

docker:

docker-compose:

二者的区别:

二者的联系:

二者的总结:

二.Centos 7安装Docker

三.Centos 7安装docker-compose

四.docker-compose搭建Vulhub漏洞测试靶场

五.基于docker-compose安装Vulfocus漏洞环境

六.基于Docker安装Vulfocus漏洞环境

七.总结:


一.docker 和 docker-compose 介绍: 

docker:

        docker 一般从概念上理解就是指容器化技术,可以用来创建和使用 Linux 的容器。借助 docker,可将容器当做轻巧、模块化的虚拟机使用。同时具备一定的灵活性,从而非常高效的实现对容器的创建、部署、复制和迁移。

docker-compose:

        docker-compose 本身是一个基于 docker 的开源项目,一般用来管理容器服务,通过调用 docker 服务的 API 实现对 docker 容器集群的快速编排。具体的实现方式是通过一个 yaml 配置文件,在其中定义一组相关的容器服务。

二者的区别:

启动命令适用范围是否必须有配置文件依赖关系难易程度
dockerdocker run 参数单一容器服务不必须复杂
docker-composedocker-compose up -d一组容器服务必须依赖 docker简单

注:在修改了容器代码,使用 docker-compose restart 命令是不会生效的,需要先 docker-

compose stop,再执行 docker-compose start 才可以。

但是,如果修改了 docker-compose.yaml 配置文件,使用 docker-compose restart 命令配置是生效的。

但是,如果使用 docker restart 命令,容器内修改的代码和配置会立即生效,不需要先停止再启动。

二者的联系:

        如果想要使用 docker-compose 和 docker 命令,二者都是需要进行安装的。docker 本身其实已经满足了对容器服务的基本操作和管理,docker-compose 的出现只是在一定程度上简化了 docker 服务的管理,本质上还是要依赖 docker 命令,也就是 docker 的接口 API。docker 命令可以单独使用,如果需要使用 docker-compose 命令,就需要先安装 docker。

二者的总结:

        docker 和 docker-compose 在容器化服务管理方面是非常优秀的工具集,最好两种方式都掌握,这样可以深入理解容器服务部署和管理的内在原理。

二.Centos 7安装Docker

1、更新yum(会用到yum)

yum -y update

2、卸载旧的Docker(如有则卸载,没有则忽略此步)

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

3、yum安装包

yum install -y yum-utils


4、设置镜像仓库

官方镜像(比较慢,不推荐)

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

阿里云镜像(推荐)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5、安装Docker

 a.安装前先更新yum软件包索引

yum makecache fast



b.安装Docker-ce(社区免费版)

yum install docker-ce docker-ce-cli containerd.io

6、启动Docker

systemctl start docker


7、其他Docker命令

查看Docker版本

docker version



查看镜像(新装docker,所以返回结果暂时是空的)

docker images



查看运行的容器

docker ps

查看所有容器

docker ps -a

停止正在运行的容器

docker stop 容器ID

移除容器

docker rm 容器ID

查看Docker状态

systemctl status docker

 停止Docker

systemctl stop docker

 Docker自启动

systemctl enable docker

三.Centos 7安装docker-compose

1、yum安装epel源

yum install -y epel-release



2、yum安装pip

yum install -y python-pip



3、pip 更新(官方源比较慢,推荐使用三方源)

pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com --upgrade pip==20.3.4



4、安装docker-compose

pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com docker-compose


安装python时报错:

 解决办法:

pip install --ignore-installed requests

5、查看docker-compose版本,有返回则说明安装成功

docker-compose -v

 

四.docker-compose搭建Vulhub漏洞测试靶场

1.下载vulhub

安装完成docker和docker-compose后,拉取Vulhub到本地任意目录即可:

git clone https://github.com/vulhub/vulhub.git

 

 附:

CentOS 7 64位 报错bash: git: 未找到命令…
解决方法:
1.先启用EPEL存储库
RHEL/CentOS 7 64位执行以下命令:
执行命令:wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
执行命令:rpm -ivh epel-release-latest-7.noarch.rpm

RHEL/CentOS 7 32位执行以下命令:
执行命令:get http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
执行命令:rpm -ivh epel-release-6-8.noarch.rpm

2.安装git命令
执行命令:yum install -y git 即可安装

3.启动漏洞环境

        docker-compose会自动查找当前目录下的配置文件(默认文件名为docker-compose.yml),并根据其内容编译镜像和启动容器。所以,要运行某个漏洞靶场,需要先进入该漏洞所在的目录。

       在Vulhub中选择某个环境,进入对应目录。如log4j漏洞,我们进入log4j目录CVE-2021-44228漏洞:

cd log4j/CVE-2021-44228

4. 漏洞靶场进行编译(此步骤可选)

docker-compose bulid

 5.运行漏洞靶场

docker-compose up -d  -d 后台运行

 

6. 查看一下:

docker-compose ps

7.访问 ip:端口 

8. 移除漏洞环境:

        Vulhub中所有环境均为漏洞靶场,在测试结束后,请及时关闭并移除环境,避免被他人恶意利用。虽然靶场全部运行在Docker中,但大多数恶意软件并不会因为运行在容器中就失去效果!

前面说了,docker-compose会默认根据当前目录下的配置文件启动容器,在关闭及移除环境的时候,也需要在对应目录下。我们执行docker-compose up -d后,不要离开当前目录即可,漏洞测试结束后,执行如下命令移除环境:

docker-compose down

五.基于docker-compose安装Vulfocus漏洞环境

1.拉取 vulfocus 和安装项目依赖

cd /home(目录随意)
git clone https://github.com/fofapro/vulfocus.git Vulfocus(文件名随意)

2.配置环境参数

cd /k/vulfocus/
vim docker-compose.yaml

3.更改ip 

xxx改为本机ip(虚拟机ip) 

 a插入

shift+: 输入wq写入保存:

4.启动项目

docker-compose up -d

5.访问漏洞环境

这时浏览器地址栏输入本机ip即可访问vulfocus服务

访问: ip:端口

首页还没有添加靶场 

 可以一键同步(内容有点多) 也可以手动下载:

添加tomcat-pass-getshell的靶场:

直接下载 启动:

 访问ip+端口:

本机访问: 

 6.关闭漏洞环境

使用完不要忘记关闭漏洞环境:

docker-compose down

六.基于Docker安装Vulfocus漏洞环境

 1.拉取Vulfocus镜像

docker pull vulfocus/vulfocus:latest

2.docker images 查看容器:

3.运行vulfocus环境 :


docker run -p 88:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=xxx.xxx.xxx.xxx -d id

## -p:设置宿主机与容器端口映射关系
## -v:设置宿主机与容器目录映射关系
## -e VUL_IP:定义宿主机的IP地址
## -d :定义创建容器使用的镜像ID

 

 a.创建vulfocus容器:

b.启动环境: 

docker start 环境ID

 其实这两条命令可以和一条(在上面用-d设置)

 4.docker ps 查看运行的环境:

 5.访问靶场 ip+端口

 注意:

其实我是不是很推荐Docker安装Vulfocus靶场的,原因如下:

a 靶场环境内容有可能显示不出来 需要自己下环境 拉靶场 麻烦。

b 靶场以ctf形式 开启靶场有时间限制 以Docker开启不稳定 有可能卡掉。

七.总结:

        推荐安装Docker环境  用Docker-compose来拉取搭建环境 这样使用稳定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/545364.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux安装MySQL后无法通过IP地址访问处理方法

本文主要总结Linux安装Mysql后,其他主机访问不了MySQL数据库的原因和解决方法 环境说明: MySQL 5.7.30CentOS Linux release 7.6.1810 (Core) 创建完Mysql数据库后可以查看mysql 日志获取root 用户登录密码 [rootlocalhost mysql-5.7.30]# cat /var/l…

2 机器学习知识 Softmax回归 deep learning system

机器学习算法的三个主要部分 The hypothesis class: 模型结构loss fuction 损失函数An optimization method:在训练集上减小loss的方法 多分类问题 训练数据: x ( i ) ∈ R n , y ( i ) ∈ 1 , . . . , k f o r i 1 , . . . m x^{(i)}\in \mathbb{R}…

在Fedora-Workstation-Live-x86_64-36-1.5中编译安装信使iptux0.7.6

在Fedora-Workstation-Live-x86_64-36-1.5中编译安装信使iptux0.7.6 https://github.com/iptux-src/iptux/tree/v0.7.6 下载信使iptux-0.7.6.zip,类似飞鸽传书ipmsg,已经尝试过0.8.3版本不成功 [rootfedora ~]# unzip /home/ruhong/download/iptux-0.7…

usb摄像头驱动-core层driver.c

usb摄像头驱动-core层driver.c 文章目录 usb摄像头驱动-core层driver.cusb_bus_typeusb_device_matchusb_uevent usb_register_driver 在ubuntu中接入罗技c920摄像头打印的信息如下: 在内核中,/driver/usb/core/driver.c 文件扮演了 USB 核心驱动程序管…

自动化遍历测试技术之android maxim遍历测试工具

这里写目录标题 一、问题1、例如app中存在问题2、解决方法3、改进策略4、自动遍历测试5、常见遍历工具与技术 二、android maxim 遍历测试工具策略使用环境预备命令行模式策略 三、android fastbot 遍历测试工具使用 一、问题 业务线众多 业务流程复杂 依赖传统券商一些资源 …

2023年最新软件测试面试题,自动化测试面试题,接口自动化测试面试题详解,对标大厂。

【软件测试面试题】 1、你的测试职业发展是什么?   测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程…

软件测试之性能测试

性能测试是与时间相关的。 主要内容 性能测试基础概念和术语介绍性能测试模型性能测试分类介绍性能测试实施与管理 性能测试基础 为什么要进行性能测试(WHY)(最重要) 应用程序是否能够很快的响应用户的要求?应用程…

【C程序设计】——程序=算法+数据结构

目录 🍊🍊一、什么是算法? 🍊🍊二、简单的算法举例 🍊🍊三、算法的特性 🍊🍊四、怎样表示一个算法 一个程序主要包括以下两方面的信息: (1&am…

软件测试项目实战经验附视频以及源码【商城项目,app项目,电商项目,银行项目,医药项目,金融项目】

前言: ​​大家好,我是凡叔。 很多初学的测试小白都在烦恼找不到合适的项目去练习,这也是难倒大部分测试小白的一个很常见的问题,项目经验确实是每一个测试非常宝贵的经验!这里凡叔给大家找了一些常用的项目合集&…

数据结构与算法十二 图进阶

一 有向图 在实际生活中,很多应用相关的图都是有方向性的,最直观的就是网络,可以从A页面通过链接跳转到B页面,那么a和b连接的方向是a->b,但不能说是b->a,此时我们就需要使用有向图来解决这一类问题,它和我们之前…

行业集体迈进全屋智能,华为的“空间智能跃升”独领风骚?

智能家居近年来发展飞速,市场正在从最初的单品智能向全屋联动智能切换。 据IDC数据,2022年中国全屋智能市场销售额突破100亿元,同比增长54.9%。一个住宅往往由卧室、客厅、厨房、卫生间、餐厅等多个基本功能区组成,全屋智能便是在…

企业进行产品管理内训至少有这5大好处

企业需要重视产品管理,建立完善的产品管理流程和标准,提高员工的产品管理能力,以应对各种挑战和机遇,在企业进行内训是最好的方式。 企业进行产品管理内训的目的是为了提高员工的产品管理能力,从而实现以下几个方面的好…

ChatGPT创始人采访 | GPT-4报告中文版

关于采访OpenAl Co创始人 Greg Brockman的要点记录分析,先介绍Gpt-4的基本内容,然后说下采访的重点部分,最后读一下154页Gpt-4的技术报告,这个大家可以在官网下载文档后,百度翻译支持每人限量一次的PDF翻译。面对文心一…

图(课堂笔记)

图的引入与术语 两种图 1. 有向图(Digraph):Each edge of arc has an associated direction. 2. 无向图(non-directed graph):Every edge or arc is two-way. 简单图是一种特殊的无向图。无向图没有自环…

即时设计是一款什么软件,有什么优势

即时设计是什么软件 即时设计是一款「专业UI设计工具」,不受平台限制,打开浏览器即可开始创作。它不仅具备精细化设计能力,还自带丰富的共享设计资源,同时支持多人实时协作、设计成果一键分享交付,让设计师在工作中每…

C++:使用位图处理海量数据

目录 一. 什么是位图 1.1 海量数据处理问题 1.2 位图的概念 二. 位图的实现 2.1 成员变量及成员函数 2.2 成员函数的实现 2.3 位图模拟实现完整代码 三. 关于位图处理海量数据的几个面试题 一. 什么是位图 1.1 海量数据处理问题 问题:假设有30亿个不重复的…

QT 学习笔记1 创建一个简单的cmd窗口界面

QT creator最大的特点是把界面和逻辑分开了 视频: 3、开发工具-QtCreator 目录 0、新建一个应用项目的步骤 一、设计相关: 1、控件 布局 Layouts 垫子 Spacers ​编辑 按钮 Buttons 单元视图 Item Views(Model-Based) 单元控件 Item Widgets(…

2023年美、英仍是最受欢迎的留学目标国家,硕士占比76%

2023年申请出国留学的时间已经不远了,要想顺利实现留学梦想,希望你能够把握好以下几个要点: 首先,要清楚自己的留学目标,要考虑到自己的学习能力、英语水平、专业设置、学费等因素,以便挑选一个最合适的国…

startActivityForResult被标记为废弃?Activity Result API闪亮登场!

本文已同步发表于我的微信公众号,搜索 代码说 即可关注,欢迎与我沟通交流。 文章目录 startActivityForResult()被标记为过时registerForActivityResult替代方案使用示例ActivityResultContract 场景自定义ActivityResultContract 源码浅析registerForAc…

(4.2)STM32中断系统

目录 1.中断基本概念 2.中断的意义 3.中断处理过程 4. 中断体系结构 5.NVIC 6.EXTI 1.中断基本概念 在处理器中,中断相当于对于突发事件的处理过程。 当遇到内部/外部的紧急事件需要处理时,暂时中止当前程序,转而去处理紧急事件, …