ADIDNS 安全研究:绕过 GQBL 限制解析 WPAD 域名
字数 1658 2025-08-27 12:33:48
ADIDNS 安全研究:绕过 GQBL 限制解析 WPAD 域名
1. 背景介绍
ADIDNS(Active Directory Integrated DNS)是 Windows 环境中集成的 DNS 服务,它允许通过 Active Directory 进行 DNS 记录的管理和解析。2018 年,研究人员发现了一种利用 ADIDNS 绕过 GQBL(Global Query Block List)限制的技术,该技术允许攻击者解析 WPAD(Web Proxy Auto-Discovery)域名,从而可能实施中间人攻击。
2. WPAD 与 GQBL
2.1 WPAD 简介
WPAD(Web Proxy Auto-Discovery)是一种自动发现网络代理设置的协议,它通过以下方式工作:
- 客户端尝试解析 WPAD 域名
- 使用 LLMNR(链路本地多播名称解析)和 NBNS(NetBIOS 名称服务)进行本地网络查询
- 是常见的中间人攻击目标
2.2 GQBL 机制
GQBL(全局查询区块列表)是 Windows DNS 服务器的安全特性:
- 默认包含 WPAD 和 ISATAP 两个主机名
- 阻止对这些主机的 DNS 查询响应
- 旨在防止 WPAD 相关的攻击
3. 绕过 GQBL 的技术
研究人员发现了三种绕过 GQBL 限制的方法:
3.1 通配符记录(Wildcard Record)
- Windows DNS 服务器在处理通配符记录时会忽略 GQBL
- 可以通过动态更新添加通配符记录
- 限制:
*字符在动态更新中不能准确工作
3.2 DNAME 记录
- 为 WPAD 添加 DNAME 记录可绕过 GQBL
- 正常情况下 DNAME 不解析与真实记录匹配的请求
- 特殊条件下 Windows DNS 会应答 DNAME 记录根的请求
- 限制:DNAME 记录不能动态更新
3.3 NS 记录
- 在 WPAD 子域名中添加 NS 记录
- 需要控制指向的 DNS 服务器(如使用 DNSchef)
- 限制:不能动态更新
4. CVE-2018-8320
微软为此漏洞分配了 CVE 编号:
- 通配符记录不再解析 GQBL 列表中主机的请求(已修复)
- DNAME 记录不再解析 GQBL 列表中主机的请求(已修复)
- NS 记录仍然可以绕过 GQBL(未修复)
5. 域名后缀搜索顺序的影响
- 当多个域名后缀通过组策略分配给搜索列表时,通配符记录会引发问题
- 高优先级域名后缀的通配符记录会阻止请求降级到低优先级后缀
- 导致新的攻击方法:攻击已有记录的请求
6. 攻击场景
6.1 钓鱼攻击
- 通过钓鱼获取 AD 连接
- 使用 PowerShell 等工具添加指向攻击者 IP 的记录
- 可用于 C2 通信或设置其他钓鱼攻击
6.2 NS 记录攻击
- 设置 NS 记录指向攻击者控制的 DNS 服务器
- 通过该服务器添加额外的子域名记录
6.3 Domain Borrowing
- 当内部 AD 域名与公有域名匹配时
- 利用公有域名的可信度绕过内容过滤
- 限制:只能影响使用目标 ADIDNS 解析的资源
7. 防御措施
7.1 通配符记录防御
- 添加非解析的通配符记录(如 TXT 记录)
- 防止未授权用户创建名为
*的 dnsNode - 限制:不能防御 LLMNR/NBNS 欺骗
7.2 权限控制
- 锁定 zone 权限
- 移除 Authenticated Users 的 "Create all child objects" 权限
- 可能需要保留 DHCP 的特定 DNS 动态更新账户
7.3 其他建议
- 监控异常的 DNS 记录添加
- 限制动态 DNS 更新的权限
- 定期审计 DNS 记录
8. 总结
ADIDNS 的 GQBL 绕过技术展示了 Active Directory 环境中 DNS 服务的潜在安全风险。虽然部分绕过方法已被修复,但 NS 记录方法仍然有效。管理员应采取适当的防御措施,特别是权限控制和记录监控,以防范此类攻击。