1月底,我发现谷歌应用套装G Suite网站 toolbox.googleapps.com 存在SSRF漏洞,通过该漏洞可以进一步查询谷歌内部DNS服务器,获取到谷歌公司内部IP地址、域名解析记录和各种服务器主机信息(如谷歌活动目录架构),更奇妙的是,在此过程中,我还发现了一台好像是Minecraft游戏的托管服务器.. .
SSRF漏洞:SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。因为由服务端发起请求,所以它能够请求到与它相连而与外网隔离的内部系统,主要原因在于未对目标地址做过滤与限制。攻击者可以利用该漏洞绕过防火墙等访问限制,进而将受感染或存在漏洞的服务器作为代理进行端口扫描,甚至是访问内部系统数据。
起因众所周知,谷歌应用组件套装 G Suite 可以用来组建高效工作团队和处理智能任务,在这些整合应用中,有一款类似于linux工具,名为“Dig”的域名查询应用,通过网络界面和接口形式,用来查询给定域名的各种解析记录,如A记录、MX记录等,对谷歌来说,这貌似是一款DNS查询的有用工具。以我个人网站域名 www.rcesecurity.com 为例,它的查询结果如下:
![谷歌SSRF漏洞解析:利用谷歌应用工具发现谷歌内部DNS信息](http://www.codesec.net/app_attach/201703/07/20170307_420_541719_0.jpg!web)
对于很多有经验的漏洞挖掘者来说,“Name server”区域是个值得探究可以利用的点,因此,当我转向127.0.0.1查询DNS记录时,G Suite接口反馈的信息是“Server did not respond message”:
可以看出该应用真的尝试向127.0.0.1:53请求域名解析信息,从这点来看,这确实像一个SSRF漏洞。
探测谷歌内部DNS响应以我个人网站 www.rcesecurity.com 为查询域名,利用BurpSuite的intruder模块,结合以下包含域名服务器参数的相关HTTP POST请求,对谷歌内部可以响应的IP地址执行快速暴力猜解:
POST /apps/dig/lookup HTTP/1.1 Host: toolbox.googleapps.com User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0 Accept: application/json, text/javascript, */*; q=0.01 Accept-Language: en-US,en;q=0.5 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With: XMLHttpRequest Referer: https://toolbox.googleapps.com/apps/dig/ Content-Length: 107 Cookie: csrftoken=NE5nKGrbPNRoEwm0mahDzop9iJfsxU4H; _ga=GA1.2.2102640869.1486420030; _gat=1 Connection: close csrfmiddlewaretoken=NE5nKGrbPNRoEwm0mahDzop9iJfsxU4H&domain=www.rcesecurity.com&nameserver=§127.0.0.1§&typ=a几分钟之后,发现谷歌的一个内部IP地址作出了响应,虽然响应的A记录信息为空,但响应动作有效:
![谷歌SSRF漏洞解析:利用谷歌应用工具发现谷歌内部DNS信息](http://www.codesec.net/app_attach/201703/07/20170307_420_541719_1.jpg!web)
使用该工具的其它功能,还能查询到其它更多关于我个人网站域名的有趣信息,在此就不作公开。好了,利用这个响应的有效谷歌内部IP地址,我们来作点文章。
探测谷歌内部DNS服务器信息于是乎,我试着从论坛寻找一些谷歌内部的DNS信息,从这里我发现了名为“MoMa Inside Google”的谷歌在用域名“ corp.google.com ”,因此,你可以尝试枚举 corp.google.com 的子域名,或者从公开渠道挖掘一些谷歌的内部域名信息,比如 这里 就有一条名为 “ ad.corp.google.com ”的A记录域名信息。
![谷歌SSRF漏洞解析:利用谷歌应用工具发现谷歌内部DNS信息](http://www.codesec.net/app_attach/201703/07/20170307_420_541719_2.jpg!web)
探测谷歌内部域名 ad.corp.google.com 所有A记录信息
利用Dig工具结合上述发现的内部IP地址进行查询:
![谷歌SSRF漏洞解析:利用谷歌应用工具发现谷歌内部DNS信息](http://www.codesec.net/app_attach/201703/07/20170307_420_541719_3.jpg!web)
而该域名的公开查询信息如下:
![谷歌SSRF漏洞解析:利用谷歌应用工具发现谷歌内部DNS信息](http://www.codesec.net/app_attach/201703/07/20170307_420_541719_4.jpg!web)
对比两个查询信息,可以发现Dig的查询信息完全显示了谷歌的内部DNS记录!
探测谷歌内部域名 ad.corp.google.com 所有NS记录(包括内部IP)信息利用Dig结合上述发现的内部IP地址进行查询:
![谷歌SSRF漏洞解析:利用谷歌应用工具发现谷歌内部DNS信息](http://www.codesec.net/app_attach/201703/07/20170307_420_541719_5.jpg!web)
探测谷歌内部关于活动目录服务的gc._msdcs域名
_msdcs是域名服务系统中包含了服务定位资源SRV记录信息的子域,其中包括了dc、域调用、gc以及pdc状态。dc和gc按站点划分,可以让客户机快速的找到想到找的Active Directory服务(kerberse,ldap等),详细请 点此 参考。
![谷歌SSRF漏洞解析:利用谷歌应用工具发现谷歌内部DNS信息](http://www.codesec.net/app_attach/201703/07/20170307_420_541719_6.jpg!web)
来看点有趣的: minecraft.corp.google.com
![谷歌SSRF漏洞解析:利用谷歌应用工具发现谷歌内部DNS信息](http://www.codesec.net/app_attach/201703/07/20170307_420_541719_7.jpg!web)
这难道是谷歌内部的 Minecraft游戏服务器吗?
Minecraft(我的世界) 是由Mojang AB和4J Studios开发的高自由度的沙盒游戏,于2009年5月13日发行。玩家在游戏中可以摧毁或创造建筑物和艺术方块,或者收集物品探索地图以完成游戏主线。
最后,我通过谷歌漏洞奖励平台报告了这个问题,他们按照安全逻辑绕过漏洞,及时采纳并进行了修复!*参考来源: rcesecurity ,FB小编clouds编译,转载请注明来自CodeSec.Net。