• docker漏洞复现环境搭建


    0x00 docker简介

    把原来的笔记整理了一下,结合前几天的一个漏洞,整理一篇简单的操作文档,希望能帮助有缘人。

    docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。dockerde 原理是利用Linux内核虚拟机化技术(LXC),提供轻量级的虚拟化,以便隔离进程和资源。LXC不是硬件的虚拟化,而是Linux内核的级别的虚拟机化,相对于传统的虚拟机,节省了很多硬件资源。


    0x01 docker的安装

    安装的相关的文档可以在https://docs.docker.com/进行查找里面有各种系统版本的安装方法,这里以debian为例,其他的类似。

    1. 更新apt索引
      apt-get update

    2.更新所需组件
    apt-get install
    apt-transport-https
    ca-certificates
    curl
    gnupg2
    software-properties-common

    3.增加官方 GPG key:
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

    4.增加官方稳定源
    add-apt-repository
    "deb [arch=amd64] https://download.docker.com/linux/debian 
    $(lsb_release -cs) stable"

    5.再次更新一下apt索引,因为你刚才加入了新的源,需要更新后才能生效。
    apt-get update

    6.安装docker
    apt-get install docker-ce docker-ce-cli containerd.io

    7.测试安装是否成功
    docker run hello-world

    0x02 docker的基本操作命令

    docker的相关的命令一般会在命令的开始加上docker这个词。

    1.docker search 镜像名
    可以以关键字的方式在docker hub上进行检索

    2.docker pull 获取相关的镜像

    3.docker images查看相关的镜像
    其中TAG是容器的标签,用来区分不同的容器,如果不填写的话默认是latest,如果本地不存在latest版本则会自行下载。

    IMAGE ID是镜像的16位短ID

    4.容器启动 docker run
    docker run -itd –-name 容器名称 -p 主机端口:容器端口 镜像名称:标签 /bin/bash,下面这一长串是容器的完整ID。

    5.查看进程 docker ps 列出当前正在运行的容器。

    6.容器的启停
    docker stop/start 容器名/ID
    停止或启动容器,若是填写容器名则要全写上去,如果用的是ID,这里的ID并不需要写完整的ID或者16位短ID,只需要能与其他容器区分开即可,就算你只写第一个字符都是可以的,只要能区分开。

    7.进入容器
    docker attach 容器名/ID

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

    8.文件拷贝
    docker cp 主机中的文件目录 容器名:容器中的目录。将文件从主机拷贝到容器中

    这些docker的基本命令足够可以进行漏洞环境的搭建了。

    0x03 漏洞复现环境搭建

    建立一个漏洞复现的环境,其实和建立一个应用的步骤是类似的。只是漏洞复现环境是存在漏洞的应用而已。

    对环境的搭建比较方便的方式是通过dockerfile结合docker-compose

    Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于拉取的基础镜像并最终创建一个新的镜像,通过Dockerfile我们可以创建一个你需要的镜像,里面是包含了你要安装的软件,相当于是提前定制好要安装的拓展,执行的命令等,然后一键执行,极大地简化操作流程。Dockerfile由4部分组成:基础镜像信息、维护者信息、镜像操作指令和容器启动指令。

    Compose是用来定义和运行一个或多个容器应用的工具。Compose是使用YML文件来定义多容器应用的,它还会用docker-compose up命令把完整的应用运行起来。

    这里以前几天刚刚公布的CVE-2020-1938为例,简单编写,dockerfile如下:

    FROM vulhub/tomcat:8.5.19
    
    MAINTAINER test
    
    RUN chmod a+x /usr/local/tomcat/bin/*.sh
    
    COPY info.war /usr/local/tomcat/webapps/info.war
    
    EXPOSE 8080
    EXPOSE 8009

    docker-comfile.yml

    webapp:
        build: .
        ports:
            - "80:8080"
            -"8009:8009"

    执行docker-compose up -d


    通过映射的80,可以直接访问搭建的docker应用



    利用相关的poc进行漏洞验证


    docker在漏洞复现的环境搭建上,真的是特别方便。更多的命令细节,可以使用help及官方文档:
    https://docs.docker.com/

    欢迎关注我的公众号,等你


  • 相关阅读:
    为什么你应该(从现在开始就)写博客
    ASP.net 中使用Flexigrid详细教程之二直接使用数据库数据(有图有真相)
    保护眼睛的方法 (眼睛累了吗 来看看吧)
    程序员不如快递员?
    项目管理界面
    地址栏射击游戏!对,你没看错,就是在地址栏上玩的游戏,有图有真相!
    书写是为了更好的思考
    IT人员如何找到自己的时间?
    std::mem_fun_ref,mem_fun1_ref分析
    __declspec(selectany) 的作用是什么
  • 原文地址:https://www.cnblogs.com/A66666/p/42e77b131d347d76edec49ee749e753b.html
Copyright © 2020-2023  润新知