目标服务器存在CDN
CDN 即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速
度性能低下的问题。说得简单点,就是一组在不同运营商之间的对接节点上的高速缓存 服务器,把用户经常访问的静态数据资源(例如静态的html、css、js图片等文件)直
接缓存到节点服务器上,当用户再次请求时,会直接分发到在离用户近的节点服务器上 响应给用户,当用户有实际数据交互时才会从远程Web 服务器上响应,这样可以大大 提高网站的响应速度及用户体验。
所以如果渗透目标购买了CDN 服务,可以直接ping目标的域名,但得到的并
非真正的目标Web服务器,只是离我们最近的一台目标节点的CDN服务器,这就导致 了我们没法直接得到目标的真实IP段范围。
2.判断目标是否使用了CDN
通常会通过ping 目标主域,观察域名的解析情况,以此来判断其是否使用了 CDN, 如图1-10所示。
还可以利用在线网站17CE(网站测速|网站速度测试|网速测试|电信|联通|网通|全国|监控|CDN|PING|DNS 一起测试|17CE.COM) 进行全国多地区的
ping服务器操作,然后对比每个地区ping出的IP结果,查看这些IP是否一致,如果都 是一样的,极有可能不存在CDN。 如果IP大多不太一样或者规律性很强,可以尝试查 询这些IP的归属地,判断是否存在CDN。
3.绕过CDN寻找真实IP
在确认了目标确实用了CDN 以后,就需要绕过CDN 寻找目标的真实IP, 下面 介绍一些常规的方法。
●内部邮箱源。 一般的邮件系统都在内部,没有经过CDN 的解析,通过目标
网站用户注册或者RSS订阅功能,查看邮件、寻找邮件头中的邮件服务器域名IP,ping 这个邮件服务器的域名,就可以获得目标的真实IP (注意,必须是目标自己的邮件服务 器,第三方或公共邮件服务器是没有用的)。
●扫描网站测试文件,如phpinfo、test等,从而找到目标的真实IP。
●分站域名。很多网站主站的访问量会比较大,所以主站都是挂CDN 的,但
是分站可能没有挂CDN, 可以通过ping二级域名获取分站IP, 可能会出现分站和主站
不是同一个IP但在同一个C段下面的情况,从而能判断出目标的真实IP段。
●国外访问。国内的CDN 往往只对国内用户的访问加速,而国外的CDN 就不 一定了。因此,通过国外在线代理网站App Synthetic Monitor(https://
asm.ca.com/en/ping.php) 访问,可能会得到真实的IP, 如图1-11所示。
使用我们全球范围内超过90个监控工作站所组成的网络来Ping服务器或网站
www zhenai com (例如 wwwyahoo com) 开始 Ping:www.zhenai.com 检查点 结果 min,rtt最小往返时间 avg.rtt max.rtt IP 澳大利亚-珀断(auper01 确定 392.793 412.383 420.060 122.225.30.38 澳大利亚-布里斯班(aubne02) 确定 343.958 357.038 365.381 58.221.78.154 阿根廷-布宜诺斯艾利斯(arbue01) 确定 353.155 353.955 354.936 122.225.30.38 澳大利亚-悉尼(ausyd04) 确定 199.412 199560 199.736 58221.78.154 美国-亚特兰大(usat102) 确定 259.780 282.745 293.663 58221.78.154 澳大利亚-恶尼(ausyd03) 确定 271.091 281409 290.064 58.221.78.154 巴西·圣保罗(brsao04 确定 315.269 316.345 320.555 58.221.78.154 巴西-阿雷格里港(brpoa01) 确定 402.031 429.712 442.800 122.225.30.38 巴西-里约热内卢(bmo0t 确定 407.555 413.844 419.948 122.225.30.38 加章大-温哥华(cavan03) 确定 271.971 287.580 303.520 58.221.78.154 比利时-安特卫普(beanr03) 确定 196.149 197.404 200.647 58.221.78.154 保加利亚·素非亚(bgso02 确定 282.582 282.706 282.824 58.221.78.154 印度-班加罗尔(inblr01) 确定 411.069 425.891 437.425 58.221.78.154 美国·博尔德(uswbu01 确定 208.007 221.759 235.249 58.221.78.154 美国-波士顿(usbos02) 确定 232.995 233.146 233.730 58.221.78.154
图1-11 国外在线代理网站
●查询域名的解析记录。也许目标很久以前并没有用过CDN, 所以可以通过
网站NETCRAFT(Netcraft | Leader in Phishing Detection, Cybercrime Disruption and Website Takedown) 来观察域名的IP历史记录,也可以 大致分析出目标的真实IP段。
●如果目标网站有自己的App, 可以尝试利用Fiddler或Burp Suite抓取App 的 请求,从里面找到目标的真实IP。
●绕过CloudFlare CDN查找真实IP。现在很多网站都使用CloudFlare提供的
CDN 服务,在确定了目标网站使用CDN 后,可以先尝试通过在线网站Cloud
FlareWatch(crimeflare.us) 对CloudFlare客户网站进行 真实IP查询,结果如图1-12所示。
4.验证获取的IP
找到目标的真实IP以后,如何验证其真实性呢?如果是Web, 最简单的验证方
法是直接尝试用IP访问,看看响应的页面是不是和访问域名返回的一样;或者在目标段 比较大的情况下,借助类似Masscan 的工具批扫描对应IP段中所有开了80、443、
8080端口的IP, 然后逐个尝试IP访问,观察响应结果是否为目标站点。
1.7收集敏感目录文件
在渗透测试中,探测Web 目录结构和隐藏的敏感文件是一个必不可少的环
节,从中可以获取网站的后台管理页面、文件上传界面,甚至可能扫描出网站的源代 码。
针对网站目录的扫描主要有DirBuster、御剑后台扫描珍藏版、 wwwscan、
Spinder:py (轻量级快速单文件目录后台扫描)、Sensitivefilescan (轻量级快速单文 件目录后台扫描)、Weakfilescan (轻量级快速单文件目录后台扫描)等工具。本节 简单地讲解一下DirBuster。
DirBuster是OWASP开发的一款基于Java 编写的、专门用于探测Web 服务器
的目录和隐藏文件。因为是用Java编写的,所以需要在Java运行环境 (JRE) 下安装。
该工具的界面是纯图形化的,用法相对简单,使用的基本步骤如下。
在Target URL输入框中输入要扫描的网址,扫描时将请求方法设置为“Auto Switch(HEAD and GET)” 选项。
设置线程的数值,推荐在20~30之间。太大了容易引起系统死机。
选择扫描类型,如果使用个人字典扫描,则选择“List based brute
force” 选项。
单击“Browse” 选择字典,可以选择工具自带的字典,也可以选择自己的字 W 典 。
在Select starting options中选择 “URL Fuzz” 方式进行扫描。设置fuzzing
时需要注意,在URL to fuzz里输入“/{dir}”。这里的{dir}是一个变量,用来代表字典
中的每一行
如果你扫描的目标是http://www.xxx.com/admin/, 那么就要在URL to fuzz
里填写“/admin/{dir}”, 意思是在“{dir}” 的前后可以随意拼接你想要的目录或者后 缀,例如输入“:/admin/{dir}.php” 就表示扫描admin 目录下的所有php 文件。
除此之外,读者还可以利用很多在线工具站,效果也相当不错,这里推荐一 个:WebScan(同IP网站查询,C段查询,IP反查域名,在线C段,旁站工具 - WebScan)。