绕过CDN查询真实IP

J1angL1 393 0

判断是否存在CDN

为何要绕过CDN

许多网站目前均使用了CDN服务,以此来隐藏自身服务器的真实IP,并加速网站静态文件的访问,而且你请求网站服务时,cdn服务会根据你所在的地区,选择合适的线路给予你访问,由此达网站加速的效果,,并提供WAF服务。在我们进行黑盒测试时,往往会成为拦路石,因此我们不得不掌握绕过CDN寻找真实IP的技术。

如何判断是否为真实IP

1.将所获取IP和域名进行hosts绑定,然后使用curl指令,看是否能够获取到网站信息,如果可以,那么大概率为真实IP。
2.使用一些端口判断工具,查看IP端口开放情况,并使用浏览器进行访问,如果提示需要重试,而不是返回403等提示,也有可能为真实IP。

获得真实IP后如何进行下一步

(1)获取源站ip后,进行ip反查,获取旁站继续渗透/跳过cdn对攻击的拦截。
(2)进行hosts绑定,之后用户可以直接访问源站跳过cdn。

判断是否存在CDN

1.ping域名

一般来说,我们直接对一个网站的域名进行ping指令的话,会反映出这个网站所在的IP和ping向的域名,而这个域名便是我们判断CDN是否存在的根据。

绕过CDN查询真实IP

绕过CDN查询真实IP

2.使用超级ping(多地ping)

因为CDN是根据地区不同去分配不同的IP,那么使用多地ping的时候,会显示其是否存在不同IP,若存在,便证明网站存在CDN,若只有一个IP,那么该IP可能为该网站服务器的真实IP。此时还需要后续进行验证。

多地ping网站:

http://ping.chinaz.com/

http://ping.aizhan.com/

https://www.17ce.com/

我们使用站长工具和17ce的多地ping进行举例:
绕过CDN查询真实IP

绕过CDN查询真实IP

查找真实IP的方法集合

在我们查找到真实IP后,我们可以进行旁站检测,找其他站点进行突破,也可以直接绑定hosts绕过CDN进行访问,从而绕过WAF针对攻击语句的拦截。

1.查找DNS历史绑定记录

查询网站DNS解析,有可能会存在未绑定CDN之前的记录。

查询网站:

https://dnsdb.io/zh-cn/ ###DNS查询

https://x.threatbook.cn/ ###微步在线

http://viewdns.info/ ###DNS、IP等查询

https://tools.ipip.net/cdn.php ###CDN查询IP

https://sitereport.netcraft.com/?url=域名

https://dnsdumpster.com/

下图为对某网站的DNS解析,其结果可能为真实IP,后续进行判断。绕过CDN查询真实IP

2.子域名/顶级域名解析

有的时候因为配置不当或者其他原因,网站的子域名或者顶级域名未配置CDN,此时我们可以通过对其子域名或者顶级域名的解析指向,有可能就会指向目标的同一个IP上,当然,我们也可以使用工具对其子域名进行穷举,然后批量解析。

在线子域名查询网站:

https://securitytrails.com/list/apex_domain ###(因为网站为国外网站,反应时间可能会比较长)

绕过CDN查询真实IP
也可以用一下网站进行查询:

http://tool.chinaz.com/subdomain

https://phpinfo.me/domain/

找到子域名继续确认子域名没有cdn的情况下批量进行域名解析查询,有cdn的情况继续查询历史。

域名批量解析网站:

http://tools.bugscaner.com/domain2ip.html

3.国外DNS获取真实IP

因为部分CDN只针对国内IP的访问,而并没有限制国外IP,那么当我们使用国外IP访问域名时,便可以获取真实IP。
DNS解析网址(选取部分使用即可):

http://www.ab173.com/dns/dns_world.php ###(为全世界DNS地址)

https://dnsdumpster.com/

https://dnshistory.org/

http://whoisrequest.com/history/

https://completedns.com/dns-history/

http://dnstrails.com/

https://who.is/domain-history/

http://research.domaintools.com/research/hosting-history/

http://site.ip138.com/

http://viewdns.info/iphistory/

https://dnsdb.io/zh-cn/

https://www.virustotal.com/

https://x.threatbook.cn/

http://viewdns.info/

http://www.17ce.com/

http://toolbar.netcraft.com/site_report?url=

https://securitytrails.com/

https://tools.ipip.net/cdn.php

(自己尝试即可,我就不截图了)

4.通过空间测绘搜索ico图标寻找真实IP

我们可以通过url/favicon.ico获取图标,然后在网络测绘(fofa(暂不可用,图标转hash搜索),zoomeye)中查询(ps:我试了几次,目前好像哪怕转成hash值fofa也不能搜索出结果,也不知道什么时候能完全恢复)。
当然,有些网站会将favicon.ico文件进行隐藏,我们可以通过网络加载里面寻找ico图标(F12→网络→favicon.con[有可能是其他名字,自己判断一下]),然后保存下ico图标,并在zoomeye或者其他网络测绘网站中查询。
绕过CDN查询真实IP
绕过CDN查询真实IP
查询到之后,可以进行后续测试确定是否为真实IP。

5.网络资产测绘中心查找真实IP

常用的网络资产测绘网站有:

fofa.info

https://quake.360.cn

censys.io

https://www.zoomeye.org

https://www.shodan.io/

https://hunter.qianxin.com/

每个测绘网站都有其相应的语法,不过大多都是domain:"xxx"这种,直接对其域名进行搜索即可,如果为302,一般来说会是CDN,当然,查询的过程中也可能会找到网站之前废弃的IP,可以试试有没有利用价值。

6.利用SSL证书查询真实IP

这个是和前面网络资产测绘网站结合使用,因为我们使用https协议的时候,证书颁发机构(CA)必须将他们发布的每个SSL/TLS证书发布到公共日志中,SSL/TLS证书通常包含域名、子域名和电子邮件地址。因此SSL/TLS证书可以成为我们信息收集的切入点。
获取网站SSL证书的HASH再结合Censys,利用Censys搜索网站的SSL证书及HASH,在 https://crt.sh 上查找目标网站SSL证书的HASH,再用Censys搜索该HASH即可得到真实IP地址。
绕过CDN查询真实IP
绕过CDN查询真实IP
绕过CDN查询真实IP

找到其hash值
绕过CDN查询真实IP

转成IPv4搜索

绕过CDN查询真实IP

找到IP后验证是否为真实IP(有几张没有打码,因为现在censys好像不支持直接转ipv4搜索,兄弟们可以试一下自己的电脑行不行,当然,也可以将搜索到的hash放在其他资产测绘网站进行搜索)

7.邮箱获取真实IP

网站在发信的时候,会附带真实的IP地址,进入邮箱,选择邮件,查看源文件头部信息,选择from。当然,这个也并非绝对真实,是否真实还需要看邮箱发送是否与网站同一个IP地址。
绕过CDN查询真实IP

8.通过网站的敏感文件获取真实IP

文件探针、phpinfo、网站源代码、信息泄露、GitHub信息泄露、js文件。

绕过CDN查询真实IP

其中,phpinfo的 server[server_ADDR] 可能为其真实ip

9.F5 LTM解码法(该方法多用于寻找内网IP)

当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,
例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小
节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,
以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就
是最后的真实内网ip。
Set-Cookie: BIGipServerpool-cas01=3255675072.20480.0000;

3255675072 转十六进制 c20da8c0 从右向左取 c0a80dc2 转10进制 192 168 13 194

10.APP和微信小程序获取真实IP

这时候我们需要用到burpsuite和模拟器,burp suite进行代理设置后,将其证书放入模拟器的根目录例(如同配置burpsuite手机代理一样,网上方法挺多的直接查找就行)。设置完成后,点开app或者小程序,burp suite进行拦截监控,读取响应包,其中便有app或者小程序的真实IP(虚拟机重载了一次,还没来得及配新环境。就先不进行截图展示了,可以自己下去尝试一下)

11.配置不当导致的真实IP获取

在配置CDN的时候,需要指定域名、端口等信息,因此,有时候可能有一些小小的配置细节出错就容易导致CDN被绕过。
案例1:为了方便用户访问,我们常常将www.test.com 和 test.com 解析到同一个站点,而CDN只配置了 www.test.com ,通过访问 test.com ,就可以绕过 CDN 了。
案例2:站点同时支持http和https访问,CDN只配置 https协议,那么这时访问http就可以轻易绕过。

12.banner获取查找真实IP

获取目标站点的banner,在全网搜索引擎搜索,也可以使用AQUATONE,在Shodan上搜索相同指纹站点。
可以通过互联网络信息中心的IP数据,筛选目标地区IP,遍历Web服务的banner用来对比CDN站的banner,可以确定源IP。
欧洲:
http://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest

北美:
https://ftp.arin.net/pub/stats/arin/delegated-arin-extended-latest

亚洲:
https://ftp.apnic.net/public/apnic/stats/apnic/delegated-apnic-latest

非洲:
https://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest

拉美:
https://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-extended-latest

获取CN的IP
http://www.ipdeny.com/ipblocks/data/countries/cn.zone

找到目标服务器 IP 段后,可以直接进行暴力匹配 ,使用zmap、masscan 扫描 HTTP banner,然后匹配到目标域名的相同 banner。
推荐两个用得到的工具:

https://github.com/zmap/zmap

https://github.com/robertdavidgraham/masscan

13.流量攻击

发包机可以一下子发送很大的流量。这个方法是很笨,但是在特定的目标下渗透,建议采用。
cdn除了能隐藏ip,可能还考虑到分配流量, 不设防的cdn量大就会挂,高防cdn 要大流量访问。经受不住大流量冲击的时候可能会显示真实ip。站长->业务不正常->cdn不使用->更换服务器。

14.被动获取

让服务器或网站主动连接我们的服务器,从而获取服务器的真实IP。
例如如果网站有编辑器可以填写远程url图片,即可获取真实IP。
如果存在ssrf漏洞 或者xss让服务器主动连接我们的服务器 均可获取真实IP。

15.扫描全网获取

使用工具对全网IP进行扫描,根据返回数据判断是否为真实IP。(倒也没那么疯狂,可以选择那些相似的,再利用工具对其进行扫描,与域名相匹配,并根据返回的数据去进行判断以及后续的验证)

https://github.com/superfish9/hackcdn

https://github.com/boy-hack/w8fuckcdn

16.长期关注

在长期渗透的时候,设置程序每天访问网站,可能有新的发现。每天零点,或者业务需求增大,它有可能会换ip,换服务器的。

总结

常用的方法基本上就是这些,哪位师傅如果有什么更好的更实用的绕过查找方法,也可以交流一下,互相学习。

发表评论 取消回复
表情 图片 链接 代码

分享