【奇技淫巧】通过解密f5的cookie信息获得服务器真实内网IP

  • A+
所属分类:安全文章

【奇技淫巧】通过解密f5的cookie信息获得服务器真实内网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的时候,如果实在没的可写的时候,还可以拿这点作为一个issue作为丰富report的素材。

附上解密的脚本:
python脚本:
BigIPF5-Decoder.py:


【奇技淫巧】通过解密f5的cookie信息获得服务器真实内网IP


[email protected]:~$ python BigIPF5-Decoder.py 185903296.21520.0000
String to decode: 185903296.21520.0000
Decoded Host and Port: 192.168.20.11:4180


perl解密脚本,f5_decode.pl:


【奇技淫巧】通过解密f5的cookie信息获得服务器真实内网IP


Usage:  ./f5_decode.pl 335653056.20480.0000

其他tips:


1.另外有时遇到传shell上去之后有负载,其实可以通过设置cookie来只访问内网某台负载服务器,这就不用传多个文件了,特别适合弄于regeorg遇到负载的时候。


2.SSRF配合攻击内网的同段IP


3.通过设置COOKIES来指定负载会话


4.基于session的会话保持,这种也是现在比较常用的,weblogic的session复制机制,想apache这种可以通过插件来实现,不过在现在的分布式环境中都是用数据库或者内存数据库(redis、mongo、Memcached等),早期有一部分是用文件系统来实现,性能原因被抛弃了 


5.还有一种就是基于四层的负载,基于IP+端口,这个现在貌似没人用,优点是性能好

【奇技淫巧】通过解密f5的cookie信息获得服务器真实内网IP


本文始发于微信公众号(T00ls):【奇技淫巧】通过解密f5的cookie信息获得服务器真实内网IP

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: