0x01:简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
当您在系统上安装 docker 时,它将暴露位于端口2375上的本地主机上的 API。这个 API 可以用来与 docker 引擎交互,docker 引擎基本上允许您做任何您想要的未经身份验证的事情。
在这种情况下,没有一个外部方能够访问您的docker API,因为它没有向世界公开。但是,在某些情况下,可以更改该API,以便外部资源可以访问它。如果做得不恰当,那么 docker API 将向世界公开
0x02:查找
0x03:验证
1、 在 CLI 中,您可以执行以下命令来获得当前正在运行的容器列表:
docker-H <host>:<port> ps
2、取一个暴露的IP地址进行验证
显出了对方服务器当前的进程
3、利用服务获取shell
通过运行以下命令,我们可以轻松地在这个容器上弹出一个 shell:
Docker-H <host>:<port> exec-it <容器名称>/bin/bash
root权限到手
0x04:预防
绝大多数程序猿使用 docker 容器来部署代码。在这个过程中,他们可能会向公众公开他们的 docker API,这可能意味着大麻烦。
攻击者可以轻松劫持他们的基础设施来部署自己的容器,甚至更糟的是,他们可以获得对容器的root访问权。
限制端口的访问权限,杜绝不法分子的非法利用。
本文只做技术交流之用,提醒各位网络安全性
请勿用于其他用途,否则后果自负。