0x01 hosts碰撞
在某些时候我们用IP访问时,目标资产响应多为: 401、403、404、500,但是用域名请求却能返回正常的业务系统,这是因为大多数系统都会需要绑定域名才能访问,而且这种情况默认是在内网访问。
举个例子就懂了,网站对外主域名为www.test.com,而内网中存在多个业务系统,皆有绑定内网域名,比如manage.test.com,这是内网自定义的域名,无法在公网DNS解析到,即不是备案过的子域名,无法直接访问到,因为公网无法解析其IP。
系统管理员其实是这样配置的,利用apache或nginx进行配置配置,使无法直接通过IP去访问系统,因为公网DNS无法解析自定义子域名,因此访问系统有两个条件,即知道系统的内网域名和对应的IP,利用本地DNS解析即可访问。
0x02 DNS缓存
简单说明下DNS解析机制。当我们访问某个域名时,会解析到对应的IP去访问业务系统,大致顺序如下:
-
浏览器缓存,先检查自身缓存中有没有被解析过的这个域名对应的ip地址。
-
本地缓存hosts文件,在C盘系统文件下有个hosts文件,记录域名和对应的IP地址(此步骤就是hosts碰撞的修改点)
-
本区域域名服务器(LDNS),即你所在或附近城市的域名服务器,大约80%的域名解析到这里就完成了。
-
再高一级域名服务器,如果还是解析不到就继续往上一级查,此处就不赘述了。
0x03 批量检测
hosts碰撞原理如下图。此处的本地DNS解析可以在hosts文件配置。知道了原理,我们就可以收集内网系统的域名和目标资产的IP段,将两者进行组合遍历,便可发现一些暴露在公网的内网资产了。
这里是推荐一个批量发现工具,针对hosts碰撞批量发现。
https://github.com/fofapro/Hosts_scan
把IP列表放在ip.txt,把某系统的可能的子域名或是内网域名放在host.txt,工具截图如下:
公众号回复:0724,获取工具包。
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白名单。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与本公众号无关。
✦
✦
原文始发于微信公众号(白帽学子):利用hosts碰撞暴露内网泄露系统
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论