网络安全渗透测试
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 服务器信息收集

3.3.1 真实IP探测

随着网络的发展,很多网站都开始使用CDN,CDN分发网络将源站的内容发布到接近用户的网络“边缘”,用户可以就近获取所需数据,不仅降低了网络的拥塞状况、提高了请求的响应速度,也能够减少源站的负载压力。在加速网站访问的同时也让渗透测试人员难以获取真实的服务器IP地址,所以CDN的判断和绕过是服务器信息收集的第一步,只有绕过了CDN才可以拿到服务器的真实IP信息。

3.3.1.1 CDN判断方法

1.ping命令

直接使用 ping 命令有时候也可以查询到目标网站是否使用了CDN。ping命令使用如图3-6所示。

图3-6 ping命令使用

有时,可以直接看到waf、cdn等字样的域名,这就表示目标服务器使用了CDN。不过有很多厂商可能只让www主站域名使用CDN,空域名或者子域名并没有使用CDN缓存,所以这种情况下直接使用ping xxx.com 就有可能得到真实的IP地址。

2.nslookup查询

不仅可以使用 ping 命令来对目标网站进行CDN判断,也可以使用nslookup命令查询域名的解析情况,如果一个域名解析结果为多个IP地址,那么多半使用了CDN。nslookup使用如图3-7所示。

图3-7 nslookup使用

如果只是单个的域名,那很可能没有使用CDN。无CDN情况如图3-8所示。

图3-8 无CDN情况

3.3.1.2 绕过CDN查询真实IP

1.多地ping查询

某些情况下,CDN由于费用高昂的原因,使用者可能为了节约成本会让CDN只覆盖一小部分高流量地区,所以这样就有可能被攻击者利用而探测到服务器的真实IP信息。

2.域名历史解析记录查询

有时候查询域名之前的IP解析记录,也可能会发现使用CDN之前的IP信息。

3.其他查询探测思路

1)子域名绕过

很多网站主站的访问量会比较大,往往使用CDN服务,但是分站就不一定使用CDN了,毕竟CDN价格不菲,加上有些企业的业务线众多,从而出现了主站使用了CDN,分站没有使用CDN的情况。利用这个特点可以结合之前的“子域名爆破”来进行真实IP地址收集。

2)站点功能发起请求

一些网站提供注册服务,可能会验证邮件,还有RSS订阅邮件、忘记密码等业务场景,如果使用服务器本身自带的sendmail直接发送邮件,就可以通过邮件中的显示邮件原文功能查看到邮件发送者的真实IP地址信息。

除利用邮件等功能外,如果目标业务场景可以对网站进行资源请求,还可以利用对网站请求的特点让目标服务器访问DNSlog这类可以记录请求IP者信息的网站,以此看到目标服务器的真实IP地址信息。

3)利用网站漏洞

如果目标站点存在漏洞,这就没办法避免了。例如,phpinfo敏感信息泄露、Struts 2、网页源代码泄露、svn 信息泄露、GitHub信息泄露等。若存在Web漏洞,服务器主动与我们发起请求连接,我们也能获取目标站点真实IP地址,如XSS等,不过这种情况比较特殊,因为发现漏洞是后面渗透的操作,前期收集基本上不会这么轻易就发现网站的漏洞。