ProxyShell漏洞复现

0x01 漏洞介绍

国外安全研究人员在8月初公开了Microsoft Exchange多个高危漏洞(ProxyShell)利用的技术细节、PoC(概念验证代码)、EXP(漏洞利用代码)及利用视频。漏洞包括Exchange ACL绕过漏洞CVE-2021-34473、Exchange权限提升漏洞CVE-2021-34523和Exchange授权任意文件写入漏洞CVE-2021-31207)。

攻击者可通过组合使用上述漏洞在未经身份验证的情况下远程接管目标服务器。由于Exchange服务器一般承载着使用者单位人员信息的秘密,员工账号信息、邮件数据都在其中,一旦Exchange服务器被控制,将会造成严重后果。

由于国外安全研究人员将Exchange多个漏洞(ProxyShell)细节及部分PoC、EXP公开,意味着攻击者可根据这些技术细节披露的信息,在目标系统远程执行代码,使漏洞风险明显上升。

0x02 漏洞利用前提

获取exchange的用户名

0x03 受影响的版本

  • Microsoft Exchange Server 2019 Cumulative Update 9
  • Microsoft Exchange Server 2013 Cumulative Update 23
  • Microsoft Exchange Server 2019 Cumulative Update 8
  • Microsoft Exchange Server 2016 Cumulative Update 19
  • Microsoft Exchange Server 2016 Cumulative Update 20

0x04 工具

生成webshell:https://github.com/Ridter/proxyshell_payload
漏洞利用:https://github.com/dmaasland/proxyshell-poc

0x05 漏洞复现环境

名称 系统 软件版本
域控 windows server 2012
邮件服务 windows server 2019 exchange2019

0x06 漏洞复现

1.根据需求,生成webshell

根据自己需要,生成webshell数据,替换到proxyshell-poc中,执行,获取webshell。默认情况下,生成的是一句话木马

image-20210817213101935

在proxyshell_payload.py中,修改末尾的webshell变量,将其替换为哥斯拉生成的aspx的webshell,需要注意的是经过测试CSharpDynamicPayload中的CSHAP_AES_BASE64,生成的webshell,需要将其中所有的Session替换成Application.

运行proxyshell_payload.py,将encode之后的内容,复制到proxyshell_rce.py的 311 行:

image-20210817214007366

2.运行exp获取webshell

运行proxyshell_rce.py,首先获取exchange的powershell 管理shell

python3 proxyshell_rce.py -u https://10.108.3.140 -e exxx@xxx.com

用法
-u  exchange地址
-e  exchange的用户名

image-20210817215150258

清理邮件导出请求(如果报错,多执行几次脚本即可)

Get-MailboxExportRequest
Get-MailboxExportRequest|Remove-MailboxExportRequest -Confirm:$false

image-20210817215207041

执行dropshell,即可写入webshelldropshell

image-20210817214635954

3.连接webshell

使用菜刀连接shell

image-20210817214919293

查看权限

image-20210817215356685

Proxyshell_rce可以根据自己的需要修改生成shell的路径,只需要修改222行和 233行的两行内容,将其对应。

默认上传路径:C:\inetpub\wwwroot\aspnet_client

image-20210817215511387

参考地址:

https://mp.weixin.qq.com/s/-qJh2u0mbrKWxWNCZgOrVw