标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-2670] 作者: ecawen 发表于: [2020-05-19]
本文共 [482] 位读者顶过
注:总共两篇文章,第一篇文章来自信安,第二篇来自 WhITECat。我这里只是总结一下,方便自己查看,不用每次都去翻好几篇文章,如果两位原作不允许,随时删除。[出自:jiwo.org]
第一篇:绕过 CDN 寻找真实 IP 地址的各种姿势 个人觉得,绕过 CDN 去寻找主机的真实 ip,更容易能寻找到企业网络的薄弱地带,所以 Bypass CDN 也就变成了至关重要的一点。 0x01 常见 Bypass 方法 域名搜集 由于成本问题,可能某些厂商并不会将所有的子域名都部署 CDN,所以如果我们能尽量的搜集子域名,或许可以找到一些没有部署 CDN 的子域名,拿到某些服务器的真实 ip/ 段 然后关于子域名搜集的方式很多,就不一一介绍了,我平时主要是从这几个方面搜集子域名: 1、SSL 证书 2、爆破 3、Google Hacking 4、同邮箱注册人 4、DNS 域传送 5、页面 JS 搜集 6、网络空间引擎 工具也有很多厉害的,平时我一般使用 OneForALL + ESD + JSfinder 来进行搜集,(ESD 可以加载 layer 的字典,很好用) 查询 DNS 历史解析记录 常常服务器在解析到 CDN 服务前,会解析真实 ip,如果历史未删除,就可能找到 常用网站: http://viewdns.info/ https://x.threatbook.cn/ http://www.17ce.com/ https://dnsdb.io/zh-cn/ https://securitytrails.com/ http://www.ip138.com/ https://github.com/vincentcox/bypass-firewalls-by-DNS-history MX 记录(邮件探测) 这个很简单,如果目标系统有发件功能,通常在注册用户/找回密码等地方,通过注册确认、验证码等系统发来的邮件进行查看邮件原文即可查看发件IP地址。 SSL 证书探测 我们可以利用空间引擎进行 SSL 证书探测 443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.baidu.com 再放一个搜集证书的网站: https://crt.sh 一个小脚本,可以快速搜集证书 # -*- coding: utf-8 -*- # @Time : 2019-10-08 22:51 # @Author : Patrilic # @FileName: SSL_subdomain.py # @Software: PyCharm import requests import re TIME_OUT = 60 def get_SSL(domain): domains = [] url = 'https://crt.sh/?q=%25.{}'.format(domain) response = requests.get(url,timeout=TIME_OUT) # print(response.text) ssl = re.findall("<TD>(.*?).{}</TD>".format(domain),response.text) for i in ssl: i += '.' + domain domains.append(i) print(domains) if __name__ == '__main__': get_SSL("baidu.com") 还有一种方式,就是搜集 SSL 证书 Hash,然后遍历 ip 去查询证书 hash,如果匹配到相同的,证明这个 ip 就是那个 域名同根证书的服务器真实 ip 简单来说,就是遍历 0.0.0.0/0:443,通过 ip 连接 https 时,会显示证书 当然,也可以用 censys 等引擎 偏远地区服务器访问 在偏远地区的服务器访问时,可能不会访问到 CDN 节点,而是直接访问服务器真实 ip 所以我们可以搞一个偏远地区的代理池,来访问目标域名,有概率就可以拿到真实 ip 也就是平常说的多地 Ping favicon_hash 匹配 利用 shodan 的 http.favicon.hash 语法,来匹配 icon 的 hash 值, 直接推: https://github.com/Ridter/get_ip_by_ico/blob/master/get_ip_by_ico.py CloudFlare Bypass 免费版的 cf,我们可以通过 DDOS 来消耗对方的流量,只需要把流量打光,就会回滚到原始 ip 还有利用 cloudflare 的改 host 返回示例: https://blog.detectify.com/2019/07/31/bypassing-cloudflare-waf-with-the-origin-server-ip-address/ 里面给了详细的介绍,我们可以通过 HOST 来判断是否是真实 ip, 具体看文章即可 奇特的 ping 比如可能有些地方,使用的 CDN 都是以 www.xxx.edu.cn,例如 www.cuit.edu.cn,www.jwc.cuit.edu.cn 可能去掉前缀的 www,就可能绕过 CDN 了,猜测应该是类似于 Apache VirtualHost, 可参考 https://httpd.apache.org/docs/2.4/en/vhosts/examples.html 例如对WWW域名和根域名(不带WWW)分别进行PING,结果有可能不同。 其实是 ping 了 www.xxx.xxx.cn 和 xxx.xxx.cn,这样就可以绕过 CDN 的检测。 利用老域名 在换新域名时,常常将 CDN 部署到新的域名上,而老域名由于没过期,可能未使用 CDN,然后就可以直接获取服务器真实 ip。 例如 patrilic.top > patrilic.com 域名更新时,可能老域名同时解析到真实服务器,但是没有部署 CDN 这个可以通过搜集域名备案的邮箱去反查,可能会有意外收获 暴力匹配 找到目标服务器 IP 段后,可以直接进行暴力匹配 ,使用 masscan 扫描 HTTP banner,然后匹配到目标域名的相同 banner 最后是 DDos/ 社工 CDN 平台等 0x02 其他方法 phpinfo.php 这类探针 ssrf,文件上传等漏洞 略.. 第二篇文章:“最后”的Bypass CDN 查找网站真实IP 注:其实与第一篇有重复的的地方,请自行斟酌查看。 0x00起源~ 查找网站真实IP过程中我们会经常用到一些Bypass CDN的手法,而Bypass CDN的常见姿势,之前看到过“信安之路”的某位大佬总结的挺好的,于是和小伙伴们又专门的去学习了一波,然后决定将学习心得归结于文字,以便于记录和复习。 0x01判断是否存在CDN 查找网站真实IP的第一步是先查看当前站点是否部署了CDN,而较为简单快捷的方式就是通过本地Nslookup查询目标站点的DNS记录,若存在CDN,则返回CDN服务器的地址,若不存在CDN,则返回的单个IP地址,我们认为它就是目标站点的真实IP。 除了使用nslookup,还可以通过第三方站点的DNS解析记录或者多地ping的方式去判断是否存在CDN。判断CDN只是个开始,不加赘述。。。 小伙伴-胡大毛的www法 以前用CDN的时候有个习惯,只让WWW域名使用cdn,秃域名不适用,为的是在维护网站时更方便,不用等cdn缓存。所以试着把目标网站的www去掉,ping一下看ip是不是变了,您别说,这个方法还真是屡用不爽。 小伙伴-刘正经的二级域名法 目标站点一般不会把所有的二级域名放cdn上,比如试验性质的二级域名。Google site一下目标的域名,看有没有二级域名出现,挨个排查,确定了没使用cdn的二级域名后,本地将目标域名绑定到同ip,能访问就说明目标站与此二级域名在同一个服务器上。不在同一服务器也可能在同C段,扫描C段所有开80端口的ip,挨个试。如果google搜不到也不代表没有,我们拿常见的二级域名构造一个字典,猜出它的二级域名。比如mail、cache、img。 查询子域名工具:layer子域名挖掘机 subdomin 扫描c段好用工具:zmap(https://www.cnblogs.com/China-Waukee/p/9596790.html) 还是“刘正经”的nslookup法 查询域名的NS记录,其域名记录中的MX记录,TXT记录等很有可能指向的是真实ip或同C段服务器。 注:域名解析--什么是A记录、别名记录(CNAME)、MX记录、TXT记录、NS记录(https://www.22.cn/help_34.html) 小伙伴-胡小毛的工具法 这个工具http://toolbar.netcraft.com据说会记录网站的ip变化情况,通过目标网站的历史ip地址就可以找到真实ip。没亲自测试,想必不是所有的网站都能查到。 例:http://toolbar.netcraft.com/site_report?url=http://www.waitalone.cn 小伙伴-狄弟弟的目标敏感文件泄露 也许目标服务器上存在一些泄露的敏感文件中会告诉我们网站的IP,另外就是如phpinfo之类的探针。 小伙伴-匿名H的墙外法 很多国内的CDN没有节点对国外服务,国外的请求会直接指向真实ip。有人说用国外NS和或开国外VPN,但这样成功率太低了。我的方法是用国外的多节点ping工具,例如just-ping,全世界几十个节点ping目标域名,很有可能找到真实ip。 域名:http://www.just-ping.com/ 小伙伴-不靠谱的从CDN入手法 无论是用社工还是其他手段,反正是拿到了目标网站管理员在CDN的账号了,此时就可以自己在CDN的配置中找到网站的真实IP了。此法着实适用于“小伙伴-不靠谱”使用。 还是“不靠谱”的钓鱼法 不管网站怎么CDN,其向用户发的邮件一般都是从自己服务器发出来的。以wordpress为例,假如我要报复一个来我这捣乱的坏蛋,坏蛋使用了 CDN,我要找到它的真实ip以便DDOS他。我的方法是在他博客上留言,再自己换个名回复自己,然后收到他的留言提醒邮件,就能知道发邮件的服务器ip 了。如果他没开提醒功能,那就试试他是不是开启了注册功能,wordpress默认是用邮件方式发密码的。 0x03“最后”的总结 小伙伴“最后”来了一波总结: 百因必有果,你的报应就是我~o~ 万剑归宗不是火,万法合一才是果~o~ 小伙伴们总结了一波又一波方法,“最后”表示不太行,方法很多,每一个看起来都很实用,但实战告诉我们,只有把这些方法都灵活贯通的结合使用才能达到最大的效果。“最后”以胡大毛的www法结合查找网站历史DNS解析记录的方法查找某个站点的真实IP的举例如下: 某站点www.xxx.com的当前解析显示有多个IP,但历史解析仅有一个IP,可以猜测该IP可能是真实IP。 “最后”认为除了需要将方法结合使用之外,辅助工具也是不可缺少的,于是又整理了一波常用的工具和查询平台如下: 1、查询SSL证书或历史DNS记录 https://censys.io/certificates/ ###通过SSL证书查询真实IP(推荐) https://site.ip138.com/ ###DNS、IP等查询 http://ping.chinaz.com/ ###多地ping http://ping.aizhan.com/ ###多地ping https://myssl.com/dns_check.html#dns_check ###DNS查询 https://securitytrails.com/ ### DNS查询 https://dnsdb.io/zh-cn/ ###DNS查询 https://x.threatbook.cn/ ###微步在线 http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询 http://viewdns.info/ ###DNS、IP等查询 https://tools.ipip.net/cdn.php ###CDN查 询IP 2、相关工具 子域名查询工具:layer子域名挖掘机,dirbrute,Oneforal(下载链接:https://github.com/shmilylty/OneForAll,推荐) 站点banner信息获取:Zmap,masscan等。 参考链接 https://github.com/shmilylty/OneForAll https://github.com/FeeiCN/ESD https://github.com/Threezh1/JSFinder https://github.com/AI0TSec/blog/issues/8 https://www.4hou.com/tools/8251.html https://www.freebuf.com/sectool/112583.html |