刚刚过去的2017年,网络安全事件频发,ISEC实验室通过对各安全事件的研究分析,发现很多攻击手段都是通过脆弱的旁站和C段实现的,DDOS亦是如此,它可以导致服务器被占用资源甚至当机。这些攻击得以实施都是由于用户web服务器的真实ip暴露出去了。
接下来,ISEC实验室将为大家揭秘黑客查找真实ip的多种方法。
一、 什么是CDN
首先,我们来认识下最寻常的真实ip隐藏的方法“CDN”。
内容分发网络(content delivery network或content distribution network,缩写作CDN)指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。
CDN节点会在多个地点,不同的网络上摆放。这些节点之间会动态的互相传输内容,对用户的下载行为最优化,并借此减少内容供应者所需要的带宽成本,改善用户的下载速度,提高系统的稳定性。国内常见的CDN有ChinanNet Center(网宿科技)、ChinaCache(阿里云)等,国外常见的有Akamai(阿卡迈)、Limelight Networks(简称LLNW)等;如下图,国内外主流的CDN市场格局:
如图:用户先经由CDN节点,然后再访问web服务器。
二. 如何判断ip是否是网站真实ip
1.Nslookup法
黑客一般nslookup想要查的域名,若是有多个ip就是用了cdn,多半为假ip;如图:
2.多地ping域名法
黑客也可以从多个地点ping他们想要确认的域名,若返回的是不同的ip,那么服务器确定使用了cdn,返回的ip也不是服务器的真实ip;
常用的网址有just ping:http://itools.com/tool/just-ping等等。
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次免费查询机会。如图:
②.Dnsdb查询法。(https://dnsdb.io/zh-cn/)
黑客只需输入baidu.com type:A就能收集百度的子域名和ip了。如图:
③.Google 搜索
Google site:baidu.com -www就能查看除www外的子域名,如图:
④.各种子域名扫描器
这里,主要为大家推荐子域名挖掘机和lijiejie的subdomainbrute(https://github.com/lijiejie/subDomainsBrute)
子域名挖掘机仅需输入域名即可基于字典挖掘它的子域名,如图:
Subdomainbrute以windows为例,黑客仅需打开cmd进入它所在的目录输入Python subdomainbrute.py baidu.com --full即可收集百度的子域名,如图:
总结:收集子域名后尝试以解析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。
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段的服务器。