CentOS 7 安装docker容器及Vulhub靶场

CentOS 7 安装docker容器及Vulhub靶场


​ Vulhub是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。旨在让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。

安装dockerdocker-compose后即可开始使用vulhub。

一、准备工作

​ 安装dockerdocker-compose的过程中需要用到pip以及git命令,CentOS7自带的python(这里指python2)没有pip功能。可以选择安装python的pip,也可以安装较新版本的python3,安装过程会附带安装pip3。

1、python2安装pip命令(步骤1和2二者选其一)
[root@localhost opt]# yum install python-pip

#若出现如下问题,可通过删除对应文件解决
/var/run/yum.pid 已被锁定,PID 为 7070 的另一个程序正在运行。
Another app is currently holding the yum lock; waiting for it to exit...
  另一个应用程序是:PackageKit
    内存:148 M RSS (559 MB VSZ)
    已启动: Thu May 25 23:21:14 2023 - 00:16之前
    状态  :睡眠中,进程ID:7070

#删除已存在的进程文件,再进行安装,输入 y 确认即可完成pip安装
[root@localhost opt]# rm -f /var/run/yum.pid
[root@localhost opt]# yum install python-pip

#查看python2版本
[root@localhost opt]# python -V
Python 2.7.5
2、安装python3
#安装Python基础依赖包,缺少这一步会出错
[root@localhost opt]# yum -y install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel

# 创建目录
[root@localhost opt]# mkdir -p /usr/local/python3

# 下载安装包
[root@localhost opt]# wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz

# 解压安装包
[root@localhost opt]# tar -xvf Python-3.10.11.tgz

# 编译安装Python
[root@localhost opt]# cd Python-3.10.11 && ./configure --prefix=/usr/local/python3 && make && make install
#删除一些临时文件(删除源代码(C\C++ code)生成的执行文件和所有的中间目标文件)
[root@localhost Python-3.10.11]# make clean

#创建python软链
#在/usr/bin路径下创建python3软链,指向已安装的python3.10
[root@localhost Python-3.10.11]# ln -s /usr/local/python3/bin/python3.10 /usr/bin/python3

#在/usr/bin路径下创建pip软链,指向已安装的pip3.10
[root@localhost Python-3.10.11]# ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip

#配置完成之后,此时系统中存在两个python版本:命令python对应的仍是默认2.7版本;命令python3则对应新安装的3.10.11版本

#更新pip命令,临时制定下载源
[root@localhost Python-3.10.11]# pip install --upgrade pip -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

如果pip install 命令出错显示无可用的ssl模块的话,请参考https://blog.csdn.net/qq_37996012/article/details/134387394

3、修改pip下载源

(1)临时修改

#命令行后面指定下载地址并添加信任
[root@localhost ~]# pip install docker-compose -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

(2)永久修改

#命令行永久修改
[root@localhost ~]# pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
[root@localhost ~]# pip config set install.trusted-host mirrors.aliyun.com

#或
#在家目录下建立一个隐藏的pip目录,然后再创建一个名为pip.conf的配置文件,在pip.conf文件中输入如下内容即可

[root@localhost ~]# mkdir -p ~/.pip
[root@localhost ~]# vim ~/.pip/pip.conf

#然后输入以下内容:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host = mirrors.aliyun.com

​ 以下是国内互联网常用的pypi安装源URL,在国内互联网下载的速度非常快

清华大学源:https://pypi.tuna.tsinghua.edu.cn/simple
腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
阿里源:https://mirrors.aliyun.com/pypi/simple/
豆瓣源 :http://pypi.douban.com/simple/

4、更新 yum 源
[root@localhost ~]# yum -y update

5、题外话

python卸载方法,以python3.6做示范(卸载步骤与docker安装无关,跳过)

方法1:

#查看python3.6路径
[root@localhost ~]# whereis python3.6

#删除python3.6相关文件
[root@localhost ~]# rm -rf /usr/bin/python3.6m
[root@localhost ~]# rm -rf /usr/bin/python3.6
[root@localhost ~]# rm -rf /usr/lib/python3.6
[root@localhost ~]# rm -rf /usr/lib64/python3.6
[root@localhost ~]# rm -rf /usr/include/python3.6m

#再次查看所有的路径,看是否只剩下python2的
[root@localhost ~]# whereis python

#python3.6卸载完成

方法2:

#卸载pyhton3:
[root@localhost ~]# rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps

#删除所有残余文件
[root@localhost ~]# whereis python3 |xargs rm -frv

#卸载完成

二、卸载旧版本docker(第一次安装则不需要此步骤)

1、准备工作
#停止 docker 服务
[root@localhost ~]# systemctl stop docker
[root@localhost ~]# systemctl stop docker.socket

#删除所有docker镜像
docker rmi $(docker images -qa)

#杀死并删除所有docker容器
docker rm -f $(docker ps -qa)

#删除docker相关存储目录:(分别进行执行以下四个命令)
rm -rf /etc/docker
rm -rf /run/docker
rm -rf /var/run/docker
rm -rf /var/lib/dockershim 
rm -rf /var/lib/docker 

#如果删除不掉,则先umount,然后再重新执行上面那步“删除docker相关存储目录”。
umount /var/lib/docker/devicemapper
2、卸载工作
[root@localhost ~]# yum remove docker docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

#查看系统已经安装了哪些docker包:
[root@localhost ~]# yum list installed | grep docker
[root@localhost ~]# yum remove docker-ce.x86_64 docker-ce-cli.x86_64 docker-engine docker-selinux

#再次查看
[root@localhost ~]# yum list installed | grep docker


#也可以尝试以下命令进行卸载
[root@localhost ~]# yum -y remove docker  docker-common docker-selinux docker-engine

三、安装docker

1、安装docker依赖环境
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
2、使用阿里云docker yum源(也可以使用国内其他下载源)
#进入opt目录
[root@localhost ~]# cd /opt

[root@localhost opt]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost opt]# yum makecache fast

#查看所有仓库中所有docker版本,以便选择版本安装
[root@localhost opt]# yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror, langpacks
已安装的软件包
可安装的软件包
 * updates: mirrors.aliyun.com
Loading mirror speeds from cached hostfile
 * extras: mirrors.aliyun.com
docker-ce.x86_64            3:24.0.2-1.el7                     docker-ce-stable 
docker-ce.x86_64            3:24.0.2-1.el7                     @docker-ce-stable
docker-ce.x86_64            3:24.0.1-1.el7                     docker-ce-stable 
docker-ce.x86_64            3:24.0.0-1.el7                     docker-ce-stable 
#省略号...
docker-ce.x86_64            17.12.1.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.12.0.ce-1.el7.centos            docker-ce-stable 
docker-ce.x86_64            17.09.1.ce-1.el7.centos            docker-ce-stable 


#默认安装最新版本
[root@localhost opt]# yum -y install docker-ce

#或指定安装版本
[root@localhost opt]# yum install docker-ce-24.0.2

#查看docker版本,判断安装启动是否成功
[root@localhost opt]# docker version
Client: Docker Engine - Community
 Version:           24.0.2
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        cb74dfc
 Built:             Thu May 25 21:55:21 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.2
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       659604f
  Built:            Thu May 25 21:54:24 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

3、加入开机自启并启动docker
[root@localhost opt]# systemctl enable docker
[root@localhost opt]# systemctl start docker
4、设置国内源,使用Docker镜像加速
[root@localhost ~]# vi /etc/docker/daemon.json

#写入以下内容, 按esc键然后输入 :wq  保存退出
{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://3laho3y3.mirror.aliyuncs.com",
    "http://f1361db2.m.daocloud.io",
    "https://mirror.ccs.tencentyun.com"
  ]
}

#为防止出错,再复制并重命名一份,把daemon.json配置文件改成daemon.conf
[root@localhost ~]# mv daemon.json daemon.conf
#重新启动服务
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

四、下载安装docker-compose

[root@localhost opt]# sudo curl -L "https://github.com/docker/compose/releases/download/v1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose


#这里可能会因为网络问题导致下载不完整因而运行命令时出错,重新运行命令或者换一个下载方式

[root@localhost opt]# curl -L "https://get.daocloud.io/docker/compose/releases/download/v1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose

# 查看版本信息,看是否安装成功
[root@localhost opt]# docker-compose version

docker-compose version 1.25.0, build 0a186604
docker-py version: 4.1.0
CPython version: 3.7.4
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

五、下载vulhub环境

#打开下载存放目录
[root@localhost ~]# cd /opt
#下载vulhub环境
[root@localhost opt]# git clone https://github.com/vulhub/vulhub.git

#如果下载出错,可能是因为(国内外)网络问题,重试几遍,或者将 https 改为 git
[root@localhost opt]# git clone git://github.com/vulhub/vulhub.git

六、使用vulhub

1、启动环境

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

​ 在Vulhub中选择某个环境,进入对应目录。如appweb服务端模板注入漏洞,我们进入appweb/CVE-2018-8715目录:

#未防止无法访问靶场,需关闭防火墙,也可以添加8080
[root@localhost opt]# systemctl stop firewalld.service

#进入某个环境对应的目录
[root@localhost opt]# cd /opt/vulhub/appweb/CVE-2018-8715

#执行如下命令,进行漏洞靶场的编译和运行:
[root@localhost CVE-2018-8715]# docker-compose build
#或
[root@localhost CVE-2018-8715]# docker-compose up -d

#查看运行服务端口
[root@localhost CVE-2018-8715]# docker ps

#通过容器ID查看对应IP,[容器ID]为漏洞环境所在容器
[root@localhost CVE-2018-8715]# docker inspect [容器ID] | grep IPAddress

为什么docker-compose build是可选的?

docker-compose up -d运行后,会自动查找当前目录下的配置文件。如果配置文件中包含的环境均已经存在,则不会再次编译;如果配置文件中包含的环境不存在,则会自动进行编译。所以,其实docker-compose up -d命令是包含了docker-compose build的。

​ 如果更新了配置文件,可以手工执行docker-compose build来重新编译靶场环境。

2、漏洞测试

Vulhub中所有漏洞环境均配置了详细的文档,包括如何编译、启动、原理、复现。

​ 使用物理机或者虚拟机访问,比如在浏览器搜索地址输入:192.168.124.42:8080

3、移除环境

​ Vulhub中所有环境均为漏洞靶场,在测试结束后,请及时关闭并移除环境,避免被他人恶意利用。

虽然靶场全部运行在Docker中,但大多数恶意软件并不会因为运行在容器中就失去效果!

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

[root@localhost CVE-2018-8715]# docker-compose down

#关闭docker服务
[root@localhost ~]# systemctl stop docker
[root@localhost ~]# systemctl stop docker.socket

上述命令会执行如下几个动作:

  • 关闭正在运行的容器
  • 删除所有相关容器
  • 移除NAT(docker-compose在运行的时候会创建一个NAT网段)

​ 但不会移除编译好的漏洞镜像,下次再执行docker-compose up -d命令,就不需要再次编译相关镜像了。

参考链接:

1.Centos 7 安装python 3.8

https://blog.csdn.net/qq_41261251/article/details/105407495

2.漏洞利用

https://vulhub.org/#/environments/

3.vulhub安装

https://blog.csdn.net/JJ951001/article/details/104578501/

4.docker卸载

https://www.cnblogs.com/wangzy-Zj/p/13993468.html#:~:text=1.%E4%B8%80%E6%AC%A1%E6%80%A7%E6%9D%80%E6%AD%BB%E5%B9%B6%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89docker%E5%AE%B9%E5%99%A8%EF%BC%9A%20docker%20rm%20-f%20%24%20(docker%20ps%20-qa),rm%20-rf%20%2Fetc%2F%20docker%20rm%20-rf%20%2Frun%2F%20docker

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值