编者荐语: 利用 Nginx 配置不当,来探测内网子域名,这是一个没有关注过的探测方式,或许能在你没有头绪的时候能带来一点突破。
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字段将请求转发到内网对应的服务器上面,如下图所示
为了方便企业员工办公,运维人员同样给管理系统绑定了域名。考虑到管理系统暴露在外网会遭到攻击,所以就把解析记录设置为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服务器上配置反向代理,如下图所示:
运维人员无意中犯了一个错误,他把内网的管理系统和业务系统都用同一台nginx服务器进行反向代理,且这台服务器外网用户可以直接访问到。攻击者只需要在本地修改Host记录为203.100.103.88 oa.ceshi.com
,就可以成功访问内部的管理系统,如下图所示:
0x03 案例
子域名收集后往往会看见一些域名对应的IP是内网IP,是不能访问到的,以前我一般都会忽略这些子域名
子域名收集过后,对IP进行统计
发现多个Nginx节点服务器,这些服务器和前面一样,就是让用户访问企业部署的nginx反向代理服务器
因为有些子域名DNS直接给解析成了内网IP,也就是企业的内网资源
利用Burpsuite修改Host头,成功访问了skywalking,说明nginx服务器上配置了该域名的反向代理
通过Intruder修改HOST头爆破所有解析记录为内网IP的子域名
注意不要勾选编码
通过观察返回包的长度来判断是否爆破到内网资产