绕过CDN查找真实IP方法总结

声明: 该公众号大部分文章来自做者平常学习笔记,也有少部分文章是通过原做者受权和其余公众号白名单转载,未经受权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如所以产生的一切不良后果与文章做者和本公众号无关。

全部话题标签:javascript

#Web安全   #漏洞复现   #工具使用   #权限提高php

#权限维持   #防御绕过   #内网安全   #实战案例css

#其余笔记   #资源分享   #MSFjava


0x00 CDN简述web

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


0x01 域名解析过程shell

  • 传统访问:用户访问域名-->解析IP-->访问目标主机
  • 简单模式:用户访问域名-->CDN节点-->真实IP-->目标主机json

  • 360网站卫士:用户访问域名-->CDN节点(云WAF)-->真实IP-->目标主机api


注:目前市面上大多数的CDN服务商都提供了云WAF配置选项,内置了多种安全防御策略,可对SQL注入、XSS跨站、Webshell上传、后门隔离保护、命令注入、恶意扫描等攻击行为进行有效拦截。安全


0x02 CDN配置方法服务器

  • 将域名的NS记录指向CDN厂商提供的DNS服务器。

  • 给域名设置一个cname记录,将它指向CDN厂商提供的另外一个域名。


0x03 CDN检测方法

利用“全球Ping”快速检测目标是否存在CDN,若是获得的IP归属地是某CDN服务商,或者每一个地区获得的IP地址都不同则说明可能存在CDN,可用如下几个网站检测!
https://wepcc.comhttp://ping.chinaz.comhttps://asm.ca.com/en/ping.php

注:全球Ping有必定机率能够获得目标服务器真实IP,由于有的CDN服务商可能没有某些地区的CDN节点



0x04 查找真实IP方法

(1) phpinfo等探针找到真实IP
经过l.php、phpinfo.php等这类探针文件便可获得真实IP地址,phpinfo.php搜索SERVER_NAME。

(2) 网站根域或子域找到真实IP

大部分CDN服务都是按流量进行收费的,因此一些网站管理员只会给重要业务部署CDN,也有不少人会忘了给顶级域名部署CDN,因此尽量的多去搜集一些子域名能提升找到真实IP地址的机率。

注:有时多个子域名可能不会解析到同一台服务器,而是根据公司业务的重要与非重要性将子域名解析在内网或外网的不一样服务器中,须要有必定的分析能力

(3) 利用邮件服务器找到真实IP

Web和Email属同服务器时能够经过Email来查询目标真实IP地址,若是Web和Email属不一样服务器时咱们经过Email获得的可能只是邮件服务器的IP地址,因此在hosts文件中绑定真实IP后没法访问目标网站也属正常现象。常见发送邮件的功能有:注册用户、找回密码等。

(4) 域名历史解析记录找到真实IP

经过查询目标域名历史解析记录可能会找到部署CDN前的解析记录(真实IP地址),能够用如下几个网站来查询。

https://domain.8aq.net    //基于Rapid7 Open Datahttps://x.threatbook.cnhttps://webiplookup.comhttps://viewdns.info/iphistoryhttps://securitytrails.com/#searchhttps://toolbar.netcraft.com/site_report

(5) FOFA查询网站标题找到真实IP

利用“FOFA网络空间安全搜索引擎”搜索目标网站源代码中的title标签内容便可获得真实IP地址。

title="*** ***** – Multi Asset Fund"


(6) Censys查询SSL证书找到真实IP

利用“Censys网络空间搜索引擎”搜索目标域名的SSL证书和HASH,https://crt.sh上查找他SSL证书的HASH,而后再用Censys搜索该HASH值便可获得真实IP地址。

443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:***trade.com

(7) 经过分析目标C段来判断真实IP

这种方法得看目标有多少子域名吧,若是子域够多,且又有多台服务器(同段),找一个没有部署CDN的子域名,而后扫描整个C段查找与目标站Title一致的便可找到他的真实IP地址!


目标站111.test.com解析在192.168.1.10,title:90sec社区,经过333.test.com子域名获得333真实IP地址192.168.1.12,而后扫描整个C段,当扫到192.168.1.10这个IP时发现一个title同为“90sec社区”的网站,域名也是111.test.com,这样就能肯定192.168.1.10为真实IP了。

网站域名

域名解析IP

CDN节点IP

111.test.com(目标)

192.168.1.10

8.8.8.8

222.test.com

192.168.1.11

9.9.9.9

333.test.com

192.168.1.12

没有CDN


(8) 自建CDN节点服务器找到真实IP

这篇笔记当时没有记录下来,其实就是MS17-010刚出来时不少机器都还没打补丁,在批量过程当中打了一台别人自建的CDN节点服务器,而后在里边发现不少解析到这边的IP地址,其实这些IP地址就是某些网站的真实IP,因此这也算是一种思路吧,可是得先拿到CDN节点服务器权限。或者能够经过DDOS攻击方式将其流量耗尽后即会显示真实IP,由于免费和自建CDN的流量都不会不少。


(9) 经过目标网站的漏洞找到真实IP
Web安全漏洞:XSS、SSRF、命令执行、文件上传等,但可能须要先绕过云WAF安全防御。

敏感信息泄露:Apache status、Jboss status、SVN、Github等敏感信息和网页源代码泄露。


(10) 经过社工CDN控制台找到真实IP

经过社会工程学将搜集到的信息组合生成用户名和密码字典对CDN控制台进行爆破或者手工尝试,可是得在没有验证码和登陆次数限制的状况下,而后找到他的真实解析IP地址


(11) Zmap全网扫描及F5 LTM解码法

这两种方法都是前辈们之前写的,我的感受较为复杂,并无亲自实践过,不知是否真的可行?


注意事项:
部署CDN的网站有必要设置严格访问控制策略,仅容许CDN节点访问网站真实服务器80端口,这样设置的好处就是即便在hosts文件中绑定了真实IP后仍然没法访问。

笔者曾经在一次渗透测试过程当中就遇到过相似状况,就是成功绑定了真实IP后,虽然可以正常访问到目标网站,可是仍然没有绕过云WAF,具体状况有点记不太清了,当时没有去细研究这个问题!


借此次知识星球的官方活动推下个人我的星球,里边没有干货文章,也没有各类0day/Exp,只有本身的临时笔记和优质资源分享,考虑好后再决定是否加入!!!

 星球活动:
  1. 20张30元“潇湘信安”优惠券,与知识星球官方活动一块儿“食用”更佳!(潇湘信安活动

  2. 新用户和续费用户都可享受手续费最高10%补贴,额度有限,先到先得!(知识星球活动


 活动时间:
2020 年 11 月 6 日 0 点-14 日 24 点(9 天)

本文分享自微信公众号 - 贝塔安全实验室(BetaSecLab)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索