| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 从Docker挂载逃逸原理复现分析到BlueMoon实战 -> 正文阅读 |
|
[系统运维]从Docker挂载逃逸原理复现分析到BlueMoon实战 |
Docker逃逸什么是Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。正因为docker属于沙箱机制,所以当获得docker容器的权限时与获得宿主机权限是两个概念。 Docker逃逸
这里主要测试挂载卷造成的逃逸 挂载敏感目录逃逸之特权模式挂载逃逸实验环境:ubuntu16.04 ,docker 版本 20.10
docker的状态是开启的,未安装docker需要安装 特权模式下启动一个容器
查看docker容器磁盘文件
正常环境安装的时候也都会创建磁盘文件,所以这些目录下会有很多文件
创建一个目录名为"test",名字任意创建
此时
查询 此时例如 将
此时宿主机 挂载敏感目录逃逸之docker.sock 挂载Docker架构相当于C/S架构,docker.sock就是docker中套docker,docker的client和server的通信模式参考
因为确实找不到什么比较官方或者正式的介绍,华为云的介绍只是介绍了网络通信模式 socket的连接方式有三种 unix:///var/run/docker.sock tcp://host:port fd://socketfd 利用docker.sock逃逸的前提条件
使用挂载实现
查看镜像
运行一个挂载/var/run/的容器
进入docker容器内
这个时候安装可能报错 更新源
更新源之后重新安装docker,因为拉取的ubuntu内未安装docker或者可能是docker版本过老
查看宿主机信息
利用docker.sock再创建一个docker容器,挂载
此时查看 实现逃逸。这里本来打算使用alpine镜像,这里说说什么是alpine镜像 alpine(https://www.alpinelinux.org/)是一个官方推荐的基础镜像,大小5MB,相对于ubuntu的大小来说下载方便,但是拉取ubuntu镜像也比较方便。 但是 所以还是建议使用ubuntu,这里可以利用docker逃逸去复制宿主机的 原理过程可分为两部分
CONTAINER_ID="$(docker run -d alpine)" # or existing TF=$(mktemp) echo "DATA" > $TF docker cp $TF $CONTAINER_ID:$TF docker cp $CONTAINER_ID:$TF file_to_write
二进制文件设置了 SUID 位,会被滥用来访问文件系统、升级或维护特权访问作为 SUID 后门,上面那个复现过程实现了创建二进制文件的本地 SUID 副本并运行它以维护提升的权限,要与现有的 SUID 二进制文件交互,请跳过第一个命令并使用其原始路径运行程序,其最终结果是在容器B中实现了对宿主机权限的控制。 BlueMoon简介
环境搭建 攻击机
目标靶机 下载地址
导入虚拟机,官网描述是使用vb,但是vmware可以导入,然而出现问题获取不到网卡 信息搜集
我使用搞得热点比较容易确定目标靶机,扫描端口
开放三个端口21,22以及80 扫描目录,指纹识别,既然是靶场要考虑到21端口是不是匿名用户或者22和21端口是否能爆破,直接对21和22端口爆破并未有结果,也可能是字典的问题,但是换了几个字典确实没用,扫描目录使用
访问是个二维码,扫描的内容
获取flagftp的账号密码
工具连接或者命令行都可 在 上级目录中有 账号密码
ssh登录
使用命令
告诉了 横向提权
当前用户为 垂直提权给出提示使用find继续提权到root,所以这里应该的考点就是suid提权了,因为不是交互式的shell使用起来不方便,所以使用python获取交互式shell
查询是否有suid权限的文件
无果,,,,纳闷儿了
镜像没起起来,搜索一下才知道这里需要使用镜像挂载来进行提权
此时已经为 结语这个靶机有点儿不怎么有好的地方在于对于字典的要求比较高,难点在于使用镜像挂载提权,这里可参考文章应该是讲镜像挂载原理比较清晰的文章吧。 更多靶场实验练习、网安学习资料,请点击这里>> |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 20:04:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |