编者荐语: 利用 Nginx 配置不当,来探测内网子域名,这是一个没有关注过的探测方式,或许能在你没有头绪的时候能带来一点突破。

转载自:https://www.yuque.com/broken5/blog/qzen0b

0x01 前言

有一些企业通常会在外网部署一些Nginx服务器,然后在Nginx中配置域名绑定。用户访问对应的域名,Nginx通过反向代理将对应的内网资源反馈给互联网上的用户,这样企业可以把服务器部署在自己的内网中,又可以让用户访问到一举两得。但是如果配置不当的话,一些不应该让用户访问到的资源,用户通过特殊的手段也可以访问到。

注:IP如有雷同,纯属巧合

0x02 分析

现有一个A公司,他的主域名为ceshi.com

公司主要业务系统如下表所示

系统名称 IP
门户网站 10.1.20.1
商城 10.1.20.2
论坛 10.1.20.3
商城管理系统 10.1.20.102
论坛管理系统 10.1.20.103
OA系统 10.1.20.201
财务系统 10.1.20.202
nginx服务器 10.1.20.254

门户网站、商城、论坛相关业务系统需要发布到外网供用户访问,所以运维人员就给nginx服务器添加了一个公网IP(203.100.103.88),给业务系统绑定了子域名

系统名称 子域名 解析地址
门户网站 www.ceshi.com 203.100.103.88
商城 shop.ceshi.com 203.100.103.88
论坛 bbs.ceshi.com 203.100.103.88

通过在nginx服务器上配置反向代理,用户只要在浏览器上输入对应的域名,nginx就会匹配用户请求头中的HOST字段将请求转发到内网对应的服务器上面,如下图所示

img

为了方便企业员工办公,运维人员同样给管理系统绑定了域名。考虑到管理系统暴露在外网会遭到攻击,所以就把解析记录设置为10.1.20.254(nginx服务器)

系统名称 子域名 解析地址
商城管理系统 shopadmin.ceshi.com 10.1.20.254
论坛管理系统 bbsadmin.ceshi.com 10.1.20.254
OA系统 oa.ceshi.com 10.1.20.254
财务系统 cw.ceshi.com 10.1.20.254

同样在nginx服务器上配置反向代理,如下图所示:

img

运维人员无意中犯了一个错误,他把内网的管理系统和业务系统都用同一台nginx服务器进行反向代理,且这台服务器外网用户可以直接访问到。攻击者只需要在本地修改Host记录为203.100.103.88 oa.ceshi.com,就可以成功访问内部的管理系统,如下图所示:

img

0x03 案例

子域名收集后往往会看见一些域名对应的IP是内网IP,是不能访问到的,以前我一般都会忽略这些子域名

img

子域名收集过后,对IP进行统计

img

发现多个Nginx节点服务器,这些服务器和前面一样,就是让用户访问企业部署的nginx反向代理服务器

img

因为有些子域名DNS直接给解析成了内网IP,也就是企业的内网资源

img

利用Burpsuite修改Host头,成功访问了skywalking,说明nginx服务器上配置了该域名的反向代理

img

通过Intruder修改HOST头爆破所有解析记录为内网IP的子域名

imgimg

注意不要勾选编码

img

通过观察返回包的长度来判断是否爆破到内网资产

img