Patchday Jul 2021

Seit Hafnium Exploit und Pwn2Own 2021 sollten Sie als Exchange Administrator mittlerweile Übung inm Rollout von Exchange Security Updates haben. Am Juli 2021-Patchday wurde ein Exchange Updates veröffentlicht, welches sie NICHT über Windows Updates mal so eben installieren sollen. Zudem wird in an dem Tag auch ein wichtiges Update für PrintNightmare-Lücke (CVE-2021-34527) bereitgestellt. ich beschränke mich hier auf Exchange und führe nicht alle 117 Fixes weiter aus.

Lücke CVE-2021-34470 u.a.

Die Aussage von Microsoft dazu ist erst mal relativ vage:

The July 2021 security updates for Exchange Server address vulnerabilities responsibly reported by security partners and found through Microsoft’s internal processes. Although we are not aware of any active exploits in the wild, our recommendation is to install these updates immediately to protect your environment
Quelle: https://techcommunity.microsoft.com/t5/exchange-team-blog/released-july-2021-exchange-server-security-updates/ba-p/2523421

Angeblich kann die Lücke nicht direkt aus dem Internet ausgenutzt werden sondern erfordert eine gewisse Nähe. Genauer wird nicht darauf eingegangen aber ich kann mir vorstellen, dass eine Ausnutzung von Intern als "Man in the Middle"-Angriff möglich sein könnte, bei de ein Angreifer z.B.: einen Administrator per ARP-Spoofing o.ä. umleitet und eigenen Code einschleust.

Auf https://www.zerodayinitiative.com/blog/2021/7/13/the-july-2021-security-update-review finden Sie eine Analyse alle Updates im Juli von Microsoft und Adobe. Interessant ist hier aber, dass Microsoft hier einige CVEs aufführt, die aber schon im April (Hafnium Exploit) mit gefixt aber bislang nicht veröffentlicht wurden. Eine Lücke ist schon in Pwn2Own 2021 beschrieben.

CVE Title Severity CVSS Public Exploited Type
CVE-2021-34473

Microsoft Exchange Server Remote Code Execution Vulnerability

Critical

9.1

Yes

No

RCE

CVE-2021-34523

Microsoft Exchange Server Elevation of Privilege Vulnerability

Important

9

Yes

No

EoP

CVE-2021-33766

Microsoft Exchange Information Disclosure Vulnerability

Important

7.3

No

No

Info

CVE-2021-33768

Microsoft Exchange Server Elevation of Privilege Vulnerability

Important

8

No

No

EoP

CVE-2021-34470

Microsoft Exchange Server Elevation of Privilege Vulnerability

Important

8

No

No

EoP

CVE-2021-31196

Microsoft Exchange Server Remote Code Execution Vulnerability

Important

7.2

No

No

RCE

CVE-2021-31206

Microsoft Exchange Server Remote Code Execution Vulnerability

Important

7.6

No

No

RCE

Wirklich wichtig ist hier der CVE-2021-34472, der hier mit gefixt wird.

Installation mit Schema Update

Interessant ist bei dem Update, dass ein Schema-Update für einen kompletten Schutz erforderlich ist. Damit wird es zumindest in größere Umgebungen etwas aufwändiger, dieses Updates zu installieren. Die wenigsten Exchange Server sind "Schema-Admin". So kann Windows Update die eigentliche Installation noch durchführen aber als Administrator müssen Sie danach sicherstellen, dass das Schema-Update ausgeführt wird.

Ich installiere die Exchange Updates in der Regel als Administrator manuell um zu sehen, ob das Setup auch korrekt durchgelaufen ist.

Sie können natürlich auch Windows Update nutzen. Bei der manuellen Installation muss das Setup aber mit administrativen Rechten gestartet werden.

Bitte nicht die MSP-Datei per Doppelklick starten! Sie müssen die MSP-Datei aus einer als Administrator gestarteten CMD-Shell aufrufen.

Leider prüft der Patch nicht diese Voraussetzung und installiert das Update oft unvollständig. Teilweise funktioniert danach OWA oder ECP nicht.

Aktualisiert werden wieder nur die Exchange Versionen, welche noch im Support sind. Wer also noch nicht das aktuelle der N-1-Update installiert hat, muss erst das entsprechende CU vorab installieren.

Exchange Server 2013 CU23 https://www.microsoft.com/en-us/download/details.aspx?id=103312
Exchange Server 2016 CU20 https://www.microsoft.com/en-us/download/details.aspx?id=103310
Exchange Server 2016 CU21 https://www.microsoft.com/en-us/download/details.aspx?id=103311
Exchange Server 2019 CU9 https://www.microsoft.com/en-us/download/details.aspx?id=103308
Exchange Server 2019 CU10 https://www.microsoft.com/en-us/download/details.aspx?id=103309

Die entsprechenden KB-Artikel enthalten lesenswerte weitere Informationen:

Allerdings gehen die Artikel nicht auf das Thema "Schema Update" ein. Daher folgende Tabelle

Aktuell installiert Erforderliche Aktion

Exchange 2016 CU21

Wenn Sie mit dem Juni CU schon das Schema aktualisiert haben, dann ist keine weitere Aktion erforderlich.
Ansonsten sollten Sie das Juni-CU Setup.exe noch mal mit "/PrepareSchema" starten

Exchange 2016 CU20

Nutzen Sie die Quellen des Juni CU um das Schema zu aktualisieren

Exchange 2019 CU10

Wenn Sie mit dem Juni CU schon das Schema aktualisiert haben, dann ist keine weitere Aktion erforderlich.
Ansonsten sollten Sie das Juni-CU Setup.exe noch mal mit "/PrepareSchema" starten

Exchange 2019 CU9

Nutzen Sie die Quellen des Juni CU um das Schema zu aktualisieren

Exchange 2013 CU23

Installieren Sie das Security Update. Es aktualisiert die Quellen und starten sie dann als Admin das Exchange Setup

REM die Zeile ist zur Lesbarkeit umgebrochen. 
REM Bitte alles in eine Zeile schreiben
“c:\Program Files\Microsoft\Exchange Server\V15\Bin\Setup.exe" 
   /PrepareSchema
   /IAcceptExchangeServerLicenseTerms

Eventuell betreffen Sie noch drei Probleme.

Verifikation

Schon vor diesem Update konnte ich die Version des Exchange Servers per HTTP "erahnen" aber nicht zuverlässig ermitteln. Ich konnte einfach bestimmte URLs abfragen und darin zumindest die Major-Version auslesen. Das ist mit diesem Updates nun besser gelöst:

The Exchange Server version number is now added to the HTTP response reply header.
You can use this information to validate the security update status of Exchange-based servers in your network.
Quelle: https://support.microsoft.com/en-us/topic/description-of-the-security-update-for-microsoft-exchange-server-2016-july-13-2021-kb5004779-81e40da3-60db-4c09-bf11-b8c1e0c1b77d

Per Autodiscover bekommen Sie z.B.: die Version oft sogar von extern ermittelt:

PS C:\> (Invoke-WebRequest https://autodiscover.msxfaq.de/autodiscover/autodiscover.xml -SkipCertificateCheck -SkipHttpErrorCheck).headers."X-OWA-Version"
15.1.2242.12

Auch EWS und andere Verzeichnisse eignen sich natürlich, um die tatsächlich installierte Version zu ermitteln.

PS C:\> (Invoke-WebRequest https://ex2016.msxfaq.net/ews/exchange.asmx -SkipCertificateCheck -SkipHttpErrorCheck).headers

Key                  Value
---                  -----
Server               {Microsoft-IIS/8.5}
request-id           {ac17a2f2-4bf8-48c7-a276-9e0af62165e3}
X-WSSecurity-Enabled {True}
X-WSSecurity-For     {None}
X-OAuth-Enabled      {True}
X-OWA-Version        {15.1.2242.12}
WWW-Authenticate     {Negotiate, NTLM, Basic realm="ex2016.msxfaq.net"}
X-Powered-By         {ASP.NET}
X-FEServer           {ex2016.msxfaq.net}
Date                 {Wed, 14 Jul 2021 23:04:17 GMT}
Content-Length       {0}

# Oder direkt die Version ermitteln
PS C:\> (Invoke-WebRequest https://ex2016.msxfaq.net/ews/exchange.asmx -SkipCertificateCheck -SkipHttpErrorCheck).headers."X-OWA-Version"
15.1.2242.12

# Tipp: Auch https://<server>/autodiscover/autodiscover.xml liefert die Version ohne vorherige Authentifizierung
PS C:\> (Invoke-WebRequest https://autodiscover.msxfaq.net -SkipCertificateCheck -SkipHttpErrorCheck).headers."X-OWA-Version"
15.1.2242.12

Sie sehen hier genau die "X-OWA-Version". Allerdings muss die Option schon früher addiert worden sein, denn ich habe im Internet auch Server mit Build-Version "{15.2.858.12}" und {15.1.2176.14}gefunden. Allerdings kann es ja sein, dass diese Versionen noch nicht korrekt waren.

Weitere Optionen zur Ermittlung der installierte Version sind direkt auf dem Server möglich:

# Dateiversion auf dem Server
Get-Command Exsetup.exe | ForEach {$_.FileVersionInfo}

Auch die Exchange Server Version, die mit "Get-ExchangeServer" geladen werden kann, scheint nun akkurat gepflegt zu sein.

# Exchange PowerShell
Get-ExchangeServer | Format-List Name,Edition,AdminDisplayVersion

Die Build-Nummern finden Sie wie gehabt bei Microsoft.

So können Firmen z.B. IDS-Systeme, Scanner und Monitoring-Programme um diese Funktion erweitern und damit "veraltete" Server oder Server mit unvollständig installiertem Update schnell erkennen. Interne Angreifer können das dann natürlich auch.

Exchange Health Checker

Früher gab es Programme wie ExBPA - Exchange Best Practice Analyzer und Exchange BPA 365, um die "Gesundheit" des Exchange Servers zu überprüfen. Viele Teile sind mittlerweile in Exchange selbst als Exchange 2013 Managed Availability aufgegangen. Zusätzlich gibt es aber eine PowerShell-Sammlung, die weitere Aspekte des Exchange Servers überprüft. Der "Exchange Health Checker" überprüft auch den Versionsstand und kann über GitHub schneller aktualisiert werden.

HealthChecker.ps1
https://GitHub.com/microsoft/CSS-Exchange/releases/latest/download/HealthChecker.ps1

Ein Aufruf vor der Installation auf einem Exchange 2016 Server als Administrator in der Exchange PowerShell zeigt sehr schnell die fehlenden Updates und Einstellungen:

Weitere Links