最新绕过目标域名CDN进行信息收集技术

发布时间 2023-11-09 09:43:43作者: Ms08067安全实验室

绕过目标域名CDN进行信息收集

1.CDN简介及工作流程

CDN(Content Delivery Network,内容分发网络)的目的是通过在现有的网络架构中增加一层新的Cache(缓存)层,将网站的内容发布到最接近用户的网络“边缘”的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度,从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因导致的用户访问网站的响应速度慢的问题。

传统的、未使用CDN的网站访问过程如图1-26所示。

 

 图1-26  

 

具体访问流程如下。

(1)用户输入访问的域名,操作系统向LOCAL DNS查询域名的IP地址。

(2)LOCAL DNS向ROOT DNS查询域名的授权服务器(这里假设LOCAL DNS缓存过期)。

(3)ROOT DNS将域名授权的DNS记录回应给LOCAL DNS。

(4)LOCAL DNS得到域名授权的DNS记录后,继续向域名授权DNS查询目标域名的IP地址。

(5)域名授权DNS查询到域名的IP地址后,回应给LOCAL DNS。

(6)LOCAL DNS将得到的域名IP地址回应给用户端。

(7)用户得到域名IP地址后,访问网站服务器。

(8)网站服务器应答请求,将内容返回给用户端。

使用了CDN的网站访问过程如图1-27所示。

 

 

 

 图1-27

 

具体访问流程如下。

(1)用户输入访问的域名,操作系统向LOCAL DNS查询域名的IP地址。

(2)LOCAL DNS向ROOT DNS查询域名的授权服务器(这里假设LOCAL DNS缓存过期)。

(3)ROOT DNS将域名授权的DNS记录回应给LOCAL DNS。

(4)LOCAL DNS得到域名授权的DNS记录后,继续向域名授权DNS查询目标域名的IP地址。

(5)域名授权DNS查询到域名记录后(一般是CNAME),回应给LOCAL DNS。

(6)LOCAL DNS得到域名记录后,向智能调度DNS查询域名的IP地址。

(7)智能调度DNS根据一定的算法和策略(如静态拓扑、容量等),将最适合的CDN节点IP地址回应给LOCAL DNS。

(8)LOCAL DNS将得到的域名IP地址回应给用户端。

(9)用户得到域名IP地址后,访问网站服务器。

(10)CDN节点服务器应答请求,将内容返回给用户端(缓存服务器在本地进行保存,以备以后使用,同时,把获取的数据返回给用户端,完成数据服务过程)。

2.判断目标是否使用了CDN

(1)手动Ping查询。

通常,会通过Ping目标主域,观察域名的解析情况,以此判断其是否使用了CDN,如图1-28所示。

 

 

 

图1-28 

 

可以看到,在Ping主域名时,请求自动转到了“lst.dtwscachev424.ourwebcdn.com”这个CDN代理上,说明此网站使用CDN服务。

(2)在线查询。

还可以利用一些在线网站进行全国多地区Ping检测操作,然后对比每个地区Ping出的IP地址结果,查看这些IP地址是否一致,如果都是一样的,则极有可能不存在CDN。如果IP地址大多不太一样或者规律性很强,则可以尝试查询这些IP地址的归属地,判断是否存在CDN。这里通过17CE网站对百度主域名进行多地Ping检测,如图1-29所示。

17CE网站使用多地Ping技术,设立不同的监测点收集响应IP地址。如果在多个监测点显示同一个IP地址,那么此IP地址就最有可能为该站的真实IP地址。

 

常用的多地Ping检测的CDN网站如下。

17CE

Myssl

站长工具

CDNPlanet

 

 

 

图1-29  

3.绕过CDN,寻找真实IP地址

在确认了目标确实用了CDN后,就需要绕过CDN寻找目标的真实IP地址,下面介绍一些常规的方法。

(1)内部邮箱源。公司内部的邮件系统通常部署在企业内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件、寻找邮件头中的邮件服务器域名IP地址,Ping这个邮件服务器的域名,就可以获得目标的真实IP地址(注意,必须是目标自己的邮件服务器,第三方或公共邮件服务器是没有用的)。

(2)扫描网站测试文件,如.phpinfo、.test等,从而找到目标的真实IP地址。

(3)分站域名。因为很多网站主站的访问量比较大,所以主站都是“挂”CDN的。分站可能没有“挂”CDN,可以通过Ping二级域名获取分站IP地址,可能会出现分站和主站不是同一个IP地址但在同一个C段下面的情况,从而判断出目标的真实IP地址段。

(4)国外访问。国内的CDN往往只对国内用户的访问加速,而国外的CDN就不一定了。因此,通过国外在线代理网站“App Synthetic Monitor”访问,可能会得到真实IP地址,如图1-30所示。

 

 

 图1-30  

 

(5)查询域名的解析记录。如果目标网站之前并没有使用过CDN,则可以通过网站Netcraft查询域名的IP地址历史记录,大致分析出目标的真实IP地址段。

(6)如果目标网站有自己的App,则可以尝试利用Fiddler或Burp Suite抓取App的请求,从里面找到目标的真实IP地址。

(7)绕过“Cloudflare CDN”查找真实IP地址。现在很多网站都使用Cloudflare提供的CDN服务,在确定了目标网站使用CDN后,可以先尝试通过网站“CloudflareWatch”对目标网站进行真实IP地址查询,结果如图1-31所示。

图中列出了域名直连的IP地址,并且给出了“lookup”的历史解析(Previous lookups for this domain)的IP地址。读者可以将以上几种手段结合起来使用,最终筛选出需要查询的域名的真实IP地址。

 

 图1-31  

4.验证获取的IP地址

找到目标的真实IP地址后,如何验证其真实性呢?

(1)如果是Web网站,那么最简单的验证方法是直接尝试用IP地址访问,看看响应的页面是不是和访问域名返回的一样。

(2)在目标段比较大的情况下,借助类似Masscan、Nmap等端口扫描工具批量扫描对应IP地址段中所有开了80、443、8080端口的IP地址,然后逐个尝试IP地址访问,观察响应结果是否为目标网站。如果目标绑定了域名,那么直接访问是访问不到的。这时,需要在Burp Suite中修改header头Host:192.xxx.xxx.xxx,或使用其他方法指定Host进行访问。

 

 

 

Ms08067安全实验室专注于网络安全知识的普及和培训,是专业的“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。

平台已开设Web安全零基础就业,Web高级安全攻防进阶,红队实战攻防特训,Java代码安全审计,恶意代码分析与免杀实战,CTF基础实战特训营,网络安全应急响应,安全工具开发,AI与网络安全等系统培训课程。实验室出版安全图书《Web安全攻防:渗透测试实战指南》、《内网安全攻防:渗透测试实战指南》、《Python安全攻防:渗透测试实战指南》、《Java代码审计:入门篇》等。

现双11活动来袭,添加客服了解活动详情&获取网安学习资料