利用HOSTS碰撞突破边界
字数 1233 2025-08-05 08:17:20
利用HOSTS碰撞突破边界技术详解
引言
在渗透测试过程中,经常会遇到以下情况:搜集了大量IP资产,发现端口开放了WEB服务,但访问时总是返回403、404或400错误,目录扫描也找不到有效内容。此时,HOSTS碰撞技术可以作为一种有效的边界突破手段,帮助安全研究人员访问内网系统。
0x01 HOSTS碰撞概念
HOSTS碰撞是指当直接访问IP地址返回4xx错误时,通过指定特定HOST头访问同一IP却能获得正常响应的情况。这种技术特别适用于以下场景:
- 某些域名仅限内网访问
- 目标系统通过域名而非IP进行访问控制
- 服务器配置了基于域名的虚拟主机
0x02 服务器配置不当分析
常见的Web服务器配置不当情况:
Nginx配置问题
- 使用
default_server指令配置默认站点 - 未正确处理不带HOST头的请求
- 仅配置了基于域名的虚拟主机
Apache配置问题
httpd.conf中的ServerName配置不当- 虚拟主机配置仅响应特定域名
- 默认站点配置缺失或错误
0x03 利用方法详解
步骤1:搜集目标信息
-
搜集指向内网IP的域名
- 使用工具如OneForAll搜集子域名
- 筛选出解析到内网IP(如10.x.x.x, 172.16.x.x, 192.168.x.x)的域名
- 注意收集常见内网办公系统域名(如oa.company.com, mail.company.com)
-
搜集目标IP资产
- 通过扫描发现开放WEB服务的IP
- 记录返回4xx错误的IP地址
步骤2:进行HOSTS碰撞
-
使用自动化工具
- 推荐使用Hosts_scan工具(https://github.com/fofapro/Hosts_scan)
- 准备两个文件:
hosts.txt:包含搜集到的域名ip.txt:包含目标IP地址
- 运行工具后,通过比较响应大小和标题识别匹配的HOST头
-
手动Fuzz测试
- 对特定IP进行HOST头模糊测试
- 使用Burp Intruder或自定义脚本尝试常见内网域名
步骤3:配置代理访问
-
Burp Suite配置
- 在Proxy → Options → Match and Replace规则中添加HOST头替换规则
- 将目标IP的请求HOST头替换为碰撞成功的域名
-
浏览器配置
- 设置浏览器使用Burp作为代理
- 直接访问目标IP地址,Burp会自动修改HOST头
步骤4:后续渗透
成功突破边界后:
- 对内网系统进行常规渗透测试
- 注意收集敏感信息
- 尝试横向移动
防御建议
-
服务器配置
- 为IP直接访问配置合理的默认响应
- 限制未授权域名的访问
- 实现严格的HOST头验证
-
网络架构
- 分离内外网服务
- 实施网络访问控制
- 监控异常HOST头请求
参考资料
通过以上方法,安全研究人员可以有效地利用HOSTS碰撞技术突破网络边界,发现更多潜在的安全风险。