http://180.76.161.55:2375
查看运行的容器
域名证明为百度
执行docker命令,比如操作container、image等
那么如果当前运行的container,或者image内有代码或者其他敏感信息,就可以继续深入了,比如果壳和蜻蜓fm的漏洞,就是深入后的结果。
还有的话,可以做内网代理,进一步渗透。
到目前为止,我们能做的事情都是在docker的环境内,无法直接控制宿主机。
那么怎么才能控制宿主机呢?莫慌,分析下
docker是以root权限运行的,但docker执行命令只能在container内部,与宿主机是隔离的,即使是反弹一个shell,控制的也是container,除非有0day,不然是无法逃逸的到宿主机的~
那么只能从docker命令本身下手,脑洞开了下,想到docker 运行 container的时候,可以将本地文件或目录作为volume挂载到container内,并且在container内部,这些文件和目录是可以修改的。
root权限进程,并且能够写文件,是不是似曾相识?
这里的场景和前段时间的 redis + ssh 漏洞很相似,那么这里需要看一下服务器是否有ssh服务,如果有的话,那么直接把/root/.ssh目录挂载到container内,比如/tmp /.ssh,然后修改/tmp/.ssh/authorized_keys 文件,把自己的public key写进去,修改权限为600,然后就可以以root用户登录了。
注:有些服务器会配置不允许root用户直接登录,可以通过挂载 /etc/ssh/sshd_config 查看配置。这个时候,你换一个用户目录写入就行,并且挂载修改 /etc/sudoers 文件,直接配置成免密码,sudo切换root即可。
如果没有运行ssh服务,那么也可以利用挂载写crontab定时任务,比如ubuntu root用户的crontab文件在 /var/spool/cron/crontabs/root,反弹一个shell~
这里利用方式可能还有很多种,大家可以开下脑洞想哈~
影响总结:攻击者可以利用该漏洞执行docker命令,获取敏感信息,并获取服务器root权限
目前在公网上暴露的2375端口还有不少,测了一些基本都可以利用。
但docker swarm更多的情况是用在企业内部,虽然在内网,也不意味着绝对安全,当边界被突破,就嘿嘿嘿了~
本文始发于微信公众号(关注安全技术):Docker Remote API未授权访问漏洞(百度案例)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论