web渗透第一步之信息搜集 [ 透过cdn找目标真实ip ]
0x01 在了解cdn之前,有必要先来科普下什么是 ‘负载均衡’ 以及’正/反向’ 代理,既然选择了做渗透,这些最基本的基础不熟悉肯定是不行的
正向代理 [ ForwardProxy ]:
大家默认所说的代理其实都是指正向代理,不管是正向还是反向,理解数据的流向很重要,要理解这种比较抽象的东西最好的方式就是画图,比如下图就是一个正向代理的简易工作流程图,要表达的意思,已经很清晰了,就是说当客户端要去请求远程server上的资源时,并非直接通过本地路由网关到达远程server,而是先经过代理服务器,由代理服务器去帮我们请求,之后远程服务器会把请求的结果返回给代理服务器再由代理服务器返回给客户端,这么一个过程就叫正向代理,其实你还可以理解的更简单粗暴一点,它有点儿类似我们常说的 ‘翻墙’,正常情况我自己是不能直接上谷歌的,但我找了一个能上谷歌的代理,然后我们请求谷歌的时候可以让代理服务器去帮我们请求,最后,再通过代理服务器把响应的数据返回到我本地,就这么一个过程,包括我们常用的vpn其实也有点儿类似的功能(当然,这里只是粗略的类似,但vpn本质[隧道]上是什么,在前面已经有说明),不过现在正向代理可能用的比较少了,以前用代理服务器只是为了提高访问速度[因为缓存的原因],可以节省带宽,也可以在代理服务器上做些访问控制……
反向代理 [ reverseproxy ]:
至于反向代理,就更容易理解了,数据流向完全相反,还是看这张图,来自客户端的请求会首先到达代理服务器而非真实的server,至于客户端的请求最终会被送到哪个后端服务器上去处理,客户端是完全看不到的,这也在一定程度上隐藏了后端的真实server
负载均衡 [ Loadbalancing ]:
负载均衡主要用在高并发的场景中,也就是代理服务器可能有很多台,有可能是个代理服务器集群,来自四面八方的请求会被代理服务器分发到后端各个服务器上去处理,至于具体要被分发到后端哪一台服务器上去处理,则由其内部的负载均衡算法决定,比如典型的 nginx七层负载均衡,以及各种硬件负载均衡器,比如像 f5 这种东西,等等……
透明代理:
很显然,透明的意思就是你感受不到代理服务器的存在,但流量却又真正被代理服务器所左右,也就是说,我们并不需要知道代理服务器,比如,我可以用这种方式来限制你访问某些资源等等……它跟正向代理非常的像,其实也属于正向代理的一种,只不过正向代理能看见,但这个看不到
匿名代理:
|
|
0x02 既然说到这里,就顺带插一嘴,关于木马的正向,反向连接:
0x03 接着我们就来简要说明下,在实际渗透过程中,关于绕过cdn找真实ip的问题,不过在此之前,我们首先要稍微了解下cdn是什么:
cdn即内容分发网络,主要是为了解决传输距离和不同运营商节点处所带来的网络速度性能低下的问题,说白点儿就是一组在不同运营商之间的对接节点上的一组高速缓存服务器,把用户经常要访问的一些静态数据资源,例如:静态的html,css,js图片等文件,直接缓存到节点服务器上,当用户再次请求的时候,直接分发到在离用户最近的节点服务器上响应给用户,注意,这里直接是就近响应给用户,而并非现从远程web服务器上取数据然后再响应给用户,远程web服务器也只是当用户有实际数据交互的时才会现从远程服务器上响应,这样可以大大提高网站的响应速度以及用户体验,但这却给渗透带了一些问题,比如:目标购买了cdn服务,我们直接ping目标的域名,最先到达的并非真正的目标web服务器,而只是离我们最近的一台目标节点的cdn服务器,这也就导致我们没法直接得到目标真实的ip段范围,表面看来,这样确实好像能有效的抵御一部分入侵和ddos行为,但……真的就能那啥吗……很显然,安全本身就是一个非常全面一体的概念,只是一个或者几个节点的安全,不算真正的安全,可能现在大多数企业都会大量的心思花在web上,首先,可以确认的是,一般把web安全做好,基本就能防住一大半的主动入侵,这是事实,但另一部分呢,web往往只是作为我们的其中一个边界入口,但绝不是唯一的入口,好吧,又TM跑题了,实在抱歉,还是说我们今天的重点吧,如何透过CDN节点找到目标的真实ip段范围
0x04 在了解了cdn的基本作用之后,我们来具体看看如何bypass掉它,首先,怎么判断目标到底是否使用了CDN,观察下面的实例:
|
|
|
|
|
|
0x05 在确认目标确实用了cdn以后,就可以开始进入今天的重点了,如何透过cdn找目标真实ip,下面都是一些比较常规的方法,不一定每种都可行,但我知道,不尝试一定不可行
0x06 找到目标真实ip以后,又该怎么验证结果的可靠性呢,如果是web,最简单的方法,可直接尝试用ip访问,看看响应的页面是不是和直接访问域名返回的一样,或者在目标段比较大的情况下[比如一个C段都是他的],还可以借助类似masscan的工具批扫下对应ip段中所有开了80,443,8080端口的ip,然后逐个尝试ip访问,观察响应结果是否为目标站点
0x07 至于,确定目标真实ip以后的用途,前面已经多次说明过,此处不再赘述
0x08 最后,再提供一个传说可以直接bypass CloudflareCDN的接口,暂时还有效,不过,能有效到什么时候就不好说了,至于其内部具体怎么实现,暂未知:
一点小结:
关于如何透过cdn找目标真实ip范围,大概就先说到这里,大家也看到了,其实这个东西并没有任何技术含量,都是平时的一些想法和经验积累,关键在于,你能不能想到哪里会存的有真实ip,才是最重要的,当然,这里说到的可能只是冰山一角,其实,自己博客的初衷并非想教会大家多少技巧,更多的是希望能通过自己的一点想法扩展出大家无限的思路,然后再相互交流融合,这也是本人一直所期望的