判断ip是否为网站真实ip
Nslookup:
Win下使用nslookup命令进行查询,若返回域名解析结果为多个ip,多半使用了CDN,是不真实的ip:
多地ping查询:
使用不同区域ping,查看ping的ip结果是否唯一。若不唯一,则目标网站可能存在CDN。
https://asm.ca.com/en/ping.php/ http://ping.chinaz.com/ https://ping.aizhan.com/
使用工具直接查询:
?
1 2 |
|
绕过CDN查找真实ip
方法整理如下:
子域名入手:
某些企业业务线众多,有些站点的主站使用了CDN,或者部分域名使用了CDN,某些子域名可能未使用。查询子域名的方法就很多了:subDomainsBrute、Sublist3r、Google hack等。
还有某些网站可以进行查询。例如:
?
1 |
|
利用网站漏洞:
如果目标站点存在漏洞,这就没办法避免了。例如phpinfo敏感信息泄露、Apache status和Jboss status敏感信息泄露、网页源代码泄露、svn信息泄露信、github信息泄露等。
若存在web漏洞,服务器主动与我们发起请求连接,我们也能获取目标站点真实ip。例如xss、ssrf、命令执行反弹shell等。
历史DNS记录:
查询ip与域名绑定历史记录,可能会发现使用CDN之前的目标ip。查询网站有:
https://dnsdb.io/zh-cn/ https://x.threatbook.cn/ http://toolbar.netcraft.com/site_report?url= http://viewdns.info/ http://www.17ce.com/ https://community.riskiq.com/ http://www.crimeflare.com/cfssl.html
CDN本身入手:
若从CDN本身入手,比如利用社工等,得到控制面板的账号密码,那真实ip就很轻易能获取到了。
Mx记录或邮件:
很多站点都有发送邮件sendmail的功能,如Rss邮件订阅等。而且一般的邮件系统很多都是在内部,没有经过CDN的解析。可在邮件源码里面就会包含服务器的真实 IP。
国外请求:
通过国外得一些冷门得DNS或IP去请求目标,很多时候国内得CDN对国外得覆盖面并不是很广,故此可以利用此特点进行探测。 通过国外代理访问就能查看真实IP了,或者通过国外的DNS解析,可能就能得到真实的IP查询网站:
?
1 |
|
扫描探测:
通过信息收集,缩小扫描范围,确定一个相对小的IP和端口范围(中国?AS号?B段?等)
通过http指纹特征和keyword等做综合判断。可使用工具如下:
?
1 2 |
|
zgrab 是基于zmap无状态扫描的应用层扫描器,可以自定义数据包,以及ip、domain之间的关联。可用于快速指纹识别爆破等场景。
Zmap大法:
扫描全网,只要44分钟
网络空间引擎搜索法:
zoomeye、fofa、shodan
通过这些公开的安全搜索引擎爬取得历史快照,主要得一些特征总结如下:
特有的http头部(如server类型、版本、cookie等信息)、
特定keyword(如title、css、js、url等)、
特定的IP段搜索(如fofa支持C段搜索),
有些时候爬取的时候不一定含有上面那些特征,但是我们仍然需要仔细排查。
查询Https证书:
此方法来自于去年CplusHua表哥在Freebuf公开课《HTTP盲攻击的几种思路》中分享的:
查询网站:
https://censys.io/
这个网址会将互联网所有的ip进行扫面和连接,以及证书探测。若目标站点有https证书,并且默认虚拟主机配了https证书,我们就可以找所有目标站点是该https证书的站点。
443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.xxx.com
F5 LTM 负载均衡解码获取真实内网ip:
某企业先在内网出口使用F5做ISP的链路负载均衡,然后再用CDN加速。这样的话,客户端还是可以看到F5埋的那个cookie。而且经过CDN,埋的cookie不会被修改或者删除,所以客户端还是可以看到。
通过解码就可以得到目标服务器真实内网ip。