博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP
阅读量:3728 次
发布时间:2019-05-22

本文共 2594 字,大约阅读时间需要 8 分钟。

早前有技术社区发布了文章《》,其中讲解了通过解码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<pool_name>,其中包含了客户端请求的,经过编码处理的目标服务器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<pool_name>=vi20010112000000000000000000000030.20480

具体可参考和的说明。

测试Facebook

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

客户端请求:

GET /app HTTP/1.1

Host: f4c3300k.com

服务端响应:

最终,只要客户端能解码这个Set-Cookie:BIGipServer<pool_name>信息,就能成功获取到Facebook内部服务器的IP地址。当然,要发现这种Cookie,除了查看 “<pool_name>” 字段外,我们还能检索类似于 “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

请求:

得到的响应1:

得到的响应2:

得到的响应3:

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

BIG-IP Cookie解码自动化工具

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

安装:

usr@pwn:~$ git clone

usr@pwn:~$ cd f5_cookieLeaks

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

用对Facebook的测试证明:

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

漏洞上报

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

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

已有 5 条评论

  • xxxx
     2018-04-12
    1楼

    :eek:

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

    ( 1)
  • 万能的metasploit
     2018-04-12
    2楼

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

    ( 0)
  • (1级)
     2018-04-12
    3楼

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

    ( 0)
  • (3级)
    script:alert(xss)
     2018-04-12
    4楼

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

    ( 0)
  • SS
     2018-04-13
    5楼

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

    ( 0)
你可能感兴趣的文章
Hadoop伪分布式搭建
查看>>
MapReduce练习——手机流量案例分析1
查看>>
MapReduce练习——手机流量案例分析2
查看>>
MapReduce详解
查看>>
Yarn详解
查看>>
HDFS详解
查看>>
Hadoop概述
查看>>
Linux常用命令
查看>>
大数据面试重点整理
查看>>
shell 将字符串分割成数组
查看>>
shell遍历文件夹及去掉文件后缀名
查看>>
shell命令执行hive脚本
查看>>
Hive分区+根据分区查询
查看>>
shell按分隔符截取字符串
查看>>
hive插入分区报错SemanticException Partition spec contains non-partition columns
查看>>
hive清空表删除分区
查看>>
Hive统计日首次登陆游戏的用户数
查看>>
Hive去重统计
查看>>
Hive的桶表
查看>>
Flume概述安装及实操
查看>>