在红蓝对抗或者渗透测试中,往往我们只是知道网站的一个域名。那么,我们如何根据域名查到网站服务器的真实IP地址呢?这里就要分几种情况了。
一:网站用的是云服务器,只有一个IP地址,并且是真实网站ip地址
二:网站采用了Nginx代理服务器,我们并不能知道网站服务器的真实ip地址
当我们访问一个ip,发现是如下页面,那么这台服务器很有可能就是nginx代理服务器。这时,我们可以访问该服务器开放的其他端口,看是否能有正常页面。一般是将其他端口的流量转发给了真正的web服务器
其真正的网络拓扑图是这样子的:
这里网站通过采用Nginx代理服务器来转发流量,可以很好的隐蔽真实的网站服务器。我们通过ping只可以得到nginx服务器的ip地址,但是这并不是真正网站服务器的ip地址,真正服务器隐藏在nginx代理服务器之后。并且网站也可以通过Nginx代理服务器来基于不同端口转发和负载均衡。
基于监听不同端口的转发
进行负载均衡
nginx服务器通过监听端口,将请求转发给后面多台真实的服务器,并且进行负载均衡。
本地转发
这时,Nginx服务器就是web服务器。nginx根据请求的页面的不同后缀(.php / .jsp / 等等),来转发给不同的端口进行解析。
三:网站通过NAT映射,我们并不能知道网站服务器真实的ip地址
这种情况大多数是属于稍微大型的企业用户,拥有自己的机房。位于内网DMZ区的服务器通过NAT映射到公网地址。这时,我们通过ping得到的ip地址是企业位于公网处的ip地址,并不是真实的ip地址。
更大型的企业,出口处有几个运营商,提供热备份和负载均衡。这时,我们通过域名查询ip地址可以找到3个ip地址。但是这3个ip地址都是出口处运营商的ip地址,并不是真正的web服务器的ip地址,真正的web服务器在内网中。
四:网站通过CDN进行解析
这种情况属于有钱的企业,因为CDN的费用并不便宜。网站通过CDN解析域名,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。这时,我们通过网站域名解析得到的ip地址都是CDN的地址,并不是web服务器真实的ip地址。
相关文章:Linux中Nginx服务器的部署和配置
绕过CDN查找网站真实ip