通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP

早前有技术社区发布了文章《解码F5负载均衡产品持久性Cookie探测内网IP》,其中讲解了通过解码F5 BIG-IP LTM的Cookie来发现目标服务器真实内网IP。简单来说就是,F5负载均衡产品( BIG-IP LTM)在做网络负载均衡时,会利用持久性cookie来实现会话保持,所以,在一些渗透测试中,如果遇到F5的负载均衡产品环境,可以使用这种技巧,获取目标服务器的真实IP地址,为后续深入渗透带来一定便利。本篇文章,我们就来讲述利用这种技巧,发现Facebook服务器内部IP信息。

F5 BIG-IP LTM 官方名称为本地流量管理器,也叫网络负载均衡器,是F5公司的新一代网络管理产品。BIG-IP LTM 可做4-7层负载均衡,具有负载均衡、应用交换、会话交换、包过滤等多种高级网络功能。

F5 BIG-IP LTM Cookie保持机制

当客户端向目标服务器发起请求时,会用到HTTP Cookie Insert或HTTP Cookie Rewrite方法,这些Cookie方法会让客户端与服务器端保持有效,样式为BIGipServer,其中包含了客户端请求的,经过编码处理的目标服务器IP和端口信息。

BIG-IP LTM 系统Cookie编码规则

IP编码

将IP地址的每个八位字节值转换为等效的1字节十六进制值

将十六进制字节的顺序反向,然后连接成一个4字节的十六进制值

将生成的4字节十六进制值转换为其十进制等效值

例如,如果服务器IP为10.1.1.100,按照上述规则来编码就是:

10.1.1.100 = 0x0A . 0×01 . 0×01 . 0×64

Reverse byte order, concatenated = 0x6401010A

0x6401010A = 1677787402

当然,如果服务器IP为a.b.c.d,也能用公式a + b*256 + c*(256^2) + d*(256^3)来代入实现最终编码。

端口编码

把十进制的端口值转换为等效的两字节十六进制值

反向两字节的十六进制顺序

将生成的两字节十六进制值转换为十进制等效值

如8080端口,最终编码为:

8080 = 0x1F90

Reverse byte order = 0x901F

0x901F = 36895

比如,在对服务器2001:0112::0030:80请求时,F5会把Cookie编码为:

BIGipServer=vi20010112000000000000000000000030.20480

具体可参考support.f5.com和owasp.org的说明。

测试Facebook

如测试者通过互联网对Facebook内部服务器发起了一次请求,请求经过Facebook内网的F5 BIG-IP时,它会在Cookie中加入源请求IP信息,然后根据请求判断发往服务器;服务器响应时,就在Set-Cookie:BIGipServer中编码了服务器IP和端口信息,回传到客户端。

客户端请求:

GET /app HTTP/1.1

Host: f4c3300k.com

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第1张图片

服务端响应:

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第2张图片

最终,只要客户端能解码这个Set-Cookie:BIGipServer信息,就能成功获取到Facebook内部服务器的IP地址。当然,要发现这种Cookie,除了查看 “” 字段外,我们还能检索类似于 “Desa”、”pre”、”prod”、”Exchange_2010_External”等其它管理员会设置的内部架构信息。

存在该漏洞的FACEBOOK相关网站:

maileast.thefacebook.com

autodiscover.instagram.com

mail-ext.thefacebook.com

mail.hack.tfbnw.net

mail.thefacebook.com 

autodiscover.thefacebook.com 

autodiscover.fb.com

autodiscover.internet.org

autodiscover.oculus.com

autodiscover.whatsapp.com

esbmbltest.thefacebook.com

测试FACEBOOK服务器PoC

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第3张图片

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第4张图片

请求:

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第5张图片

得到的响应1:

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第6张图片

得到的响应2:

07.png

得到的响应3:

08.png

如果持续大量发起请求,就可能得到所有FACEBOOK内部服务器IP地址。

BIG-IP Cookie解码自动化工具

手工测试太过麻烦,为此,我专门做了一个BIG-IP Cookie的请求解码工具:f5_cookieLeaks,完全能做到最终目标服务器信息的自动化请求解码,非常方便。

安装:

usr@pwn:~$ git clone https://github.com/ezelf/f5_cookieLeaks.git

usr@pwn:~$ cd f5_cookieLeaks

usr@pwn:~$ pip install -r requirements.txt

用f5_cookieLeaks对Facebook的测试证明:

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第7张图片

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第8张图片

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第9张图片

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第10张图片

通过上述自动化工具,我们发送大量请求,在这些每个请求的响应中,都会包含FACEBOOK内部主机IP和端口信息,并且这些Cookie都会保持有效,这样一来,所有可能的内部主机架构信息都可被探测到。

漏洞上报

当我把这个问题报送给FACEBOOK安全团队时,他们告知我,在此之前,已经有研究人员上报过这个漏洞($500),他们也正在修复,所以,我只能呵呵了….,就仅当练手吧。

通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第11张图片

*参考来源:misteralfa-hack,FreeBuf小编clouds编译,转载请注明来自FreeBuf.COM

发表评论

已有 5 条评论

  • xxxx  2018-04-12 回复 1楼

    :eek:
    国内的SRC遇到这种会发奖金吗?

    亮了( 1)
  • 万能的metasploit  2018-04-12 回复 2楼

    msf已经自带该功能了。 支持批量

    亮了( 0)
  • 通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP_第12张图片
    keenny  (1级)  2018-04-12 回复 3楼

    Word免杀后门 有能力做的私信联系我

    亮了( 0)
  • mendickxiao  (3级) script:alert(xss)  2018-04-12 回复 4楼

    有什么危害吗?我提过类似的问题给SRC,好像不给分,都是忽略。

    亮了( 0)
  • SS  2018-04-13 回复 5楼

    多久之前的文章自己简陋不成最后还呵呵?照搬别人的文章,连个引用都不写,现在都可以这么水了么。

    亮了( 0)

你可能感兴趣的:(设备安全)