关于docker复现vulhub环境的搭建
原本想用docker复现一下vul的漏洞。
装docker过程中遇到了很多问题,
昨天熬夜到凌晨三点都没弄完。
中午又找了找原因,终于全部解决了,
小结一下。
0x01 镜像
去官方下载了centos 8的镜像,
https://www.centos.org/
0x02 在vmware中安装centos系统
参考https://blog.csdn.net/babyxue/article/details/80970526
在安装过程中遇到第一个问题,卡在安装界面
通过百度和尝试,
发现在设置里的CD/DVD默认路径错误,
修改为centos 8镜像的路径即可。
1
0x03 尝试一键安装docker 失败
curl -s https://get.docker.com/ | sh
运行命令时,显示没有这个命令,
我尝试去掉了| sh,发现回显报错了很多,最后一个error,失败了。
0x04 尝试下载到主机上再拖入centos系统 失败
在我docker下载完成后,发现将docker没办法拖入centos系统
因为我还没有安装vmware tools
0x04 尝试安装wmare tools
参考https://jingyan.baidu.com/article/af9f5a2df3bce003150a4559.html
在安装过程中发现没有root权限,几经周折,才得以解决。
'su -'切换至root权限,
'su your-name'切换回原账号.
0x05 安装docker-compose
解压docker后,还要安装docker-compose。
Docker-compose用于组合服务与内网。
有部分环境涉及到多个容器,且不同环境开启的端口、目录也不相同,
所以Vulhub选择使用docker-compose做环境一键化管理工具。
用户不再需要学习docker命令的各种参数与用法,
只需要简单地执行 docker-compose up -d即可启动容器。
由于centos 8并没有自带pip(自带了python3)
而安装docker-compose需要pip,所以目标又转向了pip的安装
curl -s https://bootstrap.pypa.io/get-pip.py | python3
安装完pip后就可以进行docker-compose的安装了。
pip install docker-compose
0x06 下载Vulhub
安装完成docker和docker-compose后,拉取Vulhub到本地任意目录即可
git clone https://github.com/vulhub/vulhub.git
0x07 意外发生,无法启动docker
下载完Vulhub后我发现竟然没法打开docker
查找了好久好久的资料,昨天晚上睡前都没解决。凌晨三点实在熬不住了。
今天起来又好好看了看报错,
发现了问题所在,一大长条的报错中有这样一句话
Error: Problem 1: problem with installed package podman-3.0.1-6.module_el8.4
即CentOS 8中安装Docker出现和Podman冲突
我又去查阅Podman
两种解决办法
第一种删除Podman
查看是否安装 Podman
rpm -q podman
podman-1.4.2-5.module_el8.1.0+237+63e26edc.x86_64
删除Podman
dnf remove podman
第二种尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用最佳选择的软件包
yum erase podman buildah
yum install docker-ce docker-ce-cli containerd.io
最终解决docker问题。
0x07 启动docker
启动docker:systemctl start docker
查看docker:ps -ef | grep docker
漏洞靶场的编译和运行: docker-compose build 或 docker-compose up -d
N[Q{N058T1UFTW8QDW6X{1L.png
docker-compose up -d运行后,会自动查找当前目录下的配置文件。
如果配置文件中包含的环境均已经存在,则不会再次编译;
如果配置文件中包含的环境不存在,则会自动进行编译。
所以,其实 docker-compose up -d命令是包含了 docker-compose build的。
如果更新了配置文件,你可以手工执行 docker-compose build来重新编译靶场环境。
0x08 关闭docker
docker-compose down
关闭正在运行的容器
删除所有相关容器
移除NAT(docker-compose在运行的时候会创建一个NAT网段)
但不会移除编译好的漏洞镜像,下次再执行 docker-compose up -d命令,就不需要再次编译相关镜像了。
关于docker复现vulhub环境的搭建的更多相关文章
- docker安装+测试环境的搭建---
漏洞演练环境docker地址:http://vulhub.org/#/environments/ 环境:kali-linux-2017.2-amd64.iso 一.docker安装 1.先更新一波源: ...
- Web安全测试学习笔记 - vulhub环境搭建
Vulhub和DVWA一样,也是开源漏洞靶场,地址:https://github.com/vulhub/vulhub 环境搭建过程如下: 1. 下载和安装Ubuntu 16.04镜像,镜像地址:htt ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- 从零开始搭建Jenkins+Docker自动化集成环境
本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...
- Ubuntu 基于Docker的TensorFlow 环境搭建
基于Docker的TensorFlow 环境搭建 基于(ubuntu 16.04LTS/ubuntu 14.04LTS) 一.docker环境安装 1)更新.安装依赖包 sudo apt-get up ...
- EOS Dapp开发(1)-基于Docker的开发环境搭建
随着EOS主网的上线,相信基于EOS的Dapp开发会越来越多,查阅了很多资料相关的开发资料都不是很多,只能自己摸索,按照网上仅有的几篇教程,先git clonehttps://github.com/E ...
- PC(win10)上搭建 kubernetes + docker 集群环境
最近kubernetes很火,加上我又在寻找适合快速搭建测试环境的方法,kubernetes的理念很适合用于测试环境的搭建. 因此在学习的过程中写下此教程(记录)以供回顾. 0x00 环境准备 0x0 ...
- Docker学习总结(13)——从零开始搭建Jenkins+Docker自动化集成环境
本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...
- thinkphp5.x命令执行漏洞复现及环境搭建
楼主Linux环境是Centos7,LAMP怎么搭不用我废话吧,别看错了 一.thinkphp5.X系列 1.安装composer yum -y install composer 安装php拓展 yu ...
随机推荐
- 深入浅出Mybatis系列(三)---配置简介(mybatis源码篇)
上篇文章<深入浅出Mybatis系列(二)---Mybatis入门>写了一个Demo简单体现了一下Mybatis的流程.本次,将简单介绍一下Mybatis的配置文件: 上次例子中,我们以 ...
- jQuery中的文档操作处理(五):append()、prepend()、after()、before()、wrap()、wrapAll()、wrapInner()、clone()等
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- 回忆java输入输出流,走出误区
input read 将一个XXX读入(input)---从输入流中读取数据的下一个字节(code操作的).output write 将一个类型的数据写入此流(code操作的)---然后把XXX输出( ...
- kafka零数据丢失的配置方案
讨论一下kafka参数的配置 1.acks 参数配置 acks这个参数有三个值:0,1,-1,但是不用的参数对应的含义不同,那如果我们想要保证数据不丢失,acks 值应该设置为哪个参数呢? 0:代表生 ...
- 了解Flask
了解Flask 什么是Flask Flask 是一个微框架(Micro framework),所谓微框架,它就是很轻量级的,作者划分出了Flask应该负责什么(请求路由.处理请求.返回响应).不应该负 ...
- go GC垃圾回收原理
目录 1.前言 2. 垃圾回收算法 3. Golang垃圾回收 3.1 垃圾回收原理 3.2 内存标记(Mark) 3.3 三色标记 3.4 Stop The World 4. 垃圾回收优化 4.1 ...
- pgsql学习
--求所有人的薪水的总和,平均值,最大值,最小值 select sum(sal) , avg(sal), max(sal) , min(sal) from emp; --求总的行数 select co ...
- CentOS 7.3安装Zabbix3.2
一.ZABBIX概述 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件.可以监视各种系统与设备的参数,保障服务器及设备的安全运营. Zabbix的功能和特性: 1.安装与配置简单: ...
- centos7 ftp 拒绝连接
2021-09-03 1. 问题描述 刚才在重新搭建 ftp 服务器时,发现 ftp 拒绝连接,想起来我还没启动 vsftpd 服务,尝试启动却无法启动 vsftpd 服务 2. 解决方法 使用命令 ...
- java变量类型和常量类型
变量类型 局部变量 实例变量 类变量 public class 变量类型 { //属性:变量 //必须先定义再使用,并初始化 //布尔型:默认值为false //3. 类变量(静态变量) static ...