一、事出
乌云漏洞平台等科技新闻,爆出Docker虚拟化 端口漏洞,尝试了下,漏洞严重性确实很高,可以拿到root 登陆账户。
二、还原
2.1 通过扫描,我们找到了一些主机,下面是其中一台运行了docker 主机的服务器,并且开了ssh 端口
知道了22端口后,我们后面会利用此端口来使用root免密码登陆该主机。
2.2 我们可以利用2375 端口做什么?
看到上面的信息后,我们就知道,可以管理该主机上的docker 容器了,启动、停止、创建、下载镜像、甚至删除上面的容器。。。
2.3 容器都是和物理机隔离的,那怎么利用它来进入到真实机呢?
我们先在自己的linux 机器中生成一个密钥对,将此公钥注入到远程docker server 主机的 文件中,进行免密码登陆的。
公钥里的内容
[root@elk ~]# cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1SVCT50t/2GG6tdRb39dyH+Dng9pfOif1AZNaluEaRfiy9SHCnwKhSFRGSVOdpY1rdeR6lDl9r/VCr028IW+UH019O8oEaPE1q0oEK7+sUXNBlRk54deFhlUGszisY0x2XcDwskQIzc3NwivoZeUOsboDRhuC6Rd4W/6a3usUtLWBkhuyzJnanGzMVEyS3KWCD4EHlALb7nW9Tb3p2WfDf9tgtanJ6kJiVz7tMMsAdethtEmkEuoTFdnQ/FVGjgePUuIIOxbFRP077scu3fFfeKr3wthmeuR/Mnb6J85EychO8Fg+JY48V6P0PLwCleImJ5BNDr4mEdnKNsHOWuE1 root@admin
下面进入到docker 容器中,并复制刚刚生成的公钥文件到剪贴板中,追加到文件中,如下
现在也许你知道,后面是什么了,没错,这台运行着docker 服务的物理主机已经沦陷了。我们尝试登陆下
.......
三、后记
关于端口漏洞的,类似的还有前段时间的redis,现在是docker。端口无故的对外开放,本身就是一种风险。而且是无关的端口。此次的2375是有 docker swarm 远程api 开放的。完全可以对外禁止访问该端口。如此简单的就被我这样的小白给利用了,而且还拿到了root 权限。
本文章旨在提示各大公司的领导,运维人员,及公司开发人员。注重服务器的安全,不重要的端口尽量对内网开放。快去检查你们的docker 服务器吧(放在公网的,内网的就算了)。
几大提示:
1.利用系统iptables 禁止任务主机访问2375,或者只允许公司内部访问.
2.检查系统有没有其它无关业务的端口,禁止
3.系统禁止root 直接登陆。可以利用普通用户登录后,用su切换。
4.东西虽然新,但是不安全因素也会增加。所以还需要多测试呀。
5.关注系统登录日志安全。进去了很多台主机,这么长时间了,现在还可以登陆,说明了什么?
以上测试仅仅针对的是国外的服务器进行的。主要用于提示工作人员,注重服务器安全。