Detection rules › Sigma
Exchange ProxyShell Pattern
Detects URL patterns that could be found in ProxyShell exploitation attempts against Exchange servers (failed and successful)
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Initial Access | T1190 Exploit Public-Facing Application |
Rule body yaml
title: Exchange ProxyShell Pattern
id: 23eee45e-933b-49f9-ae1b-df706d2d52ef
status: test
description: Detects URL patterns that could be found in ProxyShell exploitation attempts against Exchange servers (failed and successful)
references:
- https://youtu.be/5mqid-7zp8k?t=2231
- https://blog.orange.tw/2021/08/proxylogon-a-new-attack-surface-on-ms-exchange-part-1.html
- https://peterjson.medium.com/reproducing-the-proxyshell-pwn2own-exploit-49743a4ea9a1
author: Florian Roth (Nextron Systems), Rich Warren
date: 2021-08-07
modified: 2023-01-02
tags:
- attack.initial-access
- attack.t1190
- detection.emerging-threats
logsource:
category: webserver
detection:
selection_1:
sc-status: 401
selection_1_auto:
cs-uri-query|contains: '/autodiscover.json'
selection_1_uri:
cs-uri-query|contains:
- '/powershell'
- '/mapi/nspi'
- '/EWS'
- 'X-Rps-CAT'
selection_poc:
sc-status: 401
cs-uri-query|contains:
# since we don't know how it will appear in the log files, we'll just use all versions
- 'autodiscover.json?@'
- 'autodiscover.json%3f@'
- '%3f@foo.com'
- 'Email=autodiscover/autodiscover.json'
- 'json?@foo.com'
condition: all of selection_1* or selection_poc
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
all of selection_1* or selection_pocStage 1: selection_1
selection_1:
sc-status: 401
Stage 2: selection_1_auto
selection_1_auto:
cs-uri-query|contains: '/autodiscover.json'
Stage 3: selection_1_uri
selection_1_uri:
cs-uri-query|contains:
- '/powershell'
- '/mapi/nspi'
- '/EWS'
- 'X-Rps-CAT'
Stage 4: selection_poc
selection_poc:
sc-status: 401
cs-uri-query|contains:
- 'autodiscover.json?@'
- 'autodiscover.json%3f@'
- '%3f@foo.com'
- 'Email=autodiscover/autodiscover.json'
- 'json?@foo.com'
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
cs-uri-query | match |
|
sc-status | eq |
|