KALI搭建Docker+Vulhub和sqli-labs靶场

Docker

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linuxwindows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。漏洞复现一般比较常用的方式就是使用docker-vulhub进行环境搭建

Vulhub简介
vulhub是一个基于dockerdocker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现会变得很简单。

Docker-compose简介
docker-compose是一个用python写的一个docker容器管理工具,可以更加方便的对docker容器进行管理,可以一键启动多个容器

组成部分

一个完整的Docker有以下几个部分组成:

  • DockerClient客户端
  • Docker Daemon守护进程
  • Docker Image镜像
  • DockerContainer容器

架构

镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

  • Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
  • Docker 容器通过 Docker 镜像来创建。
  • 容器与镜像的关系类似于面向对象编程中的对象与类。在这里插入图片描述

应用场景

  • Web 应用的自动化打包和发布。
  • 自动化测试和持续集成、发布。
  • 在服务型环境中部署和调整数据库或其他的后台应用。
  • 从头编译或者扩展现有的平台来搭建自己的环境。

优点

  • Docker 是一个用于开发,交付和运行应用程序的开放平台。
  • Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
  • Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。
  • 灵活、轻量级、便携式、可扩展性、可堆叠
  • Docker轻巧快速,在同一硬件上运行更多工作
  • 负硬件成本低,虚拟化硬件损耗也较低,性能好;
  • 支持打包管理,保证一致性;
  • 动态调度迁移成本低。

Docker安装

首先查看kali是否配置了更新源

lsb_release -a     //查看kali版本

在这里插入图片描述
其中kali-rolling为最新版

apt-get update    //更新软件包列表

我的在安装时出现了权限不够问题

在这里插入图片描述
解决方法:

sudo passwd root       //修改root密码

注意:在输入新密码时,键盘输入不会显示在终端,但是后台会记录,输入完直接点击回车即可。

在这里插入图片描述
完成root提升后重新在终端输入apt-get update来更新软件包列表在这里插入图片描述
或在前面添加sudo

如果提示与主机路由器连接不上之类的需要更换源的问题

sudo vim /etc/apt/suorces.list

输入i进行编辑,修改源文件为下面的值,将原来的值在前面使用#注释掉。

# See https://www.kali.org/docs/general-use/kali-linux-sources-list-repositories/
deb http://http.kali.org/kali kali-rolling main contrib non-free

#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#浙大
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free


# Additional line for source packages
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free

最后输入:wq(保存并退出),即可成功更换源。

sudo apt-get update

apt-get install -y apt-transport-https ca-certificates   //安装CA证书

在这里插入图片描述

apt-get install dirmngr    //安装dirmngr

在这里插入图片描述
添加GPG密钥并添加更新源

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

sudo echo ‘deb https://download.docker.com/linux/debian buster stable’ | sudo tee /etc/apt/sources.list.d/docker.list

在这里插入图片描述

sudo apt-get update //系统更新

我的第一次提示文件第一行的记录格式有误
在这里插入图片描述
解决方法:

sudo rm /etc/apt/sources.list.d/docker.list

在这里插入图片描述
在这里插入图片描述
安装docker

sudo apt install docker-ce

在这里插入图片描述

启动docker服务器

service docker start

在这里插入图片描述
安装compose

sudo apt install docker-compose

在这里插入图片描述
docker安装测试

docker version 查看docker版本信息
docker images 查看拥有的images
docker ps 查看docker container

Docker的基本使用

docker images           查看存在的镜像
docker rmi image    删除镜像
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs     运行存在的镜像
docker exec -it <container ID> /bin/bash           进入运行中的容器
docker run -it --rm ubuntu /bin/bash      运行存在的镜像,并以交互的方式进入容器,运行完删除容器
docker ps          查看运行中的容器
docker ps -a       查看所有容器
docker ps -aqf “name=容器的名字”    查询容器ID
docker stop <container ID>      停止指定的容器,不指定为停止所有容器
docker rm       删除所有的容器
docker container [stop/start/restart]     停止/开启/重启容器
docker container kall <container ID>      强制停止容器
docker commit -p <container ID> container-backup      创建Docker的快照
​
把宿主机文件拷到容器里面
docker cp 要拷贝的文件路径 容器名: 要拷贝到容器里面对应的路径
​
容器里面拷文件到主机
docker cp 容器名: 要拷贝的文件在容器中的路径 要拷贝到宿主机器的响应路径

Docker搭建sqli-labs靶场

sqli-labs靶场到了30关左右,需要使用linux环境下来做题,windows环境搭建可能无法满足。

首先启动docker

service docker start

查找sqli-labs镜像

sudo docker search sqli

在这里插入图片描述
由于默认的镜像较慢,我们使用阿里云镜像加速器进行加速。

  1. 注册阿里云账号并打开阿里云工作台
  2. 选择产品与服务并搜索容器镜像服务在这里插入图片描述
  3. 选择左侧镜像工具栏中的镜像加速器在这里插入图片描述
  4. kali中进行配置即可,前提条件是要启动docker在这里插入图片描述

拉取镜像到本地

sudo docker pull acgpiano/sqli-labs

在这里插入图片描述

查看已有镜像

docker images

在这里插入图片描述
启动sqli-labs环境:

sudo docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs

-dt 让其在后台运行
--name 给其命名
-p 本地端口:docker中的端口是将docker的端口映射到本地端口
--rm 容器退出后能自动清理容器内部的文件系统
docker ps -a 显示容器container容器的id image 命令 端口

在这里插入图片描述

使用docker部署sqli-labs靶场

  1. 更换端口号13306:3306
    3306mysql数据库端口
    13306Apache服务端口

sudo docker run -dt --name sqli -p 13306:3306 --rm acgpiano/sqli-labs

在这里插入图片描述

  1. 在终端命令行中输入ipconfig来查询dockerIP
  2. 在本机上直接访问该IP地址。
  3. 若要停止sqli-labs在这里插入图片描述
  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

poggioxay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值