通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP
字数 1406 2025-08-18 11:37:12
F5 BIG-IP LTM会话Cookie解码技术详解
1. 技术背景
F5 BIG-IP LTM(本地流量管理器)是一种网络负载均衡器,能够进行4-7层负载均衡,具有负载均衡、应用交换、会话交换、包过滤等多种高级网络功能。在负载均衡过程中,F5使用持久性Cookie来实现会话保持功能。
2. Cookie机制分析
2.1 Cookie格式
F5 BIG-IP LTM生成的会话Cookie格式为:
BIGipServer<pool_name>=<encoded_value>
其中:
<pool_name>:负载均衡池名称<encoded_value>:经过编码的目标服务器IP和端口信息
2.2 编码规则
IP地址编码
- 将IP地址的每个八位字节转换为等效的1字节十六进制值
- 将十六进制字节的顺序反向
- 将反向后的4字节十六进制值连接起来
- 将结果转换为十进制等效值
示例:
IP地址:10.1.1.100
- 转换为十六进制:0x0A.0x01.0x01.0x64
- 反向字节顺序:0x64.0x01.0x01.0x0A
- 连接:0x6401010A
- 转换为十进制:1677787402
数学公式表示:
encoded_ip = a + b*256 + c*(256^2) + d*(256^3)
其中a.b.c.d为原始IP地址
端口编码
- 把十进制的端口值转换为等效的两字节十六进制值
- 反向两字节的十六进制顺序
- 将结果转换为十进制等效值
示例:
端口:8080
- 转换为十六进制:0x1F90
- 反向字节顺序:0x901F
- 转换为十进制:36895
3. 漏洞利用方法
3.1 信息收集
- 向目标服务器发起HTTP请求
- 检查响应头中的Set-Cookie字段
- 查找包含"BIGipServer"关键字的Cookie
3.2 识别特征
除了标准的"BIGipServer"字段外,还可以查找以下常见负载均衡池名称:
- Desa
- pre
- prod
- Exchange_2010_External
3.3 解码过程
- 从Cookie中提取编码值
- 将十进制值转换为十六进制
- 按规则分割和反向字节顺序
- 还原原始IP和端口
4. 实际案例分析(以Facebook为例)
4.1 受影响域名
研究人员发现以下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
4.2 攻击流程
- 向目标域名发送HTTP请求
- 接收包含F5 Cookie的响应
- 解码Cookie获取内部服务器IP和端口
- 重复请求以收集更多内部架构信息
5. 自动化工具
5.1 f5_cookieLeaks工具
GitHub项目地址:https://github.com/ezelf/f5_cookieLeaks
安装方法
git clone https://github.com/ezelf/f5_cookieLeaks.git
cd f5_cookieLeaks
pip install -r requirements.txt
功能特点
- 自动化发送请求
- 自动解码Cookie中的IP和端口信息
- 批量收集内部服务器信息
6. 防御建议
- 禁用Cookie持久性:在不必要的情况下禁用F5的Cookie持久性功能
- 使用加密Cookie:配置F5使用加密的持久性Cookie
- 限制Cookie范围:确保Cookie只在必要域和路径中有效
- 监控异常请求:对频繁请求Cookie的客户端进行监控和限制
- 更新配置:使用最新版本的F5软件并应用安全配置
7. 技术总结
F5 BIG-IP LTM的会话Cookie机制虽然提供了方便的会话保持功能,但不当配置可能导致内部网络信息泄露。通过解码这些Cookie,攻击者可以获取:
- 内部服务器IP地址
- 服务端口信息
- 内部网络架构信息
这种信息泄露可能为后续攻击提供重要线索,因此管理员应当重视此类配置安全问题。