docker搭建靶机

文章目录

  • 一,docker
      • (1)基础概念
      • (2)安装docker
      • (3)docker命令
          • 3.1 关于镜像的操作
          • 3.2 容器的基础操作
          • 3.3 容器的保存
          • 3.4 对容器操作
      • (4)使用docker-compose 编排镜像
      • (5)更换docker源
  • 二,搭建靶机

一,docker

(1)基础概念

沙箱机制

  • 1.沙箱是一个虚拟系统程序,沙箱提供的环境相对于每一个运行的程序都是独立的,而且不会对现有的系统产生影响.
  • 2.沙箱具有非常良好的独立性、隔离性,所以能够搭建一些具有高风险的软件进行测试.

docker
一个开源的应用容器引擎,基于GO语言

  • 作用:开发者打包他们的应用和依赖包到一个轻量级,可移植的容器中
  • 优点
  • ①消耗点
  • ②启动快

(2)安装docker

#先下载python(最好先换源)
sudo apt install python3

#安装pip
sudo apt install python3-pip

#安装docker
sudo apt-get install docker.io
#创建软连接
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
#下载docker-compose
sudo apt  install docker-compose

#开启docker
sudo systemctl start docker.service
sudo systemctl start docker.socket


(3)docker命令

3.1 关于镜像的操作

镜像的搜索

docker search XXXX
docker搭建靶机_第1张图片

镜像下载

docker pull XXXX

docker搭建靶机_第2张图片

查看本地镜像

docker images
在这里插入图片描述

删除本地镜像

docker rmi 镜像名

3.2 容器的基础操作

创建容器: docker run -itd --nane=指定容器的名称 使用的镜像名

-i:表示以交互模式运行容器
-d:表示后台运行容器,并返回容器ID
-t:为容器重新分配一个伪输入终端;

在这里插入图片描述

查看运行的容器

sudo docker ps
在这里插入图片描述

注意 同一个镜像可以assign到多个容器上


停止容器

docker stop 容器名/容器ID

重启容器

docker restart 容器名/容器ID

删除容器

docker rm 容器名/容器ID


3.3 容器的保存

进入容器

docker exec -it 容器名/容器ID /bin/bash

在这里插入图片描述

保存
对通过同一镜像创建的不同容器,操作之后,可以保存为一个新的镜像


3.4 对容器操作

------端口映射

  • docker搭建靶机_第3张图片

创建一个有端口映射的容器
docker run -itd -p 宿主机端口:容器端口 镜像名

docker搭建靶机_第4张图片

访问宿主机的90端口就是nginx喽

  • docker搭建靶机_第5张图片

(4)使用docker-compose 编排镜像

docker 提供了一个命令行工具 docker-compose 帮助完成镜像的编排, 要使用 docker-compose , 需要先编写一个 docker-compose.yml 文件, yaml 是一种常用配置文件格

yml :是一个可读性高,用来表达数据序列的格式
文章


(5)更换docker源

由于本来的源太慢了。。。。。,使用阿里的加速源。【容器镜像服务】

  • 登录之后,提供一个URL

配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户

通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo vim  /etc/docker/daemon.json
{
  "registry-mirrors": ["https://XXXXX.mirror.aliyuncs.com"]
}


sudo systemctl daemon-reload
sudo systemctl restart docker

二,搭建靶机

两个开源的项目

vulhub

VulApps

【vulhub靶机说明】

# 进入某一个漏洞/环境的目录
cd flask/ssti

# 自动化编译环境
docker-compose build

# 启动整个环境
docker-compose up -d

#每个环境目录下都有相应的说明文件,请阅读该文件,进行漏洞/环境测试。

#测试完成后,删除整个环境
docker-compose down -v


【实列】
进入要搭建的环境的目录查看yml文件

docker搭建靶机_第6张图片

使用docker-compose build 编译环境,然后启动环境

在这里插入图片描述

yang@yang-machine:~/baji/vulhub-master/joomla/CVE-2017-8917$ sudo docker-compose up -d
Pulling mysql (mysql:5)...
5: Pulling from library/mysql
8f91359f1fff: Pull complete
6bbb1c853362: Pull complete
e6e554c0af6f: Pull complete
f391c1a77330: Pull complete
414a8a88eabc: Pull complete
fee78658f4dd: Pull complete
9568f6bff01b: Pull complete
76041efb6f83: Pull complete
ea54dbd83183: Pull complete
566857d8f022: Pull complete
01c09495c6e7: Pull complete
Digest: sha256:f7985e36c668bb862a0e506f4ef9acdd1254cdf690469816f99633898895f7fa
Status: Downloaded newer image for mysql:5
Pulling web (vulhub/joomla:3.7.0)...
3.7.0: Pulling from vulhub/joomla
5e6ec7f28fb7: Pull complete
cf165947b5b7: Pull complete
7bd37682846d: Pull complete
99daf8e838e1: Pull complete
ae320713efba: Pull complete
ebcb99c48d8c: Pull complete
9867e71b4ab6: Pull complete
936eb418164a: Pull complete
bc298e7adaf7: Pull complete
ccd61b587bcd: Pull complete
b2d4b347f67c: Pull complete
56e9dde34152: Pull complete
9ad99b17eb78: Pull complete
f0b49b0a34a7: Pull complete
bc8d2ddd1ca2: Pull complete
cc87e0e6b730: Pull complete
80c164075256: Pull complete
1bb70ad75826: Pull complete
b30d9e1dab0d: Pull complete
c7e4f22b689f: Pull complete
5093ee2098f3: Pull complete
Digest: sha256:8b38262a5bfd3e8f56415e369c0970a736e31d1138fb9fe0343f88435d43574d
Status: Downloaded newer image for vulhub/joomla:3.7.0
Creating cve20178917_mysql_1 ... 
Creating cve20178917_mysql_1 ... done
Creating cve20178917_web_1 ... 
Creating cve20178917_web_1 ... done
yang@yang-machine:~/baji/vulhub-master/joomla/CVE-2017-8917$ 

查看是否成功启动
docker搭建靶机_第7张图片

访问测试是否成功
docker搭建靶机_第8张图片

测试完成后,删除整个环境

docker-compose down -v

sudo docker rmi 镜像ID

你可能感兴趣的:(靶机和漏洞复现)