在渗透测试时,我们经常会遇到目标处于CloudFlare或其他cdn服务之后,使我们无法发现原始服务器IP,难以使用某些渗透手段。但是,这类网站一旦出现设置不当,就有可能暴露真实IP。而一旦我们获得了真实IP,自然就可以对这些网站进行暴力破解,DDoS攻击等等。注意,隐藏Tor后的网站也有这种风险。以下将介绍几种发掘网站真实IP的方法,希望大家能针对性地使用。
1.1 使用给定的域名
假设你有一个网站,域名为xyz123boot.com,服务器真实IP是136.23.63.44。CloudFlare为网站提供DDoS保护,Web防火墙和其他一些安全服务。你的Web服务器支持SSL并有证书,因此CloudFlare与你的服务器之间的通信就像你的网站用户和CloudFlare之间的通信一样加密(即SSL不够灵活)。乍一看,好像没什么问题。
但是,此时,真实IP的443端口(https://136.23.63.44:443)的证书会直接暴露在互联网上。若对全球IP的443端口进行扫描,就能在某个IP的443端口上获取涉及 xyz123boot.com 的有效证书,而这个IP就可以说是服务器的真实IP。
很多网络搜索引擎可以收录证书信息。你唯一需要做的就是将网站域名的关键词进行搜索。
例如,对于Censys网络搜索引擎,xyz123boot.com的证书的搜索语句如下:
只显示有效的证书:
在Censys上对这些搜索条件进行布尔组合即可。
最后搜索语句:
Censys将显示符合上述标准的所有证书,这些证书是他们在全球扫描中找到的。
逐个单击搜索结果,你可以在详情页面右侧的“浏览”中发现多个工具,然后我们点击What's using this certificate? > IPv4 Hosts。
这时你可以看到使用这个证书的所有IPv4主机列表。其中某个就可能是真实IP。
最后,你可以直接导航到某个IP的443端口进行验证,看它是否重定向到xyz123boot.com?或者是否会直接显示网站?
1.2 通过给定的证书
你是联邦调查局,想关闭一个在暗网中的cheesecp5vaogohv.onion域名的色情网站。那么你就必须要原始IP,这样才能找到主机,找到运营商,最后找到服务器所有者。
此时,利用网络搜索引擎,我们可以查找使用相同SSL证书的IPv4主机,只需将其SHA1指纹(没有冒号)粘贴到Censys IPv4主机搜索中即可。不是所有服务器的SSL都配置严谨。
也许你的网站在使用CloudFlare之前曾短暂将真实IP暴露于公网。此时,如果Censys的DNS记录有你的网站的A记录,就会暴露你的网站的真实IP。
有一个专门用于查询域名记录的网站SecurityTrails。只需在搜索字段中输入网站域名,然后按Enter键即可。你就能在“历史数据”中找到惊喜。
除了以前的A记录,即使是当前的DNS记录也可能泄漏真实IP。例如,MX记录,即邮件交换记录。如果邮件服务器和目标网站在同一个服务器上,则真实IP可能存在于MX记录中。
通过网络搜索引擎,你甚至可以通过比较HTTP头来查找原始IP。
特别是当目标网站有一个非常独特的服务器请求头以及网站所使用的各种软件及其版本时,都能大大减轻查询的难度。
而且正如1.1节中所述,您可以在Censys上组合查询参数进行搜索。再配合一些其他信息,就能快速定位到网站。
假设你的服务器的请求头组成大致和1500个其他Web服务器的请求头相同,你的网站还使用一个新的PHP框架,这也是很独特的HTTP标头(例如:X-Generated-Via:XYZ fr amework),目前约有400名网站使用该框架。就这样不停比对,运气好的情况下,很快就能找到真实IP。
例如,Censys上涉及服务器请求头的搜索参数是
查找使用了CloudFlare服务的网站的语句如下:
网站本身的很多功能可能并不完善,包括完整网站所使用的开源软件包,自编写的代码等都有可能存在某些“轻微”的漏洞,例如,报错信息不规范等。而这些信息就很有可能缩小我们的搜索范围。
此外,即使是正常的网站服务,也有可能为我们所用。例如你需要在目标网站上设置一个头像,而且是通过提供图片URL的方式(不是上传图片)。那么目标网站可能主动从其他网站下载图片,如果你控制着放置图片的网站。那么目标的真实IP就在日志中。
最重要的就是多多尝试,网站管理员可能会犯很多错误。
在某些情况下,直接访问目标服务器IP也会返回网站内容。那么,问题就简单了,网络搜索引擎能帮我们大忙。
在网站的源代码中,很可能存在独特的代码片段,以及很多第三方服务的痕迹(例如Google Analytics,reCAPTCHA)。
例如,HackTheBox网站的Google Analytics Tracking代码如下:
通过使用80.http.get.body:参数,我们就可以在Censys的数据中搜索出对应的网站。
当然,普通的搜索字段是有局限性。您可以在Censys上请求研究访问权限,这样就可以通过Google BigQuery进行更强大的查询。
而在另一款网络搜索产品Shodan中,我们也可以根据http.html搜索参数进行相同的查询。
示例如下:
要找到隐藏在Tor或CloudFlare后面的原始IP需要一定的创造力。
在这里推荐x0rz所写的Securing a Web Hidden Service,里面介绍了不少安全隐藏自己网站的方法,同时也说明一旦网站管理者出现疏忽,就会出大事。
当然,目前CloudFlare也有很多措施来防御。例如,建立CloudFlare和服务器之间的单独隧道。这意味着管理员不必在公网公开网站。还有使用白名单机制,禁止其他IP连接上网站。
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://nosec.org/home/detail/2405.html
原文:https://www.secjuice.com/finding-real-ips-of-origin-servers-behind-cloudflare-or-tor/
白帽汇从事信息安全,专注于安全大数据、企业威胁情报。
公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。
为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。