前言
在MS Exchange攻击日志分析二中,已经讲述了如何使用Windows安全日志、应用日志、MSExchange Management日志来监测分析CVE-2020-0688、CVE-2020-16875、CVE-2020-17144,本文将介绍如何使用上述日志监测分析ProxyLogon、ProxyShell漏洞利用行为。
ProxyLogon
在2023年3月份,微软公布了多个Microsoft Exchange的高危漏洞,通过组合利用这些漏洞可以在未经身份验证的情况下远程获取服务器权限。这套组合拳被称为ProxyLogon。安全研究员Orange Tsai于2020年底发现该系列漏洞并命名。
CVE-2021-26855是一个SSRF漏洞,利用该漏洞可以绕过Exchange的身份验证,CVE-2021-27065是一个文件写入漏洞。二者结合可以在未登录的状态下写入webshell。
想要成功的利用该漏洞,整个攻击链接可能经过以下步骤:
通过SSRF漏洞攻击,访问autodiscover.xml泄露LegacyDN信息。
在通过LegacyDN,获取SID。
然后通过合法的SID,获取exchange的有效cookie。
最后通过有效的cookie,对OABVirtualDirectory对象进行恶意操作,写入一句话木马,达到控制目标的效果。
首先,获取DNSname,可在/ecp/15.0.1497.15/报错路径下获取,也可以在从对/rpc/rpcproxy.dll的NTLM请求的响应获取到。
接下来通过LegacyDN,获取SID。事实上在IIS日志上观测不到请求行为的具体内容,仅观测到请求了一些不存在的js文件。IIS日志如下:
2023-11-27 13:25:41 10.211.55.74 HEAD /rpc/rpcproxy.dll majack2f2d.abd.org:6001&RequestId=56d6f56b-2299-46b8-9da2-e739a712d2b1 444 ABD\MAJACK2F2D$ 10.211.55.74 MSRPC - 200 0 0 1
2023-11-27 13:25:41 10.211.55.74 POST /ecp/y.js &CorrelationID=<empty>;&cafeReqId=f21eb85b-3120-4329-9da0-9bd40ede37b6; 443 - 10.211.55.71 ExchangeServicesClient/0.0.0.0 - 200 0 0 4199
2023-11-27 13:25:41 10.211.55.74 POST /ecp/y.js &CorrelationID=<empty>;&cafeReqId=1c2bb500-f7b3-4ce3-8b5a-7bf7380ad5f9; 443 - 10.211.55.71 python-requests/2.25.1 - 200 0 0 36
通过合法的SID,获取exchange的有效cookie。通过有效的cookie,对OABVirtualDirectory对象进行恶意操作,写入一句话木马,达到控制目标的效果。这两个步骤在IIS日志中并不能有效观测到,但写入一句话木马的动作可以在MSExchange CmdletLogs日志中观测到。
所以,可使用MSExchange CmdletLogs建立有效的监测规则:
title: MSExchange CmdletLogs monitors ProxyLogon webshell writing behavior
description: windows server 2016
author: DHZN
logsource:
product: windows
service: MSExchange CmdletLogs
detection:
selection:
EventID: 1
Message|contains|all:
- 'Set-'
- 'VirtualDirectory'
- '-ExternalUrl'
- 'script'
condition: selection
level: medium
尝试链接webshell,并执行相关命令:
可通过Windows安全日志观测到这一行为:
因此,可以复用上文MS Exchange攻击日志分析二中的使用Windows安全日志监测CVE-2020-16875利用行为特征。
当然,也可直接使用微软提供的检测方法,对Exchange HttpProxy日志进行检测分析,日志路径:'%PROGRAMFILES%\Microsoft\Exchange Server\V15\Logging\HttpProxy'。也可采集相关日志后,转写Sigma规则。
Import-Csv -Path (Get-ChildItem -Recurse -Path "$env:PROGRAMFILES\Microsoft\Exchange Server\V
15\Logging\HttpProxy" -Filter '*.log').FullName | Where-Object { $_.AnchorMailbox -like 'ServerInfo~*/*' -or $_.BackEndC
ookie -like 'Server~*/*~*'} | select DateTime, AnchorMailbox, UrlStem, RoutingHint, ErrorCode, TargetServerVersion, Back
EndCookie, GenericInfo, GenericErrors, UrlHost, Protocol, Method, RoutingType, AuthenticationType, ServerHostName, HttpS
tatus, BackEndStatus, UserAgent
使用Exchange日志对CVE-2021-27065利用行为进行检测,日志路径'C:\Program Files\Microsoft\Exchange Server\V15\Logging\ECP\Server'。也可采集相关日志后,转写Sigma规则。
Select-String -Path "$env:PROGRAMFILES\Microsoft\Exchange Server\V15\Logging\ECP\Server\*.log" -Pattern 'Set-.+VirtualDirectory'
ProxyShell
ProxyShell攻击链是2021年8月由安全研究员Kevin Beaumont发现的一系列Microsoft Exchange服务器漏洞。这些漏洞影响了Exchange Server 2016、Exchange Server 2019、Exchange Server 2021和Exchange Online。
ProxyShell攻击链由三个CVE漏洞组成:
CVE-2021-34473:未经身份验证的用户可以通过修改请求头来访问Exchange服务器中的PowerShell端点。
CVE-2021-34523:攻击者可以通过修改请求头来绕过Exchange服务器的身份验证。
CVE-2021-31207:攻击者可以通过修改请求头来执行任意PowerShell脚本。
具体漏洞细节不再展开阐述,直接看攻击利用过程中会有哪些日志可以辅助安全人员进行分析。
首先,在MSExchange CmdletLogs日志中比较直观的看到webshell写入行为。
接下来,在Microsoft-Windows-PowerShell日志中观察到了清理邮箱导出请求行为日志记录。
最后,在Windows安全日志中记录到了whomai命令执行行为。
值得注意的是,当执行powershell命令时,如果命令执行异常,也将会被记录在Microsoft-Windows-PowerShell日志中。
使用Sigma规则监测ProxyShell利用行为:
title: Use MSExchange CmdletLogs or Powershell logs to monitor ProxShell vulnerability exploitation behavior
description: windows server 2016
author: DHZN
logsource:
product: windows
service: MSExchange CmdletLogs/PoweShell
detection:
selection1:
EventID: 1
Message|contains|all:
- 'New-MailboxExportRequest'
- 'FilePath'
selection2:
EventID: 4104
Message|contains|all: 'Get-MailboxExportRequest'
condition: selection
level: medium
对于执行whoami等系统命令的监测,可参考上篇文章MS Exchange攻击日志分析二中的使用Windows安全日志监测CVE-2020-16875利用行为特征。