zoukankan      html  css  js  c++  java
  • 【渗透测试小白系列】之Docker入门以及漏洞环境搭建

    (本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦)

     

    该笔记参考网络中的文章,本文仅为了学习交流,严禁非法使用!!!

    一、介绍

    Docker:开源的应用程序容器引擎,使用Go语言开发。借助于Docker打包的应用程序,将这些应用程序包含到容器中,实现虚拟化,容器使用沙箱机制,相互独立、占用资源非常少

    1.Docker的三个概念:

    • 镜像:image,Docker镜像是一个只读的模板,比如我们再镜像中包含完整的操作系统,在该操作系统中安装LAMP环境,镜像可以创建容器
    • 容器:container,Docker利用容器运行程序,容器是从镜像中创建运行的一个实例,容器可以运行、关闭、删除
    • 仓库:repository,集中存放镜像的地方,每个仓库中包含了多个镜像,可以私有可以公开,最大的仓库是Dockerhub

     

    二、在Kali中安装Docker

    1.更换Kali更新源

    2.安装Docker

    1 curl -s https://get.docker.com/ | sh
    2 apt install docker.io

    3.配置镜像加速器

    • /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
    1 {
    2   "registry-mirrors": [
    3     "https://dockerhub.azk8s.cn",
    4     "https://reg-mirror.qiniu.com"
    5   ]
    6 }

    4.重启Docker

    /etc/init.d/docker restart

    5.查看Docker版本

    docker -v

    6.查看当前Docker环境信息,找到repository-mirrors(存储库镜像)

    docker info

     

    三、常用命令

    1.镜像

    1 docker search mysql  搜索MySQL镜像
    2 docker pull 镜像名称  下载镜像
    3 docker images  查看本地已下载好的镜像
    4 docker rmi 镜像的ID  删除镜像

    2.容器

     1 docker run -d -p 8080:80 --rm --name 容器名称 镜像ID或镜像名称
     2     -d  表示后台运行
     3     -p  表示后跟端口  port1:port2  将容器内部服务端口port2映射到本地端口port1(如果-p后什么也不写,则随机分配端口)
     4     --rm  表示容器停止之后会自动删除
     5     --name  表示容器运行起来之后
     6 docker ps  查看运行的Docker
     7 docker ps -a  查看所有容器的运行状态
     8 docker stop 容器名称或容器ID  关闭容器
     9 docker start 容器名称或容器ID  开启容器
    10 docker rm 容器名称或容器ID  删除容器
    11 docker exec -it 容器ID /bin/bash  进入容器内部
    12     -it  表示交互模式
    13 docker save 镜像ID > test.tar  导出镜像
    14 docker load < test.tar  导入镜像

    四、使用Vulhub搭建漏洞

    1.介绍

    Vulhub:是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像

    2.下载地址

    3.环境准备

    • 首先需要安装pip(pip是Python用来管理工具包的工具)
    curl -s https://bootstrap.pypa.io/get-pip.py | python3

    • 安装最新版Docker
    curl -s https://get.docker.com/ | sh
    • 启动Docker服务
    service docker start
    • 安装compose
    pip install docker-compose

    • 查看compose版本

      • 报错原因:找不到 ssl_match_hostname模板
      • 解决方法:
        • 安装ssl_match_hostname模板
    pip install ssl_match_hostname
        • 但是会提示该模块已经安装,最终问题原因是:**/usr/local/lib/python2.7/distpackages/docker/transport/ssladapter.py **,即在包路径下找不到 backports包里的ssl_match_hostname模块,复制模块到包路径下
        • 进入backports模块路径
    cd /usr/local/lib/python2.7/dist-packages
        • 复制整个包到transport包路径下
    cp -r backports /usr/local/lib/python2.7/dist-packages/docker/transport

    (该解决方法来源于CSDN博主「KISSLOO」的原创文章https://blog.csdn.net/lql971203/article/details/89047265,十分详细,感谢!!!)

    4.下载Vulhub资源

    1 git clone https://github.com/vulhub/vulhub.git
    2 或wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip

    5.解压

    unzip vulhub-master.zip

    6.进入Vulhub下某个目录(根据漏洞名称或服务名称命名)中

    7.启动整个环境,Docker会自动pull镜像并运行

    docker-compose up -d

    8.运行起来的环境需要查看端口,tomcat默认端口8080

    docker ps

    9.每个环境目录下都有相应的说明文件,请阅读该文件

    10.网页浏览http://192.168.10.135:8080

    11.进行漏洞/环境测试

    12.测试完成后,删除整个环境,或关闭容器

    • 注:在哪一个目录中开启的,就需要在哪一个目录中关闭,环境启动是依赖docker-compose.yml开启的
    1 docker-compose down -v
    2 docker stop 容器名称或容器ID  关闭容器

  • 相关阅读:
    马尔科夫过程的CKS方程的推导
    科研的一些工具和想法
    读研究生后的一些想法
    读过的一些好书以后可做参考
    latex学习笔记
    机器人工程师学习要求
    《MySQL实战45讲》(8-15)笔记
    《MySQL实战45讲》(1-7)笔记
    java11运行javaFX项目
    ClickHouse入门笔记
  • 原文地址:https://www.cnblogs.com/yankaohaitaiwei/p/11788333.html
Copyright © 2011-2022 走看看