• 绕过CDN查找ip方法总结


    CDN简介

    什么是CDN

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

    比较常见的基于公有云的高可用架构,即:

    域名-->CDN,CDN-->WAF,WAF-->SLB,SLB-->ECS
    

    SLB

    CDN对网站有什么好处?

    首先,开启CDN后的网站,会根据用户所在地的不同访问CDN的节点服务器,并不直接访问源服务器,这样可以减少网站服务器宽带资源,降低服务器压力。这也就是大家都在ping百度,但是不同地区得到的反馈ip不一样的原因。

    ​ 其次,由于CDN节点的阻挡防护,可以更好的保护员服务器的安全。具体来说,CDN其实是充当了一个替身的角色,无论服务器是渗透还是DD0S攻击,攻击的目标都将是CDN节点,这样一来便间接的保护了网站本身。

    为什么我们需要绕过CDN?

    对于我们渗透测试者来说,我们在信息收集中重要的一步就是要得到目标服务器主机的真实IP地址,但如果目标服务器部署了CDN服务,那么往往我们直接访问得到的IP只是CDN节点服务器的IP,而不是真实的源服务器的IP地址,这是就需要我们想办法绕过CDN获取源服务器IP。

    验证是否存在CDN

    方法一

    很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:
    http://ping.chinaz.com/
    http://ping.aizhan.com/
    http://ce.cloud.360.cn/

    我们这里打开第一个网站:ping一下www.baidu.com

    这里可以看出百度的独立IP有17个,且各个节点的返回速度存在不同的延迟。说明百度采用了CDN服务,但是ping没有办法确认真实IP。

    方法二

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

    www.163.com
    服务器: public1.114dns.com
    Address: 114.114.114.114
    
    非权威应答:
    名称: 163.xdwscache.ourglb0.com
    Addresses: 58.223.164.86
    
    ​125.75.32.252
    Aliases: www.163.com
    
    ​www.163.com.lxdns.com
    

    无 CDN 的示例:

    xiaix.me
    服务器: public1.114dns.com
    Address: 114.114.114.114
    
    非权威应答:
    名称: xiaix.me
    Address: 192.3.168.172
    

    绕过CND查找网站真实IP

    查询历史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
    

    Security平台

    利用SecurityTrails平台,攻击者就可以精准的找到真实原始IP。他们只需在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到。

    除了过去的DNS记录,即使是当前的记录也可能泄漏原始服务器IP。例如,MX记录是一种常见的查找IP的方式。如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中。

    查询子域名寻找真实IP

    毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。子域名查找方法

    网络空间引擎搜索法

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

    利用SSL证书寻找真实原始IP

    SSL证书

    SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。

    ​ 以CloudFlare这款CDN加速器举例:假如你在 abc.com 上托管了一个服务,原始服务器IP是136.23.63.44。 而CloudFlare则会为你提供DDoS保护,Web应用程序防火墙和其他一些安全服务,以保护你的服务免受攻击。

    ​ 为此,你的Web服务器就必须支持SSL并具有证书,此时CloudFlare与你的服务器之间的通信,就像你和CloudFlare之间的通信一样,会被加密(即没有灵活的SSL存在)。这看起来很安全,但问题是,当你在端口443https://136.23.63.44:443上直接连接到IP时,SSL证书就会被暴露。

    ​ 此时,如果攻击者扫描0.0.0.0/0,即整个互联网,他们就可以在端口443上获取在 aaa.com上的有效证书,进而获取提供给你的Web服务器IP。

    https://censys.io/certificates/ 通过SSL证书查询真实IP(推荐)

    Censys证书查询搜索步骤如下:

    1、aaa.com 证书的搜索查询参数为:parsed.names:aaa.com;只显示有效证书的查询参数为:tags.raw:trusted;攻击者可以在Censys上实现多个参数的组合,这可以通过使用简单的布尔逻辑来完成。
    2、组合后的搜索参数为:parsed.names: aaa.com and tags.raw: trusted
    3、Censys将向你显示符合上述搜索条件的所有标准证书。要逐个查看这些搜索结果,攻击者可以通过单击右侧的“Explore”,打开包含多个工具的下拉菜单。What’s using this certificate? > IPv4 Hosts;
    隐藏服务具有SSL证书,要查找它使用的IPv4,只需将”SHA1 fingerprint”(签名证书的sha1值,也就是SHA1指纹)粘贴到Censys平台IPv4主机搜索中,即可找到证书,使用此方法可以轻松找到配置错误的Web服务器真实IP。
    

    利用HTTP标头寻找真实原始IP

    借助SecurityTrails这样的平台,任何人都可以在茫茫的大数据搜索到自己的目标,甚至可以通过比较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

    利用网站返回的内容寻找真实原始IP

    Shodan是一种类似于Censys的服务,也提供了http.html搜索参数。

    使用国外主机解析域名

    国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。

    ​我这里通过国外主机nslookup查询国内163.com对应IP
    可以使用全球ping https://www.wepcc.com/

    网站漏洞查找

    1.目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等。

    2.XSS盲打,命令执行反弹shell,SSRF等。可以让服务器主动访问我们预设的web服务器,那么就能在日志里面看见目标网站服务器的真实IP。

    3.无论是用社工还是其他手段,拿到了目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。

    网站邮件订阅查找

    RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。

    防止CND被绕过

    通过中间件配置只允许域名访问,禁止ip访问。

    这样处理的话,所有直接访问站点真实IP的请求将会被拒绝,任何用户只能通过域名访问站点,通过预先设定的网络链路,从DNS→CDN→waf防护→源站,所有的域名访问请求都必须经过WAF检测。

    Nginx参考配置:

    #添加一个server,在原server里绑定域名
    server  {
            listen 80 default;
            server_name _;
            return 403;
        }
    server {
            listen       80;
            server_name  www.demo.com;
            .........
    
    

    Apache参考配置:

    #在httpd.conf最后面加上
    
    <VirtualHost 此处填写IP>
            ServerName 此处填写IP
            <Location />
                Order Allow,Deny
                Deny from all
            </Location>
    </VirtualHost>
    
    <VirtualHost 此处填写IP>
            DocumentRoot /var/www/html
            ServerName   此处填写域名
    </VirtualHost>
    
    我们欠生活一个努力!
  • 相关阅读:
    jQuery
    BOM与DOM操作
    剑指offer 面试题10.1:青蛙跳台阶
    剑指offer 面试题10:斐波那契数列
    剑指offer 面试题9.1:用两个队列实现栈
    剑指offer 面试题9.1:用两个队列实现栈
    剑指offer 面试题9:用两个栈实现队列
    剑指offer 面试题8:二叉树的下一个节点
    剑指offer 面试题7:重建二叉树
    剑指offer 树的基本操作:四种遍历方式
  • 原文地址:https://www.cnblogs.com/lalalaxiaoyuren/p/14481303.html
Copyright © 2020-2023  润新知