当网站架设一个带有云盾防护的cdn,无疑是对我们的web渗透造成了极大的困扰,当你的web一把梭失效之后,更多时候会让你对你的渗透目标进入苦思冥想的状态。
内容分发网络(英语:Content Delivery Network或Content Distribution Network,缩写:CDN)。
内容分发网络节点会在多个地点,多个不同的网络上摆放。这些节点之间会动态的互相传输内容,对用户的下载行为最优化,并借此减少内容供应者所需要的带宽成本,改善用户的下载速度,提高系统的稳定性。
通俗一点,当某个应用服务配置了cdn时,他会在多地为该应用配置加速节点,当你请求该应用服务时,你会请求到速度最优的加速节点以达成请求。高性能的cdn可以充分减少服务器本身的带宽压力,甚至可以一定程度的提升其应用安全性。
那么当我们对这一个假设cdn的网站进行渗透与直接对网站真实ip进行渗透时,有什么区别?看似应用内容基本一致的网站在渗透过程中对你造成的影响有时却不言而喻。
就像是你有一个简单的注入,直接针对具有真实ip的网站进行渗透甚至可以sqlmap进行一把梭,但是当你未掌握目标的真实ip时对带有cdn云盾的域名进行注入,有时甚至只能进行引号的测试或者艰难的bypass绕过。
绕过cdn找真实IP的文章各论坛网站也有不少,在这里简单介绍几种常见方法,当然不是本文的重点所在,因为在大型防护目标的渗透过程中,这个过程往往漫长曲折,并不是说一个查询一个搜索就可以解决的,当然也不是你跑全网ip就一定能发现的。
事例的一个背景
理论和具体方法可能听起来简单,这里我带入情景让大家可以深入理解一下。现在有这样一个情境(纯属虚构、辅助理解):
某日猫哥突发奇想通过某云服开设了一个一键化cdn反查真实ip的网站,并绑定了xxxx.cc这样一个域名,运行一个月后发现自己面对大量请求时,服务器表示吃不消,网站用户也表示体验感欠佳,于是猫哥花重金配置了高性能cdn还带云防护服务。笔者看着猫哥的网站越发红火,心生嫉妒,于是打算对猫哥的网站进行渗透,无奈拙劣的渗透手法都被云防护挡下,于是笔者不得不去找他的真实ip。
常见方法1-dns解析记录
dns解析记录查询则是利用一个域名多次解析的ip去寻找真实ip,如上场景,猫哥的xxxx.cc在最初并未接入cdn而是正常解析其网站服务器的ip故,笔者可以通过微步等dns历史解析记录平台的查询获取其真实ip。
常见方法2-利用ssl证书
利用ssl证书查询真实ip,猫哥服务器接入的cdn运营商在给猫哥服务器提供保护服务的同时,也会与其服务器进行加密通信(ssl),这时当猫哥服务器的443端口接入域名时也会在443端口暴露其证书,我们通过证书比对便可发现网站的真实ip。
通常我们使用ssl证书查找真实ip利用censys.io引擎进行查询。
常用方法3-利用网页内容
利用网页内容寻找真实ip,主要原理还是利用公网的各种资产引擎的结果。因为猫哥的网站使用的常规的云服机房,国内的几个资产平台的引擎在对ip进行扫描采集过程中,采集到了猫哥网站的title,笔者在使用猫哥网站的title进行搜索时,成功发现了猫哥的真实ip网站。笔者通常使用fofa。
其他常见方法
常见的方法千篇一律,但是在真实的专门做了防御的情况下会遇到各种复杂情况。当然如果专门进行cdn绕过文章研究的话,还有很多方法,例如使用邮件,利用漏洞,zmap,不过我认为这些方法不够通用或者说耗力比较多,如果从细节去总结很难对cdn绕过有一个通用性方法的把握,所以其他方法就不过多展开。下面我分享一次比较综合性的cdn绕过实例。
前期信息搜集
在一次渗透过程中,在进行了常规的信息搜集之后,因为目标的功能特性,所以其网站专门做了cdn加速并且大多数的网站齐刷刷的挂上了云防护、并存在专门的运维巡检。因为运营的时间比较长久,笔者使用微步进行查询历史解析记录时,几个主要目标累计具有数百条解析记录,分散在各国的各数据中心内。在前期测试中,尝试将解析ip做成列表批量进行80/443的发起请求测试后,未发现针对性的信息。
起手
第一个目标突破口在其app的某功能模块中嵌入的新闻热点这样一个功能,并成功在其新闻站发现注入漏洞,不过因为该网站也存在云防护和cdn,最初注入点的判断仅靠单引号的闭合判断,所幸该云防护提供商比较小众,使用bypass手段绕过,成功进行注入。
一般以注入起手的渗透,一把梭的思路是注入账号,提升权限,进而想办法getshell。
因为是旁站入侵,注入之后并不能获取目标主要数据。在数据获取上停留在新闻数据。但是笔者的注入打的新闻功能,并接触不到其用户数据,全库也并无用户相关信息。因为新闻管理后台使用401验证的方法,即使你获取了后数据库也依然无法进入后台,并且数据库权限限制比较死,无法通过注入直接getshell。
所幸通过邮箱查询可以确定该新闻站点属于其目标的研发团队开发,于是获取了新闻数据库的命名前缀与连接ip,获取了目标第一个资产(嵌入的新闻小站)的真实ip。
对ip进行分析ip位属于境外某云数据中心内,除了ssh和web服务外无端口服务再开放。起手式到此,看似聊胜于无。
攻坚
对比起手式进行前后获取的信息差异,比先前多了一个研发小站的真实ip以及其数据库结构和命名规则。于是针对这两个信息进行进一步的工作开展。
在ip分析方面,针对ip的分析尽管无可利用漏洞,但是我们可以大胆拟定该云数据中心内可能存在目标其他业务网站,但因是目标网站的真实ip的解析,并未直接将域名控制到80端口根目录,即使你使用真实ip进行访问也依然需要添加相应应用目录。所以使用title进行扫描获取ip的方法就失效了。
在数据库结构和命名规则利用方面,将数据库前缀进行源码泄漏查询,成功获取了目标另外一个业务站点的部分源码,并记录泄漏源码的上传时间。因为是cdn的绕过分析,在这不多分析源码内容,不过在此时,源码的攻击点依然被云防护封锁,所以找出真实ip至关重要。
从源码中拉去与该站相关联的服务器ip信息,可以进一步发现,与我们鸡肋注入出的新闻小站所属运营商相同。于是笔者坚信之前的判断,该运营商的机房内还存在其他目标重要业务。
通过泄漏的源码把握web应用的目录。拉出该机房在目标运维习惯的区域内的ip地址范围,结合web应用目录,利用扫描脚本批量进行探测,成功获取泄漏源码目标的真实ip信息。
收尾
到此掌握了目标一个主要业务的真实ip以及一个鸡肋旁站的真实ip,不过再次信息整理时,发现我们通过扫描获取的业务站真实ip,其实早已存在我们先期的资产信息内了,先期来源便是之前的业务目标数十次历史解析ip之中的一次(因为目录关系在最初扫描测试时并没有发现)。
通过已经获取的信息中重新整理有用的信息进行时间线的拉取,以对目标运维习惯和历史进行画像。
通过画像发现,很巧的是目标几个重要业务在几年前都有过一次cdn解析的掉线,在其期限内的解析记录可以疑似判断为真实ip。之后结合目标资产的多次整理和目录、部分源码分析,进行漏洞利用后,成功获取多个目标的不同权限,达成本次渗透目的。
在大型或者高防护的目标渗透的过程中,有时重点不仅仅是漏洞的利用,对目标运维的画像也往往起着至关重要的作用。
本文作者:ChaMd5安全团队
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/129341.html
文章来源: https://www.secpulse.com/archives/129341.html
如有侵权请联系:admin#unsafe.sh