透过F5获取服务器真实内网IP
渗透测试过程中,经常会遇到目标服务器使用F5 LTM做负载均衡。
如果能获取到目标服务器的真实IP地址,会给后续渗透带来一定便利。
本文既是最近渗透遇到的一点点经验分享。
F5修改cookie机制
F5 LTM做负载均衡时,有多种机制实现会话保持。
其中用到很多的一种是通过修改cookie来实现的。
具体说来,F5在获取到客户端第一次请求时,会使用set cookie头,给客户端埋入一个特定的cookie。
比如:
Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000
后续再接到客户端请求时,F5会查看cookie里面的字段,判断应该交给后续哪台服务器。
作为传统大厂,F5当然不会傻到直接把服务器IP address写入到cookie里面。
F5很巧妙的把server的真实IP address做了两次编码,然后再插入cookie。
所以,只要依据解码流畅,解开487098378.24095.0000的内容,就拿到了server的真实IP address。
解码思路
首先,把第一小节的十进制数取出来,也即,487098378
第二,将其转为十六进制数1d08880a
第三,从后至前,以此取四位数出来,也即,0a;88;08;1d;
第四,依次把他们转为十进制数:10;136;8;29
最后,得到真实内网IP:10.136.8.29
总结
严格意义上说,只有内网的私有IP,对正面突破目标防线的帮助并不明显。
但是,当需要做内网渗透和漫游的时候,这一点信息还是有价值的。
再不济,写report的时候,如果实在没的可写的时候,还可以拿这点
透过F5获取服务器真实内网IP的更多相关文章
- php获取代理服务器真实内网IP方法
功能:获取用户真实IP地址,代理服务器内网IP,防HTTP_CDN_FORWARDED_FOR注入 function getIP() { if (isset($_SERVER["HTTP_ ...
- JAVA获取访问者的内网IP地址
/** * 获取访问者内网IP * @return the server ip */ public static String getIntranetIp() { // 本地IP,如果没有配置外网IP ...
- C++获取当前机器内网IP地址
/*头文件*/ #include "winsock2.h" #pragma comment(lib,"ws2_32.lib") /*Hui 获取当前服务器IP* ...
- Python获取内网IP
Python 获取本机内网IP 本文记录使用Python获取本机IP的两种方法. 通过hostname来获取本机IP import socket print(socket.gethostbyname( ...
- 获取本机外网ip和内网ip
获取本机外网ip //获取本机的公网IP public static string GetIP() { string tempip = ""; try { WebRequest r ...
- python 判断内网IP方法及实例应用
一.初衷: 一般在CMDB里会存储一台服务器的内网IP.管理IP.电信IP.联通IP,我们在使用的时候只需要拿到其中一个外网IP地址即可.那么我们就需要判断内网IP.管理IP并剔除掉,获取第一个外网I ...
- 根据Request获取客户端IP 内网IP及外网IP
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实 ...
- xss实现获取内网ip
前提得浏览器支持webRTC,测试的时候google浏览器测试成功,火狐浏览器不支持webRTC, 再在xss平台直接复制如下js代码: function form_ip(ip,port){ var ...
- 获取本机内网、外网ip(C++)<转>
基础知识 电脑在局域网内,通过网关/路由器连接到Internet则ip分为内网ip.外网ip.通过ipconfig得到的为局域网ip. 电脑直接拨号连接等,则本机通过ipconfig得到的就是外网ip ...
随机推荐
- python刷LeetCode:13. 罗马数字转整数
难度等级:简单 题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ...
- LeetCode刷题笔记(1-9)
LeetCode1-9 本文更多是作为一个习题笔记,没有太多讲解 1.两数之和 题目请点击链接 ↑ 最先想到暴力解法,直接双循环,但是这样复杂度为n平方 public int[] twoSum(int ...
- CCCC 红色警报
题意: 战争中保持各个城市间的连通性非常重要.本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报.注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个 ...
- 18 12 30 服务器 Django 的初步使用 环境变量的调整
1.安装django 1.1.下载Django包 https://www.djangoproject.com/download/https://www.djangoproject.com/m/rele ...
- Centos下nginx安装
安装很简单,这里记录只是为了记下下载地址: A.[root@localhost soft]# wget http://nginx.org/download/nginx-1.4.2.tar.gz B.[ ...
- A4纸网页打印
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- UML-架构分析-基础
1.何时开始架构分析? 最好在第一次迭代前开始.因为,架构分析的失败会导致高风险.如:必须支持英语.在一秒响应时间内支持500个并发事务. UP是迭代和进化的(不是瀑布式的),所以架构分析和开发工作齐 ...
- 框架-Spring及组件概念
1.什么是Spring Spring框架是一款开源java平台.创建于2003年,轻量级框架(基本版本只有2M). 使用Spring优点: (1) 使用POJOs开发,不再需要EJB容器:如果 ...
- Flink(四) —— 数据流编程模型
分层抽象 The lowest level abstraction simply offers stateful streaming. It is embedded into the DataStre ...
- JS中,输出1-10之间的随机整数
<script> document.write(parseInt(10*Math.random())); //输出0-10之间的随机整数 document.write(Math.floor ...