当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0209291

漏洞标题:新姿势之获取果壳全站代码和多台机器root权限

相关厂商:果壳传媒

漏洞作者: 黑客,绝对是黑客

提交时间:2016-05-16 14:39

修复时间:2016-05-21 14:40

公开时间:2016-05-21 14:40

漏洞类型:敏感信息泄露

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-05-16: 细节已通知厂商并且等待厂商处理中
2016-05-21: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

新姿势~
可获取 果壳,mooc,在行等全站代码
并获取机器root权限

详细说明:

0x00 简介
果壳自动化build docker image的系统

http://builder.iguokr.com/#/signin


builder.png


通过之后的分析,发现是通过gitlab hook,当代码变更时,自动触发image build过程,通过将代码和运行环境打包到 docker image里,实现自动化和快速部署
0x01 漏洞原因
docker engine daemon api直接暴露公网

mask 区域
1.http://**.**.**


还有很多其他ip也开放2375端口,请厂商自查


也就是说,docker能做的所有操作,这里都可以做
比如:运行、删除container,拉取image等等
0x02 漏洞证明
查看当前运行的container
docker 命令行(需要安装docker)

mask 区域
1.://**.**.**//54.223.50.135:2375 ps


或直接访问

mask 区域
1.http://**.**.**/containers/json


CLI结果

mask 区域
*****         CREATED             STATUS         *****
***** 4 days ago Up 4 days *****
***** 4 days ago Up 4 days *****
***** 4 days ago Up 4 days *****
***** 4 days ago Up 4 days *****
***** 4 days ago Up 4 days *****
***** 4 days ago Up 4 days *****
***** 4 days ago Up 4 days *****
*****.s" 4 days ago Up 4 days *****
*****ntrypoint.sh redis" 4 days ago *****


已证明,其他不列出

漏洞证明:

0x03 脑洞大开
我们现在能做的只是运行docker的一些命令,比如操作container、image,没法直接控制宿主机
那么怎么才能控制宿主机呢?
先分析下:
docker的运行需要root权限的,即我们有一个以root运行的进程
但docker本身执行命令只能在container内部,与宿主机是隔离的,即使是反弹一个shell,控制的也是container,除非有溢出漏洞,然而我并没有~
那么我们来看一下docker本身能够做什么?
脑洞开了下,想到docker 运行 container的时候,可以将本地文件或目录作为volume挂载到container内,并且在container内部,这些文件和目录是可以修改的。
这里一下就想到了redis + ssh漏洞,非常的像
我们看一下服务器是否开放22端口,bingo,有ssh服务器

mask 区域
*****23.50.*****
*****23.50.*****
*****54.223.*****
*****is '*****
*****.1p1 Ubunt*****


那么直接把/root/.ssh目录挂载到container内,比如/tmp/.ssh,然后修改/tmp/.ssh/authorized_keys
文件,把自己的public key写进去,然后就可以了登录
0x04 获取机器root权限
这里具体命令就不给了,只给出证明
ifconfig

mask 区域
*****1-1-228*****
*****(root) gr*****


/home/ubuntu目录下文件

mask 区域
1.://**.**.**/home/ubuntu
***** 18*****
*****tu 163 Sep 24*****
*****ubuntu 4.0K *****
*****untu 4.0K Apr*****
*****tu 4.0K Sep 7*****
***** 77 Apr 8 05:50*****
*****untu 4.0K Dec*****
*****tu 4.0K Nov 12*****
*****ubuntu 4.0K *****
*****untu 4.0K May*****
*****ot 4.0K Dec*****
*****.7K Apr 28 10:20*****
*****tu 472K Dec 17*****
*****tu 1.3K Feb 3*****
*****untu 4.0K Nov*****
*****root 4.0K *****
*****tu 4.0K Mar 8*****
*****22M Mar 2 20:10*****
*****untu 4.0K Mar*****
*****tu 1.2K Feb 11*****
***** 14M Dec 17 03*****
*****tu 4.0K Feb 23*****
*****untu 4.0K May*****
***** 110M Dec 3 09*****
*****untu 243 Nov*****
*****M Jul 31 2015 so*****
*****untu 4.0K Jan*****
*****untu 689 Nov*****


docker仓库在内网 docker-registry.guokr.com

ping docker-registry.guokr.com
PING ec2-54-222-135-194.cn-north-1.compute.amazonaws.com.cn (172.31.14.62) 56(84) bytes of data.


0x04 获取全站源代码
对当前docker运行的container进行了查看和分析,发现image build的过程会从

git.iguokr.com


拉取源代码,这里是用了public key验证,找了找,在代码中发现了私钥和公钥
且git.iguokr.com公网开放
有了密钥,看到builder有一个postgresql数据库,可以公网连接,在代码中找到帐号和密码
连接后发现有git repository列表,这里给出部分

D483D862-AA32-49F9-A89E-6319888940EB.png

8F89C4FE-4B74-4F52-83F7-ACD5EF3D78D5.png


里面有果壳,在行,mooc等全站代码,
git clone一份,给出证明

2B3A8380-87DB-4AF5-9620-CDD5C3895CF2.png


0x05 哎~
在机器上装了个nmap,对所在网段的b段扫了下2375端口,扫到了一些只有内网才能访问的2375端口,并且都有ssh服务,都可以拿到root权限,这里就不贴了,和这个类似。
本来想试试能不能撸到线上,结果发现线上环境在另一个网段,试了试还是放弃了

修复方案:

禁止外网访问~

版权声明:转载请注明来源 黑客,绝对是黑客@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2016-05-21 14:40

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无