一、 什么是CDN
首先,我们来认识下最寻常的真实ip隐藏的方法“CDN”。
内容分发网络(content delivery network或content distribution network,缩写作CDN)指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。
CDN节点会在多个地点,不同的网络上摆放。这些节点之间会动态的互相传输内容,对用户的下载行为最优化,并借此减少内容供应者所需要的带宽成本,改善用户的下载速度,提高系统的稳定性。国内常见的CDN有ChinanNet Center(网宿科技)、ChinaCache(阿里云)等,国外常见的有Akamai(阿卡迈)、Limelight Networks(简称LLNW)等;如下图,国内外主流的CDN市场格局:
图1
如图:用户先经由CDN节点,然后再访问web服务器。
展开全文
图2
二. 如何判断ip是否是网站真实ip
1.Nslookup法
黑客一般nslookup想要查的域名,若是有多个ip就是用了cdn,多半为假ip;如图:
图3
2.多地ping域名法
黑客也可以从多个地点ping他们想要确认的域名,若返回的是不同的ip,那么服务器确定使用了cdn,返回的ip也不是服务器的真实ip;
常用的网址有just ping:http://itools.com/tool/just-ping等等。
图4
3.“常识”判断法
为啥叫“常识”判断法呢?
①.在反查网站ip时,如果此网站有1000多个不同域名,那么这个ip多半不是真实ip。常用的ip反查工具有站长工具(http://s.tool.chinaz.com/same)、微步在线(https://x.threatbook.cn/)等等。微步在线支持同服域名查询、子域名查询、服务查询、whois反查等,要注意的是,查询部分信息有次数限制,需先注册账号。
②.如果一个asp或者asp.net网站返回的头字段的server不是IIS、而是Nginx,那么多半是用了nginx反向代理,而不是真实ip。
③.如果ip定位是在常见cdn服务商的服务器上,那么是真实ip的可能性就微乎其微了。
三. 如何寻找真实ip
1、子域名查找法
因为cdn和反向代理是需要成本的,有的网站只在比较常用的域名使用cdn或反向代理,有的时候一些测试子域名和新的子域名都没来得及加入cdn和反向代理,所以有时候是通过查找子域名来查找网站的真实IP。下面介绍些常用的子域名查找的方法和工具:
①.微步在线(https://x.threatbook.cn/)
上文提到的微步在线功能强大,黑客只需输入要查找的域名(如baidu.com),点击子域名选项就可以查找它的子域名了,但是免费用户每月只有5次免费查询机会。如图:
图5
②.Dnsdb查询法。(https://dnsdb.io/zh-cn/)
黑客只需输入baidu.com type:A就能收集百度的子域名和ip了。如图:
图6
③.Google 搜索
Google site:baidu.com -www就能查看除www外的子域名,如图:
图7
④.各种子域名扫描器
这里,主要为大家推荐子域名挖掘机和lijiejie的subdomainbrute(https://github.com/lijiejie/subDomainsBrute)
子域名挖掘机仅需输入域名即可基于字典挖掘它的子域名,如图:
图8
Subdomainbrute以windows为例,黑客仅需打开cmd进入它所在的目录输入Python subdomainbrute.py baidu.com --full即可收集百度的子域名,如图:
图9
总结:收集子域名后尝试以解析ip不在cdn上的ip解析主站,真实ip成功被获取到。
2、ip历史记录解析查询法
有的网站是后来才加入CDN的,所以只需查询它的解析历史即可获取真实ip,这里我们就简单介绍几个网站:微步在线,dnsdb.ionetcraft(http://toolbar.netcraft.com/),Viewdns(http://viewdns.info/)等等。
3、网站漏洞查找法
通过网站的信息泄露如phpinfo泄露,github信息泄露,命令执行等漏洞获取真实ip。
4、网站订阅邮件法
黑客可以通过网站订阅邮件的功能,让网站给自己发邮件,查看邮件的源代码即可获取网站真实ip。
5、理想zmap法
首先从 apnic 网络信息中心获取ip段,然后使用Zmap的 banner-grab 对扫描出来 80 端口开放的主机进行banner抓取,最后在 http-req中的Host写我们需要寻找的域名,然后确认是否有相应的服务器响应。
6、网络空间引擎搜索法
常见的有以前的钟馗之眼,shodan(https://www.shodan.io/),fofa搜索(https://fofa.so/)。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。
图10
7、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。
通过以上的方法,被获取到的ip可能是真实的ip、亦可能是真实ip的同c段ip,还需要要对其进行相关测试,如与域名的绑定测试等,最后才能确认它是不是最终ip。
所以,为了保护我们服务器,我们不好轻易暴露我们的真实ip,可以使用CDN、WAF等,在使用CDN的同时先确认ip历史记录中,是否存在你的真实ip,记得更换ip后再开启cdn。若网站有订阅邮件或发邮件的需求,可选择独立的服务器发取。子域名的ip记得隐匿,或者采取与主服务不同c段的服务器。
找真实IP的方法很多,总有一招是有用的。对于多层架构的CDN来说,常见的tracert等方法是找不到真实ip的。
www法
以前我用CDN的时候有个习惯,只让WWW域名使用cdn,秃域名不适用,为的是在维护网站时更方便,不用等cdn缓存。所以试着把目标网站的www去掉,ping一下看ip是不是变了?
二级域名法
目标站点一般不会把所有的二级域名放cdn上,比如试验性质地二级域名。Google site一下目标的域名,看有没有二级域名出现,挨个排查,确定了没使用cdn的二级域名后,本地将目标域名绑定到同ip,能访问就说明目标站与此二级域名在同一个服务器上。
不在同一服务器也可能在同C段,扫描C段所有开80端口的ip,挨个试。
如果google搜不到也不代表没有,我们拿常见的二级域名构造一个字典,猜出它的二级域名。比如mail、cache、img。
nslookup法
查询域名的NS记录,其域名记录中的MX记录,TXT记录等很有可能指向的是真实ip或同C段服务器。
工具法
这个工具http://toolbar.netcraft.com据说会记录网站的ip变化情况,通过目标网站的历史ip地址就可以找到真实ip。没亲自测试,想必不是所有的网站都能查到。
例:http://toolbar.netcraft.com/site_report?url=http://www.waitalone.cn
墙外法
很多国内的CDN没有节点对国外服务,国外的请求会直接指向真实ip。有人说用国外NS和或开国外VPN,但这样成功率太低了。我的方法是用国外的多节点ping工具,例如just-ping,全世界几十个节点ping目标域名,很有可能找到真实ip。
域名:http://www.just-ping.com/
钓鱼法
不管网站怎么CDN,其向用户发的邮件一般都是从自己服务器发出来的。以wordpress为例,假如我要报复一个来我这捣乱的坏蛋,坏蛋使用了 CDN,我要找到它的真实ip以便DDOS他。我的方法是在他博客上留言,再自己换个名回复自己,然后收到他的留言提醒邮件,就能知道发邮件的服务器ip 了。如果他没开提醒功能,那就试试他是不是开启了注册功能,wordpress默认是用邮件方式发密码的。
思考一下,还有哪些信息是不通过CDN返回给用户的呢?
总结一下,将网站安全依赖于CDN只会让网站的安全外紧内松,脱离网站本身的安全防护都是不科学的。但360网站卫士的节点确实不少,如果想给站点加速的话,大可以尝试一下。
原文地址:http://dou.lu/737.xsafe