CVE-2022-41080概述:
- 微软 Exchange Server 的权限提升漏洞,能在 Outlook Web Application(OWA)端点获得执行 PowerShell 的权限
- 波及 Microsoft Exchange Server 2013、2016、2019 的多个累积更新版本,比如 2013 CU23、2016 CU22/23、2019 CU11/12 等
实现原理概述:
在Outlook中,可通过低权限的邮箱用户,获取执行PowerShell的权限;
关键点:
PowerShell的执行权限理论上需要更高权限用户才能操作,怎么绕过权限管控来获取此权限?
实现详解:
首先需要了解一个目录:
/owa/邮箱地址/powershell:
这是 Exchange Server 中 OWA 集成 PowerShell 的合法管理端点,仅用于授权场景下的邮件系统运维操作;
一个请求头参数:
X-OWA-ExplicitLogonUser:
这是 OWA 的 显式登录标识头,用于指定 “当前请求以哪个用户身份执行”,仅在授权代操作场景下使用。
这两个结合到请求头中后,可以实现对管理员账户对powershell执行白名单命令的权限;
但这两个点存在几个缺陷:
1、正常逻辑下,URL 中/owa/[邮箱]/powershell的 “邮箱” 需是 “已授权访问 PowerShell 服务” 的账号(如管理员),但 OWA 未校验该邮箱的合法性 —— 即使为m123dsasdx@outlook.com这种不存在的占位符,服务器也会默认 “路径合法”,不会拦截;
2、权限问题:服务器的权限校验只做了 “是否已登录(有合法 Cookie)”,没做 “登录账号是否有权访问 PowerShell 端点”。简单说,它只确认 “你是系统合法用户”,却没检查 “你有没有资格用这个高权限端点”,相当于保安只看你有小区门禁卡(低权限账号登录),就允许你进业主专属的 VIP 会所(PowerShell 端点)。
3、正常情况下,X-OWA-ExplicitLogonUser这个请求头需要与登录账号有 “授权代操作关系”,但实际存在一个缺陷,低权限账号随便填一个邮箱,服务器就默认 “允许以该身份执行请求”,相当于用普通业主的门禁卡,却谎称自己是 VIP,保安没核实就放行;
结合以上三点,就可完成请求头和请求体的构建,完成对权限管控的绕过,如下图:

可参考如下请求代码:
POST /owa/jjjjk%40outlook.com/powershell HTTP/1.1
Host: target-exchange.com # 目标Exchange服务器地址(替换为真实地址)
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Cookie: ASP.NET_Se


1331

被折叠的 条评论
为什么被折叠?



