Security Professionals - ipfw add deny all from eindgebruikers to any

Exchange vuln RCE as SYSTEM - CVE-2020-0688

26-02-2020, 21:53 door Erik van Straten, 5 reacties
Laatst bijgewerkt: 26-02-2020, 21:57
ZDI laat in https://www.thezdi.com/blog/2020/2/24/cve-2020-0688-remote-code-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys zien waar de kwetsbaarheid CVE-2020-0688 in MS Exchange (gepatcht eerder deze maand) uit bestaat:
Instead of having randomly-generated keys on a per-installation basis, all installations of Microsoft Exchange Server have the same validationKey and decryptionKey values in web.config.
In diezelfde pagina is een PoC (Proof of Concept) exploit gepubliceerd waarmee een reeds geauthenticeerde aanvaller SYSTEM kan worden op de Exchange server (een externe aanvaller hoeft maar van één gebruiker het user-ID en wachtwoord te weten of te kunnen raden).

In https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2020-0688 is de titel veranderd van "Microsoft Exchange Memory Corruption Vulnerability" [*] in "Microsoft Exchange Validation Key Remote Code Execution Vulnerability" (zonder dat "Last Updated : 02/11/2020" is aangepast).

[*] nog te zien in https://support.microsoft.com/en-us/help/4536989/security-update-for-exchange-server-2010

Volgens https://www.ncsc.nl/actueel/advisory?id=NCSC-2020-0116 is dit nu een high/high kwetsbaarheid, en in https://www.cert-bund.de/advisoryshort/CB-K20-0125%20UPDATE%201 is het risico verhoogd naar 5 (de hoogst mogelijke waarde).

Ik hoop dat de patchbereidheid in Nederland hoger is dan bij eerdere lekken (zoals in Citrix gateways en Pulse Secure VPN servers).

Waarschuwing, te vinden in de KB artikelen voor de specifieke Exchange versie, zo te zien geldt dit voor alle versies:
When you try to manually install this security update by double-clicking the update file (.msp) to run it in Normal mode (that is, not as an administrator), some files are not correctly updated.

When this issue occurs, you don’t receive an error message or any indication that the security update was not correctly installed. However, Outlook Web Access (OWA) and the Exchange Control Panel (ECP) may stop working.
[...]
This issue does not occur when you install the update through Microsoft Update.
Als je handmatig patcht, zorg dan dat je dat doet met UAC overruled (run as Administrator dus).
Reacties (5)
27-02-2020, 07:46 door Bitje-scheef
Ik hoop dat de patchbereidheid in Nederland hoger is dan bij eerdere lekken (zoals in Citrix gateways en Pulse Secure VPN servers).

Waarschuwing, te vinden in de KB artikelen voor de specifieke Exchange versie, zo te zien geldt dit voor alle versies

Ik hoop het ook, maar ik denk dat er altijd wel organisaties zijn die een paar maanden er achteraan hobbelen.
28-02-2020, 07:04 door Erik van Straten
Mijn vragen uit https://security.nl/posting/645957 (aldaar met toelichting), maar die gaan in die thread waarschijnlijk niet meer beantwoord worden en hopelijk hier wel:

Weet iemand:
1) Of ook de laatste versies van OWA / EWS na clean install "SHA1" en/of "3DES" nog voorkomen in web.config?
2) En of dit na de patch van februari veranderd is?
3) Of je, tijdens patchen, ervoor gewaarschuwd wordt dat je op servers in een farm identieke keys en algoritmes moet configureren in web.config? En zo ja, hoe je dergelijke keys veilig genereert?
29-02-2020, 07:57 door Anoniem
Door Erik van Straten: Mijn vragen uit https://security.nl/posting/645957 (aldaar met toelichting), maar die gaan in die thread waarschijnlijk niet meer beantwoord worden en hopelijk hier wel:

Weet iemand:
1) Of ook de laatste versies van OWA / EWS na clean install "SHA1" en/of "3DES" nog voorkomen in web.config?
2) En of dit na de patch van februari veranderd is?
3) Of je, tijdens patchen, ervoor gewaarschuwd wordt dat je op servers in een farm identieke keys en algoritmes moet configureren in web.config? En zo ja, hoe je dergelijke keys veilig genereert?

Clean install Exchange Server 2019 (laatste versie) is dit standaard:

TLS 1.2 is the only version that's enabled by default: Exchange Server 2019 includes important changes to improve the security of client and server connections. The default configuration for encryption will enable TLS 1.2 only and disable support for older algorithms (namely, DES, 3DES, RC2, RC4 and MD5). It will also configure elliptic curve key exchange algorithms with priority over non-elliptic curve algorithms

Bron : https://docs.microsoft.com/en-us/Exchange/new-features/new-features?view=exchserver-2019
29-02-2020, 12:48 door Erik van Straten
Door Anoniem:
Door Erik van Straten: Mijn vragen uit https://security.nl/posting/645957 (aldaar met toelichting), maar die gaan in die thread waarschijnlijk niet meer beantwoord worden en hopelijk hier wel:

Weet iemand:
1) Of ook de laatste versies van OWA / EWS na clean install "SHA1" en/of "3DES" nog voorkomen in web.config?
2) En of dit na de patch van februari veranderd is?
3) Of je, tijdens patchen, ervoor gewaarschuwd wordt dat je op servers in een farm identieke keys en algoritmes moet configureren in web.config? En zo ja, hoe je dergelijke keys veilig genereert?

Clean install Exchange Server 2019 (laatste versie) is dit standaard:

TLS 1.2 is the only version that's enabled by default: Exchange Server 2019 includes important changes to improve the security of client and server connections. The default configuration for encryption will enable TLS 1.2 only and disable support for older algorithms (namely, DES, 3DES, RC2, RC4 and MD5). It will also configure elliptic curve key exchange algorithms with priority over non-elliptic curve algorithms

Bron : https://docs.microsoft.com/en-us/Exchange/new-features/new-features?view=exchserver-2019
Dank voor jouw reactie, maar wat je schrijft heeft betrekking op de communicatie met clients en andere mailservers via TLS-gebaseerde protocollen als ESMTP, IMAP en de https verbinding met een OWA/EWS server.

Niet duidelijk is of dit ook geldt voor wat in web.config staat voor de server-side signing en/of encryption van de ASP.NET "ViewState", informatie die de server (via een https verbinding die hier los van staat) na elke gebruikershandeling op de server naar de browser stuurt (ik wist hier niet zoveel van maar heb me er ondertussen verder in verdiept). Door die ViewState telkens naar de browser te sturen, hoeft de server niet te onthouden wat de gebruiker aan het doen is, zoals reeds ingevulde velden op een webformulier (het is een soort uitgebreide cookie). Die ViewState bevat instructies die de server uitvoert zodra deze die ViewState terugontvangt van de browser.

Nb. door de browser te laten onthouden waar de gebruiker precies was, kan deze door een serverfarm worden bediend en kan er, halverwege de sessie, probleemloos van server worden gewisseld (mits elke server daarin de ViewState kan decrypen en/of de signature checken - waar naast dezelfde sleutels, natuurlijk ook identieke algoritmes voor moeten worden gebruikt).

Probleem: als je zo'n door de browser ontvangen ViewState kunt wijzigen en de server deze toch accepteert en de opdrachten daarin (server-side) uitvoert, is dat een kwetsbaarheid. Want kennelijk kun je in die ViewState bijvoorbeeld een opdracht opnemen om een willekeurige file op de server te (over-) schrijven, zoals "C:\Vuln_Server.txt" (zie https://www.thezdi.com/blog/2020/2/24/cve-2020-0688-remote-code-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys).

Soroush Dalili beschrijft verschillende soorten kwetsbaaarheden m.b.t. die ASP.NET ViewState in https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/.

De kwetsbaarheid hier (CVE-2020-0688) was dat alle Exchange servers by default identieke "geheime" sleutels gebruiken voor encryption en/of signing voor de ViewState van het "Exchange Control Panel" (de ViewState die de browser ontvangt nadat iemand met succes daarop is ingelogd).

In het kader van deze kwetsbaarheid ben ik geïnteresseerd wat er na een clean install in web.config staat m.b.t. die ViewState parameters (die niets met TLS te maken hebben). Uit figure 1 in https://www.thezdi.com/blog/2020/2/24/cve-2020-0688-remote-code-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys blijkt wat ik bedoel (met name 3DES).
01-03-2020, 09:16 door Anoniem
Door Erik van Straten:
Door Anoniem:
Door Erik van Straten: Mijn vragen uit https://security.nl/posting/645957 (aldaar met toelichting), maar die gaan in die thread waarschijnlijk niet meer beantwoord worden en hopelijk hier wel:

Weet iemand:
1) Of ook de laatste versies van OWA / EWS na clean install "SHA1" en/of "3DES" nog voorkomen in web.config?
2) En of dit na de patch van februari veranderd is?
3) Of je, tijdens patchen, ervoor gewaarschuwd wordt dat je op servers in een farm identieke keys en algoritmes moet configureren in web.config? En zo ja, hoe je dergelijke keys veilig genereert?

Clean install Exchange Server 2019 (laatste versie) is dit standaard:

TLS 1.2 is the only version that's enabled by default: Exchange Server 2019 includes important changes to improve the security of client and server connections. The default configuration for encryption will enable TLS 1.2 only and disable support for older algorithms (namely, DES, 3DES, RC2, RC4 and MD5). It will also configure elliptic curve key exchange algorithms with priority over non-elliptic curve algorithms

Bron : https://docs.microsoft.com/en-us/Exchange/new-features/new-features?view=exchserver-2019
Dank voor jouw reactie, maar wat je schrijft heeft betrekking op de communicatie met clients en andere mailservers via TLS-gebaseerde protocollen als ESMTP, IMAP en de https verbinding met een OWA/EWS server.

Niet duidelijk is of dit ook geldt voor wat in web.config staat voor de server-side signing en/of encryption van de ASP.NET "ViewState", informatie die de server (via een https verbinding die hier los van staat) na elke gebruikershandeling op de server naar de browser stuurt (ik wist hier niet zoveel van maar heb me er ondertussen verder in verdiept). Door die ViewState telkens naar de browser te sturen, hoeft de server niet te onthouden wat de gebruiker aan het doen is, zoals reeds ingevulde velden op een webformulier (het is een soort uitgebreide cookie). Die ViewState bevat instructies die de server uitvoert zodra deze die ViewState terugontvangt van de browser.

Nb. door de browser te laten onthouden waar de gebruiker precies was, kan deze door een serverfarm worden bediend en kan er, halverwege de sessie, probleemloos van server worden gewisseld (mits elke server daarin de ViewState kan decrypen en/of de signature checken - waar naast dezelfde sleutels, natuurlijk ook identieke algoritmes voor moeten worden gebruikt).

Probleem: als je zo'n door de browser ontvangen ViewState kunt wijzigen en de server deze toch accepteert en de opdrachten daarin (server-side) uitvoert, is dat een kwetsbaarheid. Want kennelijk kun je in die ViewState bijvoorbeeld een opdracht opnemen om een willekeurige file op de server te (over-) schrijven, zoals "C:\Vuln_Server.txt" (zie https://www.thezdi.com/blog/2020/2/24/cve-2020-0688-remote-code-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys).

Soroush Dalili beschrijft verschillende soorten kwetsbaaarheden m.b.t. die ASP.NET ViewState in https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/.

De kwetsbaarheid hier (CVE-2020-0688) was dat alle Exchange servers by default identieke "geheime" sleutels gebruiken voor encryption en/of signing voor de ViewState van het "Exchange Control Panel" (de ViewState die de browser ontvangt nadat iemand met succes daarop is ingelogd).

In het kader van deze kwetsbaarheid ben ik geïnteresseerd wat er na een clean install in web.config staat m.b.t. die ViewState parameters (die niets met TLS te maken hebben). Uit figure 1 in https://www.thezdi.com/blog/2020/2/24/cve-2020-0688-remote-code-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys blijkt wat ik bedoel (met name 3DES).

Heel erg bedankt weer voor jouw duidelijke beschrijving.
Helaas kan ik dit niet ergens duidelijk vinden.
Enige optie is een clean install uitvoeren en het bekijken, misschien in een test omgeving.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.