利用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:搜集目标信息

  1. 搜集指向内网IP的域名

    • 使用工具如OneForAll搜集子域名
    • 筛选出解析到内网IP(如10.x.x.x, 172.16.x.x, 192.168.x.x)的域名
    • 注意收集常见内网办公系统域名(如oa.company.com, mail.company.com)
  2. 搜集目标IP资产

    • 通过扫描发现开放WEB服务的IP
    • 记录返回4xx错误的IP地址

步骤2:进行HOSTS碰撞

  1. 使用自动化工具

    • 推荐使用Hosts_scan工具(https://github.com/fofapro/Hosts_scan)
    • 准备两个文件:
      • hosts.txt:包含搜集到的域名
      • ip.txt:包含目标IP地址
    • 运行工具后,通过比较响应大小和标题识别匹配的HOST头
  2. 手动Fuzz测试

    • 对特定IP进行HOST头模糊测试
    • 使用Burp Intruder或自定义脚本尝试常见内网域名

步骤3:配置代理访问

  1. Burp Suite配置

    • 在Proxy → Options → Match and Replace规则中添加HOST头替换规则
    • 将目标IP的请求HOST头替换为碰撞成功的域名
  2. 浏览器配置

    • 设置浏览器使用Burp作为代理
    • 直接访问目标IP地址,Burp会自动修改HOST头

步骤4:后续渗透

成功突破边界后:

  • 对内网系统进行常规渗透测试
  • 注意收集敏感信息
  • 尝试横向移动

防御建议

  1. 服务器配置

    • 为IP直接访问配置合理的默认响应
    • 限制未授权域名的访问
    • 实现严格的HOST头验证
  2. 网络架构

    • 分离内外网服务
    • 实施网络访问控制
    • 监控异常HOST头请求

参考资料

  1. nginx配置不当容易产生的安全问题
  2. 利用火器DNS数据集进行hosts碰撞
  3. Hosts_scan工具

通过以上方法,安全研究人员可以有效地利用HOSTS碰撞技术突破网络边界,发现更多潜在的安全风险。

利用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头请求 参考资料 nginx配置不当容易产生的安全问题 利用火器DNS数据集进行hosts碰撞 Hosts_ scan工具 通过以上方法,安全研究人员可以有效地利用HOSTS碰撞技术突破网络边界,发现更多潜在的安全风险。