基于dnsadmin的dns热重载后门权限维持
字数 1453 2025-08-27 12:33:22

DNSAdmin组权限维持与热重载后门技术详解

1. 技术背景

DNSAdmin组是Windows域环境中一个特殊的权限组,传统上被认为是域渗透中的常见提权路径。传统攻击方法通常需要服务重启权限,但最新研究发现通过DNS热重载技术可以实现更隐蔽的权限维持。

2. 传统DNSAdmin提权方法

传统方法通常包括以下步骤:

  1. 利用dnscmd.exe给DNS的ServerLevelPluginDll注册恶意DLL
  2. 设置监听等待回连
  3. 使用sc.exe重启DNS服务加载恶意DLL

局限性:DNSAdmin组默认不具备服务重启权限,需要额外权限配置。

3. DNS热重载技术突破

研究发现通过dnscmd.exe的隐藏/restart参数可实现无需服务重启权限的热重载:

3.1 技术原理

  • 基于MS-DNSP文档中的R_DnssrvOperation命令
  • 使用dnscmd /restart触发内部重载而非服务重启
  • 实现类似效果但权限要求更低

3.2 所需权限

研究发现执行热重载攻击需要:

  1. 对MicrosoftDNS容器的通用读取权限
  2. 写入属性权限
  3. 对DC的RPC访问权限(普通域用户即可)

注意:不一定需要DNSAdmin组成员身份,只要具备上述ACL权限即可。

4. 攻击实施步骤

4.1 环境准备

  1. 确认目标用户权限(DNSAdmin组成员或具备MicrosoftDNS容器ACL)
  2. 准备恶意DLL(需导出DnsPluginInitialize等必要函数)

4.2 攻击执行

  1. 注册恶意DLL:
    dnscmd [DC] /config /serverlevelplugindll \\path\to\malicious.dll
    
  2. 触发热重载:
    dnscmd [DC] /restart
    
  3. 等待SYSTEM权限shell回连

4.3 权限验证

  • 使用PowerView验证MicrosoftDNS容器ACL:
    Get-ObjectAcl -Identity "CN=MicrosoftDNS,CN=System,DC=domain,DC=com" | ?{$_.ActiveDirectoryRights -match "GenericAll|WriteProperty"}
    

5. 检测与防御

5.1 攻击特征

  • 事件日志:
    • ID 770(已加载服务器级插件DLL)
    • ID 140(RPC终结点重复错误)
  • 缺少常规服务重启日志(ID 7035/7036)

5.2 检测方法

  1. 监控dnscmd.exe异常使用
  2. 检查ServerLevelPluginDll配置变更
  3. 使用PowerView高危ACL筛选:
    Find-DomainObjectAcl -Identity "CN=MicrosoftDNS,CN=System" -RightsControlAccess | ?{$_.ActiveDirectoryRights -match "WriteProperty"}
    

5.3 防御建议

  1. 限制MicrosoftDNS容器的写入权限
  2. 监控DNS服务器插件配置变更
  3. 实施dnscmd.exe的使用审计
  4. 定期检查DNS服务器加载的DLL

6. 技术特点分析

6.1 优势

  • 无需服务重启权限
  • 日志"噪音"小(不产生服务重启日志)
  • 权限要求灵活(不一定需要DNSAdmin组)

6.2 局限性

  • 会导致DNS管理平台功能异常(RPC终结点冲突)
  • 产生特定事件ID 140错误
  • 需要机器重启才能完全恢复DNS管理功能

7. 扩展研究

7.1 权限模型深入

  • MicrosoftDNS容器的ACL控制比DNSAdmin组成员身份更关键
  • 通用写入权限配置困难,但写入属性权限已足够

7.2 其他发现

  • 标准AD审计工具(如BloodHound)可能遗漏System容器ACL
  • PowerView等工具能更有效发现异常ACL

8. 参考资源

  1. MS-DNSP协议文档
  2. Yuval Gordon的相关研究
  3. Windows DNS服务器管理文档
  4. Active Directory安全最佳实践

9. 总结

DNS热重载技术提供了一种更隐蔽的权限维持方法,突破了传统DNSAdmin提权对服务重启权限的依赖。防御方需要关注MicrosoftDNS容器的ACL配置和DNS服务器插件加载行为,而攻击方可以灵活利用各种具备相关ACL的账户实施攻击。

DNSAdmin组权限维持与热重载后门技术详解 1. 技术背景 DNSAdmin组是Windows域环境中一个特殊的权限组,传统上被认为是域渗透中的常见提权路径。传统攻击方法通常需要服务重启权限,但最新研究发现通过DNS热重载技术可以实现更隐蔽的权限维持。 2. 传统DNSAdmin提权方法 传统方法通常包括以下步骤: 利用dnscmd.exe给DNS的ServerLevelPluginDll注册恶意DLL 设置监听等待回连 使用sc.exe重启DNS服务加载恶意DLL 局限性 :DNSAdmin组默认不具备服务重启权限,需要额外权限配置。 3. DNS热重载技术突破 研究发现通过dnscmd.exe的隐藏 /restart 参数可实现无需服务重启权限的热重载: 3.1 技术原理 基于MS-DNSP文档中的R_ DnssrvOperation命令 使用 dnscmd /restart 触发内部重载而非服务重启 实现类似效果但权限要求更低 3.2 所需权限 研究发现执行热重载攻击需要: 对MicrosoftDNS容器的通用读取权限 写入属性权限 对DC的RPC访问权限(普通域用户即可) 注意 :不一定需要DNSAdmin组成员身份,只要具备上述ACL权限即可。 4. 攻击实施步骤 4.1 环境准备 确认目标用户权限(DNSAdmin组成员或具备MicrosoftDNS容器ACL) 准备恶意DLL(需导出DnsPluginInitialize等必要函数) 4.2 攻击执行 注册恶意DLL: 触发热重载: 等待SYSTEM权限shell回连 4.3 权限验证 使用PowerView验证MicrosoftDNS容器ACL: 5. 检测与防御 5.1 攻击特征 事件日志: ID 770(已加载服务器级插件DLL) ID 140(RPC终结点重复错误) 缺少常规服务重启日志(ID 7035/7036) 5.2 检测方法 监控dnscmd.exe异常使用 检查ServerLevelPluginDll配置变更 使用PowerView高危ACL筛选: 5.3 防御建议 限制MicrosoftDNS容器的写入权限 监控DNS服务器插件配置变更 实施dnscmd.exe的使用审计 定期检查DNS服务器加载的DLL 6. 技术特点分析 6.1 优势 无需服务重启权限 日志"噪音"小(不产生服务重启日志) 权限要求灵活(不一定需要DNSAdmin组) 6.2 局限性 会导致DNS管理平台功能异常(RPC终结点冲突) 产生特定事件ID 140错误 需要机器重启才能完全恢复DNS管理功能 7. 扩展研究 7.1 权限模型深入 MicrosoftDNS容器的ACL控制比DNSAdmin组成员身份更关键 通用写入权限配置困难,但写入属性权限已足够 7.2 其他发现 标准AD审计工具(如BloodHound)可能遗漏System容器ACL PowerView等工具能更有效发现异常ACL 8. 参考资源 MS-DNSP协议文档 Yuval Gordon的相关研究 Windows DNS服务器管理文档 Active Directory安全最佳实践 9. 总结 DNS热重载技术提供了一种更隐蔽的权限维持方法,突破了传统DNSAdmin提权对服务重启权限的依赖。防御方需要关注MicrosoftDNS容器的ACL配置和DNS服务器插件加载行为,而攻击方可以灵活利用各种具备相关ACL的账户实施攻击。