2018 年, 网络安全事件频发, 我司通过对各安全事件的研究分析, 发现很多攻击手段都是通过脆弱的旁站和 C 段实现的, DDoS 亦是如此, 它可以导致服务器被占用资源甚至当机. 这些攻击得以实施都是由于用户 web 服务器的真实 ip 暴露出去了.
一, 什么是 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;
常用的网址有以下:
图 4
图 5
3."常识" 判断法
为什么叫 "常识" 判断法呢?
1在反查网站 ip 时, 如果此网站有 1000 多个不同域名, 那么这个 ip 多半不是真实 ip. 常用的 ip 反查工具有站长工具, 微步在线等等. 微步在线支持同服域名查询, 子域名查询, 服务查询, whois 反查等, 要注意的是, 查询部分信息有次数限制, 需先注册账号.
2如果一个 asp 或者 ASP.NET 网站返回的头字段的 server 不是 IIS, 而是 Nginx, 那么多半是用了 nginx 反向代理, 而不是真实 ip.
3如果 ip 定位是在常见 cdn 服务商的服务器上, 那么是真实 ip 的可能性就微乎其微了.
三, 如何寻找真实 ip
1. 子域名查找法
因为 cdn 和反向代理是需要成本的, 有的网站只在比较常用的域名使用 cdn 或反向代理, 有的时候一些测试子域名和新的子域名都没来得及加入 cdn 和反向代理, 所以有时候是通过查找子域名来查找网站的真实 IP. 下面介绍些常用的子域名查找的方法和工具:
1微步在线
上文提到的微步在线功能强大, 黑客只需输入要查找的域名(如 baidu.com), 点击子域名选项就可以查找它的子域名了, 但是免费用户每月只有 5 次免费查询机会. 如图:
图 6
2Dnsdb 查询法
黑客只需输入 baidu.com type:A 就能收集百度的子域名和 ip 了. 如图:
图 7
3Google 搜索
Google site:baidu.com -www 就能查看除 www 外的子域名, 如图:
图 8
4各种子域名扫描器
这里, 主要为大家推荐子域名挖掘机和 lijiejie 的
图 9
子域名挖掘机仅需输入域名即可基于字典挖掘它的子域名, 如图:
图 10
Subdomainbrute 以 Windows 为例, 黑客仅需打开 cmd 进入它所在的目录输入 Python subdomainbrute.py baidu.com --full 即可收集百度的子域名, 如图:
图 11
总结: 收集子域名后尝试以解析 ip 不在 CDN 上的 ip 解析主站, 真实 ip 成功被获取到.
2.ip 历史记录解析查询法
有的网站是后来才加入 CDN 的, 所以只需查询它的解析历史即可获取真实 ip, 这里我们就简单介绍几个网站: 微步在线等等.
图 12
3. 网站漏洞查找法
通过网站的信息泄露如 phpinfo 泄露, GitHub 信息泄露, 命令执行等漏洞获取真实 ip.
4. 网站订阅邮件法
黑客可以通过网站订阅邮件的功能, 让网站给自己发邮件, 查看邮件的源代码即可获取网站真实 ip.
5. 理想 zmap 法
首先从 apnic 网络信息中心获取 ip 段, 然后使用 Zmap 的 banner-grab 对扫描出来 80 端口开放的主机进行 banner 抓取, 最后在 http-req 中的 Host 写我们需要寻找的域名, 然后确认是否有相应的服务器响应.
6. 网络空间引擎搜索法
常见的有以前的钟馗之眼, shodan,fofa 搜索. 以 fofa 为例, 只需输入: title:"网站的 title 关键字" 或者 body:"网站的 body 特征" 就可以找出 fofa 收录的有这些关键字的 ip 域名, 很多时候能获取网站的真实 ip.
图 13
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 段的服务器.
来源: http://netsecurity.51cto.com/art/201811/586155.htm