绕过CDN查找真实IP方法

科技   2024-10-13 10:30   重庆  

前言

在新型涉网案件中,我们在搜集到目标主站之后常常需要获取对方网站的真实IP去进一步的信息搜集,但是现在网站大多都部署了CDN,将资源部署分发到边缘服务器,实现均衡负载,降低网络堵塞,让用户能够更快地访问自己的网站。

CDN的全称是Content Delivery Network,即内容发布网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。(百度百科)

CDN给用户带来便捷的同时也给取证人员带来了更大的挑战,如果网站存在CDN,那么你拿到的IP也是一个分发的虚拟节点,在这个节点所搜集的信息基本是无用功。所以,我们必须绕过CDN去找到网站的真实IP。

常见 CDN 服务商

一、国内 CDN 服务商

  • 阿里云 CDN

  • 百度云 CDN

  • 七牛云 CDN

  • 又拍云 CDN

  • 腾讯云 CDN

  • Ucloud

  • 360 CDN

  • 网宿科技

  • ChinaCache

  • 帝联科技

二、国外 CDN 服务商

  • CloudFlare

  • StackPath

  • Fastly

  • Akamai

  • CloudFront

  • Edgecast

  • CDNetworks

  • Google Cloud CDN

  • CacheFly

  • Keycdn

  • Udomain

  • CDN77

判断CDN的存在

那么我们要如何判断一个网站是否存在一个CDN呢?

方法1:

很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:

http://ping.chinaz.com/

http://ping.aizhan.com/

http://ce.cloud.360.cn/

方法2:

使用 nslookup 进行检测,原理同上,如果返回域名解析对应多个 IP 地址多半是使用了 CDN。

有 CDN 的示例:

无CDN 的示例:

绕过CDN寻找真实IP

方法1: 查询历史DNS记录

查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
https://dnsdb.io/zh-cn/ ###DNS查询
https://x.threatbook.cn/ ###微步在线
http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询
http://viewdns.info/ ###DNS、IP等查询https://tools.ipip.net/cdn.php ###CDN查询IP

方法2: 子域名查询

由于目标服务可能在主站上做好了相应的CDN,但是由于种种原因例如部署费用过高,或者对二级域名不上心等,所以导致二级域名没有部署到CDN,这时我们可以从这个方面入手进行查询。利用子域名搜集工具等搜集到足够的子域名后,便可以对通过子域名进行真实IP的搜集。

下面介绍些常用的子域名查找的方法和工具:

1)微步在线(https://x.threatbook.cn/)

微步在线功能强大,只需输入要查找的域名(如baidu.com),点击子域名选项就可以查找它的子域名了,但是免费用户查询次数有限。如图:

2)Dnsdb查询法。(https://dnsdb.io/zh-cn/)

只需输入baidu.com type:A就能收集百度的子域名和ip了。如图:

3)各种子域名扫描器

这里,主要为大家推荐子域名挖掘机,仅需输入域名即可基于字典挖掘它的子域名,如图:


在开发网站的时候,开发者可能会将一时疏忽忘记将可能泄露信息的 php探针等处理掉,让我们有机可乘

通过谷歌语法去搜集

inurl:phpinfo.php inurl:xxxxxx

方法3: 网络空间引擎搜索法

常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。

方法4: 国外主机解析域名

大部分 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的DNS查询,很可能获取到真实IP。

国外多PING测试工具:

https://asm.ca.com/zh_cn/ping.phphttp://host-tracker.com/http://www.webpagetest.org/https://dnscheck.pingdom.com/

方法5: 网站邮件头信息

比如说,邮箱注册,邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,获取到网站的真实IP。


方法6: 通过 SSL 证书

  • 证书颁发机构 (CA) 必须将他们发布的每个 SSL/TLS 证书发布到公共日志中,SSL/TLS 证书通常包含域名、子域名和电子邮件地址。因此可以利用 SSL/TLS 证书来发现目标站点的真实 IP 地址。

  • CDN 运营商在给服务器提供保护的同时,也会与其服务器进行加密通信(ssl),这时当服务器的 443 端口接入域名时也会在 443 端口暴露其证书,我们通过证书比对便可发现网站的真实 IP 地址。

  • SSL证书搜索引擎:

     https://censys.io/ipv4?q=github.com


方法7: 网站漏洞查找

1)目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等。
2)XSS盲打,命令执行反弹shell,SSRF等。
3)无论是用社工还是其他手段,拿到了目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。

方法8: 扫描全网

通过Zmap、masscan等工具对整个互联网发起扫描,针对扫描结果进行关键字查找,获取网站真实IP。

https://github.com/zmap/zmap

https://github.com/robertdavidgraham/masscan

方法9: 通过 F5 LTM 解码

  • LTM 是将所有的应用请求分配到多个节点服务器上。提高业务的处理能力,也就是负载均衡。

  • 当服务器使用 F5 LTM 做负载均衡时,通过对 set-cookie 关键字的解码,可以获取服务器真实 ip 地址。

例如:

Set-Cookie: BIGipServerpool_9.29_5229=605532106.22012.0000
  • 先把第一小节的十进制数,即 605532106 取出来

  • 将其转为十六进制数 2417afca

  • 接着从后至前,取四个字节出来:CA AF 17 24

  • 最后依次转为十进制数 202.175.23.36,即是服务器的真实 ip 地址。

方法10: 利用HTTP标头寻找真实原始IP

例如,Censys上用于匹配服务器标头的搜索参数是80.http.get.headers.server :,查找由CloudFlare提供服务的网站的参数如下:

80.http.get.headers.server:cloudflare

总结

CDN原本的目的是为了改善互联网的服务质量,提高访问网站速度,然而有些违法网站用了此技术,对我们的取证侦破带来不少麻烦,通过以上介绍一些简单的方法,可以有一定概率查找出CDN背后的真实服务器IP。在办案过程中,如果确认了是国内的CDN厂商的话,也可以尝试去调证。

内容源自云捕快取证

如有侵权请联系我删除



HACK之道
HACK之道,专注于红队攻防、实战技巧、CTF比赛、安全开发、安全运维、安全架构等精华技术文章及渗透教程、安全工具的分享。
 最新文章