Docker API暴露下的危机
原文:https://mp.weixin.qq.com/s?__biz=MzI2OTMzNjg4OQ==&mid=2247484819&idx=1&sn=95629a511eecff0839fe45bf199a7f5a&chksm=eae0adc5dd9724d34156b8624577644dc4d7b959b30cd437bc107171774f101589e29cb5469b&scene=0&xtrack=1&key=85096ad5b95db4c9155650ea6d85ddc9cc3314ea15b5909bc3361462798eaa61a1d7f2883a22a73449a266b1f986c615792f15f94117aa33f87f29e19ec3038250c6ee1b95f857ade007e0aca6460ff0&ascene=1&uin=MjY5MDA0ODIwMA%3D%3D&devicetype=Windows+10&version=62060833&lang=zh_CN&pass_ticket=msH5gI3dIdgh7emh0wwegnUJKjzMAyUZQwt7XyPyEi4m9M8u9%2FaheCuqT%2B30r2vr
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访问权。
限制端口的访问权限,杜绝不法分子的非法利用。

浙公网安备 33010602011771号