漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
2016-05-24: 细节已通知厂商并且等待厂商处理中
2016-05-26: 厂商已经确认,细节仅向厂商公开
2016-06-05: 细节向核心白帽子及相关领域专家公开
2016-06-15: 细节向普通白帽子公开
2016-06-25: 细节向实习白帽子公开
2016-07-10: 细节向公众公开
简要描述:
七牛云存储某站漏洞可跨越边界漫游内网
详细说明:
七牛的安全总体来说还是不错的,后台开启了双因素(密码+手机动态验证码),VPN也不是很好找,邮箱用的是腾讯企业邮箱。用上个报过的Ldap匿名访问漏洞,拿到的部分用户名进行爆破,却一无所获,只能另寻他法。
0x01------切入点
这里从github里找到一个七牛云上的一个测试账号
这个账号是QA用的测试帐号,初看貌似没什么用,但在七牛整个防护较为严的情况下,一些细小的琐碎信息却可能成为突破的重要条件,本案例中就是登录IP
猜测可能是七牛的某个出口IP,用Nmap进行全端口扫描后,开放的端口如下
突破口选了Web
看了下是一个叫做ITDB的资产管理应用,果断去官网下载源码。这套系统用的数据库是sqlite,数据库放在了WEB目录下,默认路径是:
数据库的名字是可以修改的,但管理员并没有修改,且Apache开启了目录浏览,于是直接下载数据库。
数据库里明文记录了管理员的密码
0x02------Get Webshell!
后台有个上传文件的功能,是丢给uploadframe_frame.php处理的。
上传用到的函数是upload
我们跟进下upload函数
最后上传到服务器上的文件名是文件属性+上传的文件名+上传的后缀,一个很明显的上传漏洞。
$uploadfile变量定义的位置在/data/files/下,所以webshell地址是:
上菜刀
0x03------打入办公网
IP是内网地址,确定是映射出来的。
然后用reGeorg代理进入内网,速度和稳定性不怎么好,但该服务器的内核较高,没找到对应的提权EXP。决定拿下内网一台服务器作跳板。
在服务器上挂了个脚本,扫描192.168.220.*这个网段的80,8080,443和22端口。
扫Web端口一是为了通过发现的应用,确认此网段处于内网的什么区域(是办公网、DMZ还是生产网?),二是方便获取其他系统的权限。
通过发现的几个应用,推测出这个网段是办公网的一部分
其中Freenas使用了和ITDB一样的密码,在Web界面上开启SSH,准备作跳板机用。
可问题是,他是FreeBSD的系统-.-,不太熟悉,一些渗透工具也比较难安装,果断开始找其他开放SSH端口的服务器。这里找到5个:
0x04------跨到核心区
通过前期的信息收集,以及内网渗透拿到的一些零碎片段,拼凑了一个七牛内网简陋的拓扑(可能有错)
我们目前的位置在图上的左下角(192.168.220.*),要跨网段访问生产网。
找了几个生产网的IP(10.*.*.*),traceroute了下,没有路由过去。
到这里其实有多种方法跨到核心生产网:
1. 渗透办公网中的PC机,通过PC找到突破进入生产网的路径。经过探测,PC机网段集中在192.168.200.*和192.168.201.*
2. 找到核心或边界的防火墙和交换机,进一步捋清七牛的拓扑情况,通过这些设备跨网段访问。
3. 利用目前获取到的办公网机器的一些权限,进一步收集敏感信息。
我选择了3
前文中提到了一个Panabit的系统,这是一个流控设备,可以查看用户访问的IP和使用的协议。
先登录这个系统,把443端口通过SSH映射出来
再将本地的0.0.0.0绑定35632端口,这样所有IP都可以访问了
通过查看日志,发现内网一台机器访问了这个IP
原来是个Zabbix,而且部署在了国外。使用默认口令admin/zabbix登录成功
看了下Zabbix Server和Agent的IP段,都是10.20.*.*,应该是生产网了吧,希望没猜错
本以为这是渗透核心生产网的起点,但当时挂了个reGeorg,想先看下,结果悲剧了,Nginx挂掉了。本来sudo没有密码,可以直接加个用户然后把SSH反弹出来啊(有外网防火墙)。。。
也算是碰了下核心生产网的边缘吧。
这是webshell和tunnel的地址,麻烦删掉。
漏洞证明:
见详细说明
修复方案:
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服务并没有刻意重启过。可能是你在渗透的时候我们的监控组成员也在工作,因此导致了服务的暂不可用。
最新状态:
暂无