如何透过cdn找目标真实ip

标签: 专栏 bypasscdn | 发表时间:2017-09-20 19:00 | 作者:二楼日记
出处:http://www.freebuf.com

0×01 在了解cdn之前,有必要先来科普下什么是 ‘负载均衡’ 以及’正/反向’ 代理,既然选择了做渗透,这些最基本的基础不熟悉肯定是不行的

正向代理 [ ForwardProxy ]

大家默认所说的代理其实都是指正向代理,不管是正向还是反向,理解数据的流向很重要,要理解这种比较抽象的东西最好
的方式就是画图,比如下图就是一个正向代理的简易工作流程图,要表达的意思,已经很清晰了,就是说当客户端要去请求
远程server上的资源时,并非直接通过本地路由网关到达远程server,而是先经过代理服务器,由代理服务器去帮我们请求
,之后远程服务器会把请求的结果返回给代理服务器再由代理服务器返回给客户端,这么一个过程就叫正向代理,其实你还
可以理解的更简单粗暴一点,它有点儿类似我们常说的 '翻墙',正常情况我自己是不能直接上谷歌的,但我找了一个能上谷
歌的代理,然后我们请求谷歌的时候可以让代理服务器去帮我们请求,最后,再通过代理服务器把响应的数据返回到我本地,
就这么一个过程,包括我们常用的vpn其实也有点儿类似的功能(当然,这里只是粗略的类似,但vpn本质[隧道]上是什么,在
前面已经有说明),不过现在正向代理可能用的比较少了,以前用代理服务器只是为了提高访问速度[因为缓存的原
因],可以节省带宽,也可以在代理服务器上做些访问控制……

反向代理 [ reverseproxy ]

至于反向代理,就更容易理解了,数据流向完全相反,还是看这张图,来自客户端的请求会首先到达代理服务器而非真实
的server,至于客户端的请求最终会被送到哪个后端服务器上去处理,客户端是完全看不到的,这也在一定程度上隐藏
了后端的真实server

负载均衡 [ Loadbalancing ]

负载均衡主要用在高并发的场景中,也就是代理服务器可能有很多台,有可能是个代理服务器集群,来自四面八方的请求会被
代理服务器分发到后端各个服务器上去处理,至于具体要被分发到后端哪一台服务器上去处理,则由其内部的负载均衡算法决
定,比如典型的 nginx七层负载均衡,以及各种硬件负载均衡器,比如像 f5 这种东西,等等……

透明代理

很显然,透明的意思就是你感受不到代理服务器的存在,但流量却又真正被代理服务器所左右,也就是说,我们并不需要知道代
理服务器,比如,我可以用这种方式来限制你访问某些资源等等……它跟正向代理非常的像,其实也属于正向代理的一种,只不过
正向代理能看见,但这个看不到

匿名代理

高度匿名代理

这样的服务器会把你的数据包原封不动的来转发,就好像自己的一样,这样对目标站来讲,根本就不会以为是代理服务器在
访问它而不是你

普通匿名代理

相对于高度匿名代理来讲,这样的服务器会被目标站认出来是代理服务器,从而很有可能还是会追踪到你的真实IP

0×02 既然说到这里,就顺带插一嘴,关于木马的正向,反向连接:

正向连接(bind),是我主动去连接别人机器上的某个端口,很显然,这样极易被对方防火墙拦掉
反向连接(reverse),是让别人机器上的某个端口上的流量主动连到我机器上的某个端口上,起码暂时对各类应用层防火墙的穿透效果还是蛮不错的  

0×03 接着我们就来简要说明下,在实际渗透过程中,关于绕过cdn找真实ip的问题,不过在此之前,我们首先要稍微了解下cdn是什么:

cdn即内容分发网络,主要是为了解决传输距离和不同运营商节点处所带来的网络速度性能低下的问题,说白点儿就是一组
在不同运营商之间的对接节点上的一组高速缓存服务器,把用户经常要访问的一些静态数据资源,例如:静态的html,css,
js图片等文件,直接缓存到节点服务器上,当用户再次请求的时候,直接分发到在离用户最近的节点服务器上响应给用户,
注意,这里直接是就近响应给用户,而并非现从远程web服务器上取数据然后再响应给用户,远程web服务器也只是当用户
有实际数据交互的时才会现从远程服务器上响应,这样可以大大提高网站的响应速度以及用户体验,但这却给渗透带了一
些问题,比如:目标购买了cdn服务,我们直接ping目标的域名,最先到达的并非真正的目标web服务器,而只是离我们最近
的一台目标节点的cdn服务器,这也就导致我们没法直接得到目标真实的ip段范围,表面看来,这样确实好像能有效的抵御
一部分入侵和ddos行为,但……真的就能那啥吗……很显然,安全本身就是一个非常全面一体的概念,只是一个或者几个节点
的安全,不算真正的安全,可能现在大多数企业都会大量的心思花在web上,首先,可以确认的是,一般把web安全做好,基本
就能防住一大半的主动入侵,这是事实,但另一部分呢,web往往只是作为我们的其中一个边界入口,但绝不是唯一的入口,
好吧,又TM跑题了,实在抱歉,还是说我们今天的重点吧,如何透过CDN节点找到目标的真实ip段范围

0×04 在了解了cdn的基本作用之后,我们来具体看看如何bypass掉它,首先,怎么判断目标到底是否使用了CDN,观察下面的实例:

可以先简单ping下目标主域,观察域名的解析情况,一般情况下,从这里就大概可以看到目标是否用了cdn,比如,下面这些实例很显然就用了cdn

# ping www.zhenai.com

cdn.png

# ping www.baihe.com

cdn1.png

# ping www.eastmoney.com

cdn2.png

0×05 在确认目标确实用了cdn以后,就可以开始进入今天的重点了,如何透过cdn找目标真实ip,下面都是一些比较常规的方法,不一定每种都可行,但我知道,不尝试一定不可行

搞清楚目标网站业务,看看目标网站上有没有提供用户注册的功能,关键我们的目的主要是要它发过来的那个激活邮件,
因为在这个邮件头中有发送此邮件的邮件服务器域名ip,看看是不是目标自己的邮件服务器(务必要注意,必须是目标
自己的邮件服务器,因为我们最终要找的是目标的真实ip段,如果是利用第三方或者其它公共邮件服务器发的都不是
我们想要的),如果是,ping下它的这个邮件服务器的域名,也许就能看到目标真实ip了

再看看目标网站上有没有订阅功能,把目标订阅到自己的邮箱,和上面验证邮件的用途一样,看下发来的订阅邮件中的
邮件头,观察发送此邮件的服务器域名是不是我们想要的

盲打目标网站的各种探针类文件,如:phpinfo里面的_SERVER["SERVER_ADDR"]也包含的有服务器端的真实ip,当然
,除了phpinfo之外,还有很多其它类似的探针文件,这个可以尝试直接拿工具跑

在目标规模很大的情况下,通过爆破目标子域分析下各个子域的ip解析情况,也是可以判断出目标的真实ip段的

前面提过一个查域名的ip历史纪录的老站,www.netcraft.com,通过观察域名的ip历史记录也是可以大致分析出目标的真实ip段

用个境外的不知名的dns服务器ip来解析目标域名的各种记录mx,ns,a,因为在境外用cdn的情况还是比较少的

如果目标网站有自己的app,不妨再抓下它app的请求,看看能不能这里面找到目标的真实ip,至于工具,fiddler和burpsuite都可以

跟抓app方式差不多,如果目标还有自己的什么软件产品,不妨去下个装下,尝试跟下它的各流量,兴许也能看到目标的真实ip

通过各种漏洞或者其它方式想办法让目标反向连接我们,比如弹个shell,被动和目标数据库建立连接等等……然后再在本地netstat-ano就有了

关于其它更多的小技巧,待续……  


0×06 找到目标真实ip以后,又该怎么验证结果的可靠性呢,如果是web,最简单的方法,可直接尝试用ip访问,看看响应的页面是不是和直接访问域名返回的一样,或者在目标段比较大的情况下[比如一个C段都是他的],还可以借助类似masscan的工具批扫下对应ip段中所有开了80,443,8080端口的ip,然后逐个尝试ip访问,观察响应结果是否为目标站点

0×07 至于,确定目标真实ip以后的用途,大家可以去看  我的博客

0×08 最后,再提供一个传说可以直接bypass CloudflareCDN的接口,暂时还有效,不过,能有效到什么时候就不好说了,至于其内部具体怎么实现,暂未知:

http://www.crimeflare.com/cfs.html

一点小结:

关于如何透过cdn找目标真实ip范围,大概就先说到这里,大家也看到了,其实这个东西并没有任何技术含量,都是平时
的一些想法和经验积累,关键在于,你能不能想到哪里会存的有真实ip,才是最重要的,当然,这里说到的可能只是冰山
一角,其实,自己博客的初衷并非想教会大家多少技巧,更多的是希望能通过自己的一点想法扩展出大家无限的思路,然
后再相互交流融合,这也是本人一直所期望的

相关 [cdn 目标 真实] 推荐:

如何透过cdn找目标真实ip

- - FreeBuf.COM | 关注黑客与极客
0×01 在了解cdn之前,有必要先来科普下什么是 ‘负载均衡’ 以及’正/反向’ 代理,既然选择了做渗透,这些最基本的基础不熟悉肯定是不行的. 正向代理 [ ForwardProxy ]. 反向代理 [ reverseproxy ]. 至于反向代理,就更容易理解了,数据流向完全相反,还是看这张图,来自客户端的请求会首先到达代理服务器而非真实 的server,至于客户端的请求最终会被送到哪个后端服务器上去处理,客户端是完全看不到的,这也在一定程度上隐藏 了后端的真实server.

Google宣布Google CDN

- way - Solidot
Google宣布了最新的帮助加快互联网速度的工具Page Speed Service,加快静态网页的载入速度,不支持动态网页. 在开发者注册该服务之后,可将网站的DNS入口记录指向Google,然后Page Speed Service从服务器上抓取内容,采用最佳的Web性能方案重写网页,通过Google在全球部署的服务器将内容展示给终端用户,加快网页载入速度.

金山面试CDN

- - CSDN博客互联网推荐文章
今天去金山网络面试的时候,被问到 性能优化,我说了几个,最后说到了 CDN,我说要尽量把静态的内容放置到CDN,但是为什么呢. 面试官说既然你说到CDN,你就说说它的原理. 按我个人理解来说它是遵循就近原则,给用户找到最近的服务器来提供用户的静态内容,比如CSS文件、图像等,来提高用户访问网站的响应速度.

CDN缓存策略

- - 开心平淡对待每一天。热爱生活
   CDN这个东西,当然是个好东西. 所以看到有FAQ就理所当然的复制下来,其实,最近我突然想到一件事情,中国的地区域名还有一个很有意思的地域域名,那就是js.cn,所以,我悄悄的申请了两个域名,cache.js.cn和cdn.js.cn,就是想用来做这种CDN转发,当然,只是简单的. 我最初的想法是(有一小部分),如果我的服务器里有N多人装了DZ论坛,那么这些JS和CSS其实都是共用的.

CDN 工作原理

- - 互联网 - ITeye博客
1.CDN的实现基础是通过将DNS的域名设置为CNAME(就是指向另一个域名,但这个域名也是有A记录的(就是域名对应IP)). 2.CNAME的作用就是要求浏览器发送域名到CNAME这个域名的服务器去解析得到域名的IP,就是本地DNS不作IP解析,而由CNAME指定的服务器去解析. 3.CNAME指定的服务器去解析的IP地址是CDN的全局负载均衡设备IP.

[CDN] 第二代 CDN 架构和普通 CDN 架构

- cgeek - 扶凯
近来没有什么东西好写的,介绍一下我们公司几前年的一个东西,可能对很多人来讲是个新的东西. 我以后可以介绍一些这些公司的技术. 这次要讲的是普通 CDN 和我们公司的 C.

jQuery CDN failover 的方式…

- Tim - Gea-Suan Lin's BLOG
之前有在其他網站上看到 failover 的技巧,但剛剛才發現 jQuery 官方網站上也用上了類似的技巧,將 Google (ajax.googleapis.com) 與 EdgeCast (code.jquery.com) 的 CDN:. 雖然 jQuery 網站上是放在開頭,但放在 HTML 最後面也有一樣的效果….

如何诊断CDN故障

- - 火丁笔记
某项目使用CDN做文件下载服务,最近不时有网友反馈下载出错,因为CDN是第三方提供的,且节点众多,所以诊断起来有点麻烦,必须想想招儿. 首当其冲的问题是如何确认CDN有哪些节点. 幸运的是通过 阿里测提供的服务,我们能拿到这个IP列表,当然这个IP列表不可能百分百完整,不过应该包含了大部分的节点,有兴趣的可以参考 百度的JQuery CDN例子.

自建CDN资料收集

- - the5fire的技术博客
前端时间研究了下CDN的搭建,收集了不少资料,记录在此. 在CDN搭建方面,主要的几个软件就是:Squid,Varnish,Traffic Server还有nginx. 要了解整个过程还是得从网络基础开始. 土豆网CDN应用和实践:. 使用Apache Traffic Server代理服务器缓存视频文件.