看我如何通过DNS历史记录绕过防火墙
字数 1808 2025-08-18 11:37:57

通过DNS历史记录绕过防火墙的技术详解

技术背景与原理

Web应用防火墙(WAF)如Cloudflare、Incapsula和SUCURI等通过拦截所有HTTP流量来保护网站安全。当用户访问受保护的网站时,DNS查询返回的是WAF的IP地址,而非源服务器的真实IP。这使得所有流量都必须经过WAF的过滤。

绕过原理:如果攻击者能够获取源服务器的真实IP地址,并且该服务器仍然接受直接连接,就可以绕过WAF的保护机制,直接与源服务器通信。

工具概述

bypass-firewalls-by-DNS-history.sh是一个Bash脚本工具,主要用于:

  1. 搜索DNS的A记录历史,寻找可能指向源服务器真实IP的历史记录
  2. 识别运行相同网站但不接收活动流量的旧服务器
  3. 获取子域名的IP地址(可能指向主域名)

工具功能详解

主要功能

  1. 寻找防火墙背后的真实IP

    • 通过查询DNS历史记录,寻找曾经指向源服务器的IP
    • 验证这些IP是否仍然响应目标域名
  2. 发现旧版本服务器

    • 这些服务器通常托管过时的、未维护的网站版本
    • 更容易存在已知漏洞(如SQL注入)
    • 访问数据库的难度较低
  3. 子域名IP收集

    • 开发人员有时会让子域名IP指向主域名
    • 这些子域名可能未被WAF保护

使用参数

参数 描述 示例
-d--domain 指定目标域名 -d example.com
-o--outputfile 指定输出文件保存IP地址 -o ips.txt
-l--listsubdomains 提供额外的子域名列表 -l subdomains.txt
-a--checkall 检查所有子域名的防火墙绕过状态 -a

依赖安装

可选依赖jq(用于解析输出结果和自动收集子域名):

apt install jq

技术实现细节

工作流程

  1. DNS历史记录查询

    • 通过多个DNS历史记录服务查询目标域名的A记录历史
    • 收集所有曾经指向该域名的IP地址
  2. IP验证

    • 对收集到的IP地址进行验证
    • 检查这些IP是否仍然响应目标域名
    • 确认是否可以直接访问(绕过WAF)
  3. 子域名扩展

    • 收集目标域名的所有子域名
    • 对每个子域名重复上述DNS历史记录查询过程

使用的Web服务

脚本利用了多个DNS历史记录查询服务(具体服务未在原文中列出,但通常包括如SecurityTrails、DNSdumpster等)。

实际应用方法

绕过WAF后的操作

  1. 修改hosts文件

    • Linux/Mac: /etc/hosts
    • Windows: c:\Windows\System32\Drivers\etc\hosts
    • 添加条目格式:[真实IP] [域名]
    • 示例:80.40.10.22 vincentcox.com
  2. 使用Burp Suite

    • 配置Burp Suite直接向真实IP发送请求
    • 绕过WAF进行渗透测试

适用场景

  1. 安全审计

    • 评估WAF配置的有效性
    • 发现可能被绕过的风险点
  2. 漏洞挖掘

    • 寻找旧版本服务器上的已知漏洞
    • 进行SQL注入、SSRF等攻击测试
  3. 渗透测试

    • 作为完整渗透测试流程的一部分
    • 评估目标系统的整体安全性

防御措施

针对网站管理员

  1. IP隐藏

    • 确保源服务器只接受来自WAF的流量
    • 配置防火墙规则拒绝直接访问
  2. DNS记录清理

    • 定期检查并清理DNS历史记录
    • 避免旧IP地址被公开
  3. 服务器退役

    • 完全下线不再使用的旧服务器
    • 确保不再响应任何请求

针对安全团队

  1. 监控

    • 监控是否有直接访问源IP的尝试
    • 设置警报机制
  2. 定期审计

    • 定期检查DNS历史记录暴露情况
    • 评估WAF绕过风险

法律与道德考量

  1. 合法授权

    • 仅在获得明确授权的情况下使用该技术
    • 遵守相关法律法规
  2. 责任披露

    • 发现漏洞后应遵循负责任的披露流程
    • 避免造成不必要的损害
  3. 数据保护

    • 在测试过程中保护敏感数据
    • 避免泄露用户隐私信息

技术演进

随着该技术的普及,WAF提供商也在不断改进防护措施,包括:

  1. IP轮换:定期更换源服务器IP
  2. 严格访问控制:只允许WAF IP访问源服务器
  3. DNS记录保护:限制DNS历史记录的公开性

因此,该技术的有效性可能会随时间变化,需要持续关注最新发展。

通过DNS历史记录绕过防火墙的技术详解 技术背景与原理 Web应用防火墙(WAF)如Cloudflare、Incapsula和SUCURI等通过拦截所有HTTP流量来保护网站安全。当用户访问受保护的网站时,DNS查询返回的是WAF的IP地址,而非源服务器的真实IP。这使得所有流量都必须经过WAF的过滤。 绕过原理 :如果攻击者能够获取源服务器的真实IP地址,并且该服务器仍然接受直接连接,就可以绕过WAF的保护机制,直接与源服务器通信。 工具概述 bypass-firewalls-by-DNS-history.sh 是一个Bash脚本工具,主要用于: 搜索DNS的A记录历史,寻找可能指向源服务器真实IP的历史记录 识别运行相同网站但不接收活动流量的旧服务器 获取子域名的IP地址(可能指向主域名) 工具功能详解 主要功能 寻找防火墙背后的真实IP : 通过查询DNS历史记录,寻找曾经指向源服务器的IP 验证这些IP是否仍然响应目标域名 发现旧版本服务器 : 这些服务器通常托管过时的、未维护的网站版本 更容易存在已知漏洞(如SQL注入) 访问数据库的难度较低 子域名IP收集 : 开发人员有时会让子域名IP指向主域名 这些子域名可能未被WAF保护 使用参数 | 参数 | 描述 | 示例 | |------|------|------| | -d 或 --domain | 指定目标域名 | -d example.com | | -o 或 --outputfile | 指定输出文件保存IP地址 | -o ips.txt | | -l 或 --listsubdomains | 提供额外的子域名列表 | -l subdomains.txt | | -a 或 --checkall | 检查所有子域名的防火墙绕过状态 | -a | 依赖安装 可选依赖 jq (用于解析输出结果和自动收集子域名): 技术实现细节 工作流程 DNS历史记录查询 : 通过多个DNS历史记录服务查询目标域名的A记录历史 收集所有曾经指向该域名的IP地址 IP验证 : 对收集到的IP地址进行验证 检查这些IP是否仍然响应目标域名 确认是否可以直接访问(绕过WAF) 子域名扩展 : 收集目标域名的所有子域名 对每个子域名重复上述DNS历史记录查询过程 使用的Web服务 脚本利用了多个DNS历史记录查询服务(具体服务未在原文中列出,但通常包括如SecurityTrails、DNSdumpster等)。 实际应用方法 绕过WAF后的操作 修改hosts文件 : Linux/Mac: /etc/hosts Windows: c:\Windows\System32\Drivers\etc\hosts 添加条目格式: [真实IP] [域名] 示例: 80.40.10.22 vincentcox.com 使用Burp Suite : 配置Burp Suite直接向真实IP发送请求 绕过WAF进行渗透测试 适用场景 安全审计 : 评估WAF配置的有效性 发现可能被绕过的风险点 漏洞挖掘 : 寻找旧版本服务器上的已知漏洞 进行SQL注入、SSRF等攻击测试 渗透测试 : 作为完整渗透测试流程的一部分 评估目标系统的整体安全性 防御措施 针对网站管理员 IP隐藏 : 确保源服务器只接受来自WAF的流量 配置防火墙规则拒绝直接访问 DNS记录清理 : 定期检查并清理DNS历史记录 避免旧IP地址被公开 服务器退役 : 完全下线不再使用的旧服务器 确保不再响应任何请求 针对安全团队 监控 : 监控是否有直接访问源IP的尝试 设置警报机制 定期审计 : 定期检查DNS历史记录暴露情况 评估WAF绕过风险 法律与道德考量 合法授权 : 仅在获得明确授权的情况下使用该技术 遵守相关法律法规 责任披露 : 发现漏洞后应遵循负责任的披露流程 避免造成不必要的损害 数据保护 : 在测试过程中保护敏感数据 避免泄露用户隐私信息 技术演进 随着该技术的普及,WAF提供商也在不断改进防护措施,包括: IP轮换 :定期更换源服务器IP 严格访问控制 :只允许WAF IP访问源服务器 DNS记录保护 :限制DNS历史记录的公开性 因此,该技术的有效性可能会随时间变化,需要持续关注最新发展。