docker-compose安装

1. 安装docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看有没有安装旧版本的
[root@localhost ~]# yum remove docker docker-common docker-selinux docker-engine
# 安装依赖软件包
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置yum源
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查看所有docker版本
[root@localhost ~]# yum list docker-ce --showduplicates | sort -r
# 安装
[root@localhost ~]# yum install docker-ce -y
# 查看版本
[root@localhost ~]# docker version
# 启动
[root@localhost ~]# systemctl start docker

2. 安装docker-compose

1
2
3
4
5
6
7
8
# 下载docker compose
[root@localhost ~]# curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加可执行权限
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
# 将文件copy到 /usr/bin/目录下
[root@localhost ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 查看版本
[root@localhost ~]# docker-compose --version

Vulhub靶场的搭建

项目地址:

vulhub/vulhub: Pre-Built Vulnerable Environments Based on Docker-Compose (github.com)

wiki地址:

Vulhub - Docker-Compose file for vulnerability environment

安装过程

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# If you don't have a docker installed, you'll need to install docker
curl -s https://get.docker.com/ | sh


# 安装
yum install -y git
git clone https://github.com/vulhub/vulhub.git
cd ./vulhub

# Compile (optional)
docker-compose build

# Run
docker-compose up -d

image-20220624220101917

启动漏洞环境

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

进入目录

在Vulhub中选择某个环境,进入对应目录。如Flask服务端模板注入漏洞,我们进入httpd/apache_parsing_vulnerability/ ssi-rce/cve-2017-15715/目录:

image-20220624220331117

1
2
cd httpd/apache_parsing_vulnerability/
ls

运行靶场

直接执行如下命令,进行漏洞靶场的编译和运行:

要先

1
systemctl start docker

不然会报错如下:

image-20220624221035612

然后再执行下面二选一:

1
2
3
4
5
# 可选

docker-compose build

docker-compose up -d

image-20220624221208554

靶机环境启动完成!

1
docker-compose down

关闭靶机:

image-20220624223919131

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

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

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