dnsfig1.png

1月底,我发现谷歌应用套装G Suite网站toolbox.googleapps.com存在SSRF漏洞,通过该漏洞可以进一步查询谷歌内部DNS服务器,获取到谷歌公司内部IP地址、域名解析记录和各种服务器主机信息(如谷歌活动目录架构),更奇妙的是,在此过程中,我还发现了一台好像是Minecraft游戏的托管服务器... 2017-03-05_102720.jpg

SSRF漏洞:SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。因为由服务端发起请求,所以它能够请求到与它相连而与外网隔离的内部系统,主要原因在于未对目标地址做过滤与限制。攻击者可以利用该漏洞绕过防火墙等访问限制,进而将受感染或存在漏洞的服务器作为代理进行端口扫描,甚至是访问内部系统数据。

起因

众所周知,谷歌应用组件套装G Suite可以用来组建高效工作团队和处理智能任务,在这些整合应用中,有一款类似于linux工具,名为“Dig”的域名查询应用,通过网络界面和接口形式,用来查询给定域名的各种解析记录,如A记录、MX记录等,对谷歌来说,这貌似是一款DNS查询的有用工具。以我个人网站域名www.rcesecurity.com为例,它的查询结果如下:

1.png

对于很多有经验的漏洞挖掘者来说,“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记录信息为空,但响应动作有效:

3.png

使用该工具的其它功能,还能查询到其它更多关于我个人网站域名的有趣信息,在此就不作公开。好了,利用这个响应的有效谷歌内部IP地址,我们来作点文章。

探测谷歌内部DNS服务器信息

于是乎,我试着从论坛寻找一些谷歌内部的DNS信息,从这里我发现了名为“MoMa – Inside Google”的谷歌在用域名“corp.google.com”,因此,你可以尝试枚举corp.google.com的子域名,或者从公开渠道挖掘一些谷歌的内部域名信息,比如这里就有一条名为 “ad.corp.google.com”的A记录域名信息。

2017-03-04_225727.jpg

探测谷歌内部域名ad.corp.google.com所有A记录信息

利用Dig工具结合上述发现的内部IP地址进行查询:

4.png

而该域名的公开查询信息如下:

111111111111.jpg

对比两个查询信息,可以发现Dig的查询信息完全显示了谷歌的内部DNS记录!

探测谷歌内部域名ad.corp.google.com所有NS记录(包括内部IP)信息

利用Dig结合上述发现的内部IP地址进行查询:

5.png

探测谷歌内部关于活动目录服务的gc._msdcs域名

_msdcs是域名服务系统中包含了服务定位资源SRV记录信息的子域,其中包括了dc、域调用、gc以及pdc状态。dc和gc按站点划分,可以让客户机快速的找到想到找的Active Directory服务(kerberse,ldap等),详细请点此参考。

6.png

来看点有趣的:minecraft.corp.google.com

7.png

这难道是谷歌内部的Minecraft游戏服务器吗?

Minecraft(我的世界)是由Mojang AB和4J Studios开发的高自由度的沙盒游戏,于2009年5月13日发行。玩家在游戏中可以摧毁或创造建筑物和艺术方块,或者收集物品探索地图以完成游戏主线。

最后,我通过谷歌漏洞奖励平台报告了这个问题,他们按照安全逻辑绕过漏洞,及时采纳并进行了修复!

*参考来源:rcesecurity,FB小编clouds编译