【容器安全】docker容器逃逸—从docker可视化管理产品拿到宿主节点shell

本文简述的是当我们拿到docker可视化管理工具的权限后如何拿到宿主节点shell

docker可视化管理产品各种各样,本文以portainer这款产品为例

我们拿到portainer的账号密码,然后登陆进来,首页如下

在这里插入图片描述
看下具体资产,有三个镜像,一个容器,一个数据卷
在这里插入图片描述
然后看下具体镜像,选择任意一个镜像来创建容器,这里以vulhub/rails:5.0.7为例
在这里插入图片描述
先把一些信息填好,name可以随便命名,image为我们之前选择的vulhub/rails:5.0.7,把Always pull the image关掉
在这里插入图片描述
然后往下拉,开启特权模式(开启原因:特权模式下的容器可以管理宿主机的块设备)
在这里插入图片描述
点击上面的deploy按钮创建容器,可以看到已经创建完成,点击划线部分进入容器的console界面
在这里插入图片描述
查看可操作的块设备,在真实环境下可能有很多块设备,可以一一挂载分析,这里只有一块
在这里插入图片描述
随便创建一个目录,然后挂载上
在这里插入图片描述
进入该目录查看,可看到宿主机磁盘挂载成功
在这里插入图片描述
接下来我们来到攻击机,监听一个端口,如:8888
在这里插入图片描述
然后写计划任务反弹shell
在这里插入图片描述
这里我的遇到一个坑,就是写完计划任务后不生效,排查日志后发现是mode不对,被忽略掉了,所以写完后记得改下文件mode,改成0600
在这里插入图片描述
然后呢,遇到另一个坑,shell反弹不过来,看下日志已经执行,但是收不到shell
在这里插入图片描述
因为宿主机有nc,所以用nc把shell弹过来
在这里插入图片描述
可以看到已经收到shell
在这里插入图片描述
然后再反弹到另个端口,可以看到更多命令的执行结果
在这里插入图片描述
成功拿到宿主机的shell,并且为root权限
在这里插入图片描述

接下来再介绍通过非特权模式下来逃逸的方法,还是以vulhub/rails:5.0.7为例

在不开启特权模式下呢,主要是把宿主机的根目录挂载到容器上,如下,模式为bind,选择可读可写
在这里插入图片描述
挂载的容器目录随便,主机目录为根目录,然后点击创建
在这里插入图片描述
创建完成后进入挂载的容器目录,可以看到已经把主机的根目录挂载上去了
在这里插入图片描述
接下来的操作如上就行了。

其实除了写反弹shell之外,也可以写cs马,然后放到计划任务定时执行,或者有网站的话写web马,开了ssh的话写公钥等等。一般打红队的话,打的就是漏洞,计算机知识面,思路等等。

本人一般喜欢蓝队,不卷,躺得比较舒服。

另外,如果对docker感兴趣的话,可以看下这个,个人觉得这个讲的不错
尚硅谷Docker实战教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值