当前位置: 首页 > news >正文

绕过CDN查找真实IP方法

1、前言

在新型涉网案件中,我们在搜集到目标主站之后常常需要获取对方网站的真实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

2、判断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 的示例:

3、绕过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/)

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

2)Dnsdb查询法

。(https://dnsdb.io/zh-cn/)

只需输入http://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.php
http://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

4、总结

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Cloud集成Eurake
  • 重学SpringBoot3-SpringApplicationRunListener
  • 【MPC】无人机模型预测控制复现Data-Driven MPC for Quadrotors项目(Part 1)
  • 【docker npm】npm 私库
  • 关于HarmonyOS的学习
  • SQL注入(数据库)简介
  • 堆叠沙漏网络(stacked hourglass network)学习
  • 使用python来保存键盘输入情况,可保存到sqlite3数据库
  • 什么是幂等
  • stm32单片机个人学习笔记3(GPIO输出)
  • 如何进行DAP-seq的数据挖掘,筛选验证位点
  • 《OpenCV计算机视觉》—— 图像金字塔
  • Unity的Button组件进行扩展
  • C++:模板开端
  • Python 全栈系列271 微服务踩坑记
  • hexo+github搭建个人博客
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • [译]如何构建服务器端web组件,为何要构建?
  • Angular数据绑定机制
  • co.js - 让异步代码同步化
  • docker python 配置
  • Fabric架构演变之路
  • isset在php5.6-和php7.0+的一些差异
  • JAVA多线程机制解析-volatilesynchronized
  • vue-cli3搭建项目
  • vuex 笔记整理
  • XML已死 ?
  • 聊聊sentinel的DegradeSlot
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #{}和${}的区别?
  • (12)Linux 常见的三种进程状态
  • (4)Elastix图像配准:3D图像
  • (7) cmake 编译C++程序(二)
  • (C++17) optional的使用
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (C语言)共用体union的用法举例
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (汇总)os模块以及shutil模块对文件的操作
  • (排序详解之 堆排序)
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十三)MipMap
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转) ns2/nam与nam实现相关的文件
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)大道至简,职场上做人做事做管理
  • .gitignore不生效的解决方案
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET 解决重复提交问题
  • .net 连接达梦数据库开发环境部署
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)