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

news/2024/7/3 12:07:04

文章目录

  • Docker
    • 组成部分
    • 架构
    • 应用场景
    • 优点
    • Docker安装
    • Docker的基本使用
  • Docker搭建sqli-labs靶场
  • 使用docker部署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在这里插入图片描述

http://www.niftyadmin.cn/n/3759277.html

相关文章

Emacs笔记

为什么80%的码农都做不了架构师&#xff1f;>>> Emacs转移HOME配置&#xff1a; (setenv "HOME" "path/to/dir")(load "~/.emacs.d/init.el") emacs-client用root权限修改文件&#xff1a; /sudo:rootlocalhost:/etc/fstab 用sudo去…

BUUCTF web 文件上传+文件包含篇

文章目录[ACTF2020 新生赛]Include——文件包含[极客大挑战 2019]Upload——文件上传[ACTF2020 新生赛]Upload——文件上传[SUCTF 2019]CheckIn——文件上传补充知识——cat ls&#xff08;linux命令&#xff09;[ACTF2020 新生赛]Include——文件包含 1.打开题目链接&#xf…

BUUCTF web SQL注入篇

文章目录[极客大挑战 2019]EasySQL[强网杯 2019]随便注[SUCTF 2019]EasySQL[极客大挑战 2019]LoveSQL[极客大挑战 2019]BabySQL[极客大挑战 2019]HardSQL[极客大挑战 2019]EasySQL 根据题目&#xff0c;可以使用万能密码来尝试登陆。 [强网杯 2019]随便注 根据题目&#xf…

java中常用的工具类(二)

为什么80%的码农都做不了架构师&#xff1f;>>> 1、FtpUtil package com.itjh.javaUtil;import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List;i…

命令执行篇

文章目录漏洞原理漏洞概述漏洞产生条件常用命令windowslinux漏洞危害利用方法管道符补充&#xff1a;常见URL转码危险函数PHP系统命令常见绕过空格绕过管道符绕过拼接绕过编码绕过关键字绕过IP中的点绕过长度限制绕过函数绕过文件包含读取高亮显示通过复制、重命名读取php文件内…

sqli-labs通关攻略教程——双服务器+宽字节注入(less29~less37)

文章目录补充知识-服务器的两层架构less 29less 30less 31less 32less 33less 34less 35less 36less 37从29关开始使用docker搭建的sqli-labs靶场KALI搭建DockerVulhub和sqli-labs靶场补充知识-服务器的两层架构 mysql之注入天书服务器 服务器两层架构即不同的id值有不同的服…

python(6)

多线程开发1、threading.Thread模块startgetName():获取名称setName():设置名称isDaemon()setDaemon()join&#xff08;timeout):进程等线程的时候&#xff0c;比如timeout等于5就是执行到线程的时候进程等线程5秒钟&#xff0c;如果线程执行超过5秒就不等待,继续执行进程run()…

mysql从txt导入数据,导出数据到txt

2019独角兽企业重金招聘Python工程师标准>>> 导出数据到txt: 1.select 列1,列2, ....... 列n from tbname [where 条件] into outfile "C:\backup\data.txt" FIELDS TERMINATED BY \t lines terminated by \n; 导出的数据是每列用tab 分开的具体数据…