CDN简介
CDN的全称是Content Delivery Network,即“内容分发网络”,它是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,减低网络阻塞,提高用户访问响应速度和命中率。
真假IP判断
在寻找真实IP地址的过程中,我们首先要做的就是判断一个网站对应的IP地址是否就是其真实IP地址,方法有以下几种:
Nslookup
Windowns下我们可以使用\\”nslookup\\”命令进行查询,若返回域名解析结果为多个ip,多半使用了CDN,不是不真实的ip地址:
多地ping查询
使用不同区域的服务器进行ping测试,查看ping的ip结果是否唯一,如果不唯一,则目标网站可能存在CDN,常见的ping测试网站有以下几个:
http://ping.chinaz.com/
https://ping.aizhan.com/
查找真实IP
常见的查找真实IP地址的方法有以下几种:
子域名信息
某些企业业务线众多,有些站点的主站使用了CDN,或者部分域名使用了CDN,某些子域名可能未使用,我们可以通过查询子域名的IP地址来查找真实IP地址,查询子域名的方法就很多了,例如:Layer、subDomainsBrute、Sublist3r、Google hacking等,下面以Layer为例:
历史DNS记录
查询ip与域名绑定历史记录,可能会发现使用CDN之前的目标ip,查询网站有:
https://dnsdb.io/zh-cn/
https://x.threatbook.cn/
http://toolbar.netcraft.com/site_report?url=
http://www.17ce.com/
https://viewdns.info/
https://tools.ipip.net/cdn.php
再如通过SecurityTrails平台,攻击者就可以精准的找到真实原始IP。只需在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到,例如:查询4399.com的域名解析历史
https://securitytrails.com/domain/4399.com/history/a
MX记录或邮件
很多站点都有发送邮件sendmail的功能,如RSS邮件订阅等。而且一般的邮件系统很多都是在内部,没有经过CDN的解析。可在邮件源码里面就会包含服务器的真实IP
搜索引擎
通过zoomeye、fofa、shodan公开的安全搜索引擎爬取得历史快照来获取真实IP地址,以fofa为例:
通过title标题检索:
title:网站title关键字
通过body特征查询:
body:网站的body特征
通过网站的域名直接搜索:
SSL证书查找IP
假如你在xyz123boot.com上托管了一个服务,原始服务器IP是136.23.63.44。而CloudFlare则会为你提供DDoS保护,Web应用程序防火墙和其他一些安全服务,以保护你的服务免受攻击。为此,你的Web服务器就必须支持SSL并具有证书,此时CloudFlare与你的服务器之间的通信,就像你和CloudFlare之间的通信一样,会被加密(即没有灵活的SSL存在)。这看起来很安全,但问题是,当你在端口443(https://136.23.63.44:443)上直接连接到IP时,SSL证书就会被暴露。
此时,如果攻击者扫描0.0.0.0/0,即整个互联网,他们就可以在端口443上获取在xyz123boot.com上的有效证书,进而获取提供给你的Web服务器IP。
Censys(https://censys.io/)工具就能实现对整个互联网的扫描,Censys是一款用以搜索联网设备信息的新型搜索引擎,安全专家可以使用它来评估他们实现方案的安全性,而黑客则可以使用它作为前期侦查攻击目标、收集目标信息的强大利器。Censys搜索引擎能够扫描整个互联网,Censys每天都会扫描IPv4地址空间,以搜索所有联网设备并收集相关的信息,并返回一份有关资源(如设备、网站和证书)配置和部署信息的总体报告。
而攻击者唯一需要做的就是把上面用文字描述的搜索词翻译成实际的搜索查询参数,我们常用通过SSL证书查找目标真实IP地址的搜索查询参数如下:
443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:4399.com
HTTP标头寻找真实IP
攻击者可以通过比较HTTP标头来查找到原始服务器,特别是当用户拥有一个非常特别的服务器名称与软件名称时,将变得更加容易。
如果要搜索的数据相当多,攻击者可以在Censys上组合搜索参数。假设你正在与1500个Web服务器共享你的服务器HTTP标头,这些服务器都发送的是相同的标头参数和值的组合。而且你还使用新的PHP框架发送唯一的HTTP标头(例如:X-Generated-Via:XYZ框架),目前约有400名网站管理员使用了该框架。而最终由三个服务器组成的交集,只需手动操作就可以找到了IP,整个过程只需要几秒钟。
例如Censys上用于匹配服务器标头的搜索参数是80.http.get.headers.server :,查找由CloudFlare提供服务的网站的参数如下:
80.http.get.headers.server:cloudflare
国外请求
国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。
网站漏洞查找
-
目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等。
-
XSS盲打,命令执行反弹shell,SSRF等。
-
用社工或者其他手段,拿到目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。
F5 LTM解码法
当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的真实ip。
前端JS代码真实IP泄露
有些web的前端代码webpack中包含各种静态资源的加载,其中有可能包含网站真实IP地址的URL信息,造成源站IP地址泄露,例如:
原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34093.html