手把手教你制作漏洞复现环境

在学习的过程中, 是否看到别人搭建的练习平台心痒痒呢? 通过本篇教程的学习, 将手把手教你搭建属于自己的漏洞测试利用环境, 不管是自己学习还有分享给小伙伴都将轻而易举.Ps: 这是一篇伪 Docker 学习指南为什么选择 Docker现在市面上的大体分三种, 当然这只是我自己的理解. 分别是:,及. 本次教程就已为例, 不含其他两项。相比其他两项,的夸平台及针对性是最好的. 不知道你们有遇到过因为CPU不同而无法启动运行?因为版本或平台不同, 运行发布后的项目发现或不一致而无法运行? 我的意见是给相关开发寄刀片, 你认为呢?当然缺点也是有的, 比如,等...蛤?, 可以看一看 《Docker 从入门到实践》:https://www.gitbook.com/book/yeasy/docker_practice/details对这方面感兴趣就去阅读一遍吧, 对你会有提升的.知识本来是很普通常见, 有的人却喜欢挑上那些外表华丽光鲜的.必须知道的东西Docker 目前的定义是容器引擎, 可以方便的管理容器. 常用于整合统一整个开发, 测试, 和部署环境的流程, 节省运维成本。虚拟机和容器每个容器都是轻量, 独立, 可执行的文件包, 其中包括软件运行所需的一切内容. 包括运行所需要的代码, 库, 环境变量和配置文件.对于容器没有一个严格的定义, 目前普遍认同其是一个相对独立的运行环境.下面引用官方图简单讲解下它们之间的差异1、VM

2、Docker

传统虚拟机技术是虚拟出一套硬件后, 在其上运行一个完整操作系统, 在该系统上再运行所需应用进程. 而容器内的应用进程直接运行于宿主的内核, 容器内没有自己的内核, 而且也没有进行硬件虚拟. 因此容器要比传统虚拟机更为轻便, 所以能实现甚至是启动.功能和组件客户端(Docker Client)守护进程(Docker Server)容器(Docker Container)镜像(Docker Images)仓库(Registry)Docker Client在中, Docker 将客户端和服务端统一在同一个二进制文件中. 其他平台则只提供 Client.Docker Server它是驱动整个 Docker 功能的核心引擎, 作用是接收客户端发送的请求, 实现请求中要求的功能并返回相应额结果.Docker Container镜像( Image ) 和容器( Container) 的关系, 就像是面向对象程序设计中的 类 和 实例 一样, 镜像是静态的定义, 容器是镜像运行时的实体. 容器可以被创建、启动、停止、删除、暂停等.容器的实质是进程, 但与直接在宿主执行的进程不同, 容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间. 容器内的进程是运行在一个隔离的环境里, 使用起来, 就好像是在一个独立于宿主的系统下操作一样. 这种特性使得容器封装的应用比直接在宿主运行更加安全. 也因为这种隔离的特性, 很多人初学 Docker 时常常会把容器和虚拟机搞混.上述引用《Docker 从入门到实践》中关于容器的介绍**Docker Images如果说容器提供了一个完整的、隔离的运行环境, 那么镜像则是这个运行环境的静态体现, 是一个还没运行起来的.Registry和名字一样, 它就是一个存放镜像的仓库, 通常部署在网络中的服务器上或云中. 《官方仓库: Docker Hub》 :https://hub.docker.com/附网上一张 docker 功能图:

环境准备安装 docker前提条件是满足内核版本, 官方建议为以上版本及 Cgroup 和 Namespace 相关选项.Ubuntu or Debian我用的是, 你可以自行选择用那一个. 进入官网, 直接点右上角的下载即可. 或者点再进入选择你所需的.系统安装就不累赘了, 任意百度一篇文章均可。Docker CE官方为了简化安装流, 提供了一套便捷的安装脚本,系统上可以使用这套脚本安装:or执行这个命令后,脚本就会自动的将安装至系统.想加入开启自启动则:验证是否存在, 如果看到存在就说明成功:镜像加速运行前需要本地存在对应的镜像, 本地没有则会去远程镜像仓库下载. 默认是国外的下载源, 下载的时候会很慢. 建议配置加速器:该脚本可以将加入到你的配置文件中.或者将内容改为阿里加速:"registry-mirrors": ["https://mqodggij.mirror.aliyuncs.com"]其他安装的见相关文档docker-ce官方安装文档:https://docs.docker.com/engine/installation/linux/docker-ce/debian/#install-docker-ce-1阿里 docker-CE 安装帮助:https://yq.aliyun.com/articles/110806基本示范前面说到在运行时我们称之为, 而均需要从网络的仓库拉取一个基础镜像本地, 根据需要, 再填充或修改所需的配置等.获取镜像的指令是, 常用格式. 比如从官方仓库下载一个最新版本的PHP镜像, 则运行当镜像下载好后, 我们就可以已该镜像启动容器, 并进入容器做相应操作.( run 容器时, docker 会先试图在本地找运行容器的指定镜像, 如果没有则会从远程仓库拉取. )run表示运行-it这是常用的两个参数, 组合起来表示运行交互式终端ubuntu:latest这是指用 ubuntu 最新的镜像tag来启动容器.bash命令运行一个交互 Shell, 完整是最后通过来退出这个容器.实例一:

实例一中参数讲解: 用于列出已经下载至本地的镜像列表. 列表包含: 用来查看运行中的容器状态.实例二:

实例二中参数讲解:: 将启动的容器名称命名为 apache.: 该参数用于表示容器在后台运行: 指定映射端口, 将本地8080端口映射至容器80端口: 指定容器依赖 apache 镜像运行其余详细指令和参数请查看官网或《Docker 从入门到实践》, 此处不再做过多概述.除了上述 shell 交互方式, Docker 还提供一种脚本文件的方式来构建所需镜像, 减少在不同机器上重复构建镜像、配置文件等操作, 也方便团队交流时整理成文案, 已阅读文件的形式知道该镜像包含那些修改及操作.Dockerfile 文件解释是一个文本文件, 可以逐行向里面写指令, 每一条指令的内容, 用来描述镜像如何构建。引用《Docker从入门到实践》中的实例, 文件中内容如下:FROM nginxRUN echo 'Hello, Docker!' > /usr/share/nginx/html/index.html该文件内容很简单就两行(其他指令及含义本文未涉及到均不注解, 请自行查询学习. 蟹蟹~).: 用于指定基础镜像, 这里用的是 nginx: 用于在容器中运行交互 shell 指令, 此处是用一段字符串替换默认的 index.html 文件内容在所在文件目录执行构造镜像指令:会自己去找当前文件夹中的文件, 并执行里面的命令.注意, 命令中的符号不能省略, 它用于制定上下文路径, 代表当前目录, 也就是指文件内用到带有路径的指令, 均已它为起点向上或向下寻找路径内文件.除了文件用来定制单个镜像, 日常中还会碰到多个容器相互配合来运行容器的场景 此时就用到了. 它负责快速在集群中部署或运行分布式应用, 使用它的话则需要安装, 所幸它的安装步骤并不复杂.安装 Compose 服务编排工具$ sudo curl -Lhttps://github.com/docker/compose/releases/download/1.18.0/docker-compose---o /usr/local/bin/docker-compose`$ sudo chmod +x /usr/local/bin/docker-compose$ docker-compose --versiondocker-compose version 1.18.0, build 1719ceb用描述所需要的单个或多个镜像, 定义成一组相关联的应用容器为一个项目.运行指令后, 会拉取文档内指定镜像并且运行容器.指令用于创建并启动容器, 为防止容器启动后, 有服务在前台运行造成交互操作中断, 通常配合参数在让其在后台运行.文档内需要填写的内容, 请看面章节, 相关注释已经写好构建利用环境前面的都是废话, 下面开始.tpshop 的 getshell 镜像确认环境在任意目录下新建一个文件夹, 用于存储该项目, 本项目包含三个容器, 内含 2 个子目录.项目内的目录结构:

是的配置文件, 主要用来构建基于的复杂应用,通过一个配置文件来管理多个容器, 非常适合组合使用多个容器进行复合使用的场景。帮助文档:https://docs.docker.com/compose/内容如下:

文件里面会记录一些基础指令, 这些指令是用于稍后定制镜像中的内容.内容如下:

内容如下:

文件内容如下:

文件内容如下:

上述文件内容均配置无误后, 通过运行 docker-compose 完成镜像的安装及容器的启动.$ docker-compose up -d

最终效果图此时我们打开浏览器浏览, 会跳转至, 说明安装成功.

复现 getshell进入运行中的容器, 查看下该后门是否存在:

OK~, 接下来便是验证是否存在.url:poc:

https://www.t00ls.net/viewthread.php?tid=42605&highlight=tpshophttps://github.com/Medicean/VulAppshttps://github.com/vulhub/vulhubhttps://docs.docker.com/

本文来自企鹅号 - 信安之路媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Docker和Docker Compose配置持续集成测试环境

持续集成(CI)指的是开发人员尽可能频繁地集成代码,并且在自动化构建将每个提交合并到共享存储库之前和之后都要进行测试的实践。

510
来自专栏finleyMa

docker学习系列3 提交并分享自己的镜像

docker有个类似 github的平台,叫 https://hub.docker.com 可以 pull 官方或第三方提供的镜像,当然也可以发布自己的镜像供...

1625
来自专栏Bug生活2048

mac下利用docker部署个mysql

这个不多说,直接到官网下载对应的版本安装即可,在配置docker时最好切换阿里云镜像,具体步骤不细说,可参考之前的文章 .net core开发环境搭建中有提到如...

2862
来自专栏PHP在线

Docker 入门教程

2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。 但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?本文...

3644
来自专栏编程坑太多

『中级篇』Docker Compose到底是什么(38)

PS:上节通过image 和container的方式创建wordpress,一般麻烦吧还不算特别麻烦,但是相比今天的docker-compose.yml来说,还...

1133
来自专栏编程坑太多

『中级篇』Docker Compose到底是什么(38)

PS:上节通过image 和container的方式创建wordpress,一般麻烦吧还不算特别麻烦,但是相比今天的docker-compose.yml来说,还...

1494
来自专栏holer

外网访问内网Docker容器

局域网里的主机上安装了Docker容器,只能在内网访问,怎样从外网也能访问内网的Docker容器?

2341
来自专栏CRPER折腾记

Docker折腾记: (1)构建yapi容器,从构建发布到可用

Docker/Linux/Node基础, 比如Linux和docker的常用命令,shell的编写等等

3062

Docker Hub:保存并分享你的Docker镜像

Docker Hub 是一个基于云的注册服务网站,提供容器应用或容器服务的构建功能。

2366
来自专栏bboysoul

使用docker搭建wordpress网站

使用docker的好处就是尽量减少了环境部署,可靠性强,容易维护,我使用docker搭建wordpress的主要目标有下面几个 首先我重新生成数据库容器可以保...

1131

扫码关注云+社区