Aktuell wird eine Zero-Day Schwachstelle in Exchange Server 2013, 2016 und 109 aktiv ausgenutzt. Aktuell gibt es noch kein Sicherheitsupdate für die folgenden Schwachstellen:
- CVE-2022-41040
- CVE-2022-41082
Es gibt aber Abhilfe um einen erfolgreichen Angriff zu vermeiden. Um die Ausnutzung der Schwachstelle zu verhindern, kann eine Regel für das Feature URL Rewrite erstellt werden. Dazu wird im IIS Manager zunächst das Autodiscover Verzeichnis der Default Web Site ausgewählt:
Unter dem Punkt „Add Rules…“ kann dann eine neue Regel erstellt werden:
Als Vorlage muss „Request blocking“ ausgewählt werden:
Im Feld „Pattern (URL Path“ wird nun der folgende String eingegeben:
(?=.*autodiscover)(?=.*powershell)
Hinweis: Das Pattern wurde in letzter Zeit mehrfach durch Microsoft angepasst.
Das Feld „Using“ muss von „Wildcard“ auf „Regular Expressions“ umgestellt werden:
Die neu hinzugefügte Regel wird nun aufgeklappt und bearbeitet;
Im Feld „Condition input“ wird nun {URI} zu {REQUEST_URI} geändert:
Die Regel ist nun fertig und verhindert den aktuellen Angriff. Sobald ein Sicherheitsupdate verfügbar ist, sollte dies zeitnah eingespielt werden.
Authentifizierte Benutzer mit Zugriff auf PowerShell Remoting könnten versuchen die Schwachstelle CVE-2022-41082 auszunutzen. Da PowerShell Remoting allerdings hoffentlich in keiner Umgebung aus dem Internet zu erreichen ist, beschränkt sich hier der Angriffsvektor auf das lokale Netzwerk. Um auch diesen Angriff zu erschweren, können die beiden Port für PowerShell Remoting an der Windows Firewall blockiert werden:
Als Aktion wird „Block the connection“ ausgewählt:
Der Regel muss nun noch einem Namen bekommen und kann dann gespeichert werden:
Unter den folgenden beiden Links finden sich weitere Informationen zu der Schwachstelle:
- https://gteltsc.vn/blog/warning-new-attack-campaign-utilized-a-new-0day-rce-vulnerability-on-microsoft-exchange-server-12715.html
- https://techcommunity.microsoft.com/t5/exchange-team-blog/customer-guidance-for-reported-zero-day-vulnerabilities-in/ba-p/3641494
Der erste Link enthält auch Informationen, wie ein bereits erfolgreicher Angriff festgestellt werden kann.
Update 11.10.2022: Das Pattern wurde durch Microsoft mehrfach aktualisiert. Dieser Beitrag enthält das aktuelle Pattern.
Weiß zufällig jemand welchen Statuscode der IIS bei erfolgreicher Exploitation und beim Testen der Schwachstelle zurück gibt? Wir haben zwei Einträge die zu dem Suchpatter passen, jedoch mit einem Statuscode 401, den wir als gescheiterten Versuch einstufen. Gibt es da Zustimmung? Das Suchpattern von Microsoft scheint sich ja auf einen Statuscode 200 festzulegen…
Backup eingespielt.
Hat alles wieder funktioniert.
ECP/OWA Intern und Extern
Mail Empfang ebenfalls Intern/Extern.
EX Mgmt Shell auch.
Windows Updates, Reboot.
Funktioniert noch immer alles.
Anpassung Regel auf => {UrlDecode:{REQUEST_URI}} und (?=.*autodiscover)(?=.*powershell)
Reboot
Funktioniert noch immer alles.
Installation via EX Mgmt Shell => Exchange2016-KB5019077-x64-de (CU Update 23KB5019077)
Reboot
Hat alles wieder funktioniert.
In der Doku steht noch bei der Regel {REQUEST_URI} – hier {UrlDecode:{REQUEST_URI}} – was wäre korrekt?
Also es starten auch die Dienste nicht:
PS C:\Users\Administrator> Get-Service *Exchange*
Status Name DisplayName
—— —- ———–
Stopped MSExchangeADTop… Microsoft Exchange Active Directory…
Stopped MSExchangeAntis… Microsoft Exchange-Antispamupdate
Stopped MSExchangeCompl… Microsoft Exchange-Compliancedienst
Stopped MSExchangeDagMgmt Microsoft Exchange DAG-Verwaltung
Stopped MSExchangeDelivery Microsoft Exchange-Postfachtranspor…
Stopped MSExchangeDiagn… Microsoft Exchange-Diagnose
Stopped MSExchangeEdgeSync Microsoft Exchange EdgeSync
Stopped MSExchangeFastS… Microsoft Exchange-Suche
Stopped MSExchangeFront… Microsoft Exchange Frontend Transport
Stopped MSExchangeHM Microsoft Exchange-Integritätsdienst
Stopped MSExchangeHMRec… Microsoft Exchange-Integritäts-Mana…
Stopped MSExchangeImap4 Microsoft Exchange IMAP4
Stopped MSExchangeIMAP4BE Microsoft Exchange-IMAP4-Back-End
Stopped MSExchangeIS Microsoft Exchange Information Store
Stopped MSExchangeMailb… Microsoft Exchange-Postfach-Assiste…
Stopped MSExchangeMailb… Microsoft Exchange-Postfachreplikation
Stopped MSExchangeMitig… Microsoft Exchange-Notfallschutzdienst
Stopped MSExchangeNotif… Microsoft Exchange-Benachrichtigung…
Stopped MSExchangePop3 Microsoft Exchange POP3
Stopped MSExchangePOP3BE Microsoft Exchange-POP3-Back-End
Stopped MSExchangeRepl Microsoft Exchange-Replikation
Stopped MSExchangeRPC Microsoft Exchange-RPC-Clientzugrif…
Stopped MSExchangeServi… Microsoft Exchange-Diensthost
Stopped MSExchangeSubmi… Microsoft Exchange-Postfachtranspor…
Stopped MSExchangeThrot… Microsoft Exchange-Einschränkungen
Stopped MSExchangeTrans… Microsoft Exchange-Transport
Stopped MSExchangeTrans… Microsoft Exchange-Transportprotoko…
Stopped MSExchangeUM Microsoft Exchange Unified Messaging
Stopped MSExchangeUMCR Microsoft Exchange Unified Messagin…
Stopped SearchExchangeT… Tracing Service for Search in Excha…
Stopped vmickvpexchange Hyper-V-Datenaustauschdienst
Stopped wsbexchange Microsoft Exchange Server Extension…
PS C:\Users\Administrator>
Ich habe jetzt das Update Installiert (Exchange2016-KB5019077-x64-de) und d. Server Neugestartet.
Jetzt Starten die EX Dienste wieder bis auf ein paar.
Der MS EX-Benachrichtungsbroker auf Lokaler Computer konnte nicht gestartet werden.
Fehler 1068:
Dann habe ich ausgeführt:
[PS] C:\Users\ExAdmin\Desktop>.\EOMTv2.ps1
AUSFÜHRLICH: Checking if EOMTv2 is up to date with https://aka.ms/EOMTv2-VersionsUri
AUSFÜHRLICH: Starting EOMTv2.ps1 version 22.10.07.2029 on SVRAIGEX
AUSFÜHRLICH: EOMTv2 precheck complete on „Servername“
AUSFÜHRLICH: Applying mitigation on „Servername“
AUSFÜHRLICH: Starting mitigation process on „Servername“
AUSFÜHRLICH: IIS URL Rewrite Module is already installed on „Servername“
AUSFÜHRLICH: Applying URL Rewrite configuration to „Servername“ :: Default Web Site
AUSFÜHRLICH: Mitigation complete on „Servername“ :: Default Web Site
AUSFÜHRLICH: EOMTv2.ps1 complete on „Servername“, please review EOMTv2 logs at
C:\Users\ExAdmin\AppData\Local\Temp\EOMTv2\EOMTv2.log and the summary file at C:\EOMTv2Summary.txt
Neustart
AUSFÜHRLICH: Verbindung mit „Servername“ wird hergestellt.
New-PSSession : „Servername“ Beim Verbinden mit dem Remoteserver „Servername“ ist folgender Fehler aufgetreten: Der WinRM-Client hat einen Status in Bezug auf einen
HTTP-Serverfehler (500) empfangen, aber der Remotedienst hat keine anderen Informationen zur Fehlerursache bereitgestellt. Weitere Informationen finden Sie im Hilfethema
„about_Remote_Troubleshooting“.
In Zeile:1 Zeichen:1
+ New-PSSession -ConnectionURI „$connectionUri“ -ConfigurationName Micr …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme….RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : WinRMHttpError,PSSessionOpenFailed
Habe ich etwas verpasst oder falsche gemacht ?
Es wurde heute nur der Server Neugestartet, seitdem die Fehler.
[PS] C:\Windows\system32>winrm e winrm/config
WSManFault
Message
ProviderFault
WSManFault
Message = Der WS-Verwaltungsdienst kann die Anforderung nicht verarbeiten. Der Ressourcen-URI unterstützt den Vorgang „Enumerate“ nicht.
Fehlernummer: -2144108495 0x80338031
Der WS-Verwaltungsdienst kann die Anforderung nicht verarbeiten, weil der Aktions-URI der WS-Adressierung in der Anforderung nicht mit der Ressource nicht kompatibel.
[PS] C:\Windows\system32>
Ich bin die Anleitung nochmal durch bzw. eintrag v. Dennis.
Jetzt bekomme ich :
AUSFÜHRLICH: Verbindung mit „Servername“ wird hergestellt.
New-PSSession : „Servername“ Beim Verbinden mit dem Remoteserver „Servername“ ist folgender Fehler aufgetreten: Der WinRM-Client hat einen Status in Bezug auf
einen HTTP-Serverfehler (500) empfangen, aber der Remotedienst hat keine anderen Informationen zur Fehlerursache bereitgestellt. Weitere Informationen finden Sie im Hilfethema
„about_Remote_Troubleshooting“.
In Zeile:1 Zeichen:1
+ New-PSSession -ConnectionURI „$connectionUri“ -ConfigurationName Micr …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme….RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : WinRMHttpError,PSSessionOpenFailed
Ich habe das selbe Problem wie @Michael.
Heute Server 2016 mit EX2016 Neugestartet und keine Shell mehr.
AUSFÜHRLICH: Verbindung mit „Servername“ wird hergestellt.
New-PSSession : [„Servername“] Beim Verbinden mit dem Remoteserver „Servername“ ist folgender Fehler aufgetreten: Der WinRM-Client kann die Anforderung nicht verarbeiten. Der Inhaltstyp der HTTP-Antwort vom Zielcomputer kann nicht
ermittelt werden. Der Inhaltstyp fehlt oder ist ungültig. Weitere Informationen finden Sie im Hilfethema „about_Remote_Troubleshooting“.
In Zeile:1 Zeichen:1
+ New-PSSession -ConnectionURI „$connectionUri“ -ConfigurationName Micr …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme….RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : -2144108297,PSSessionOpenFailed
Fehler beim Herstellen der Verbindung zu einem Exchange-Server am aktuellen Standort.
Geben Sie den vollqualifizierten Domänennamen des Servers ein, zu dem eine Verbindung hergestellt werden soll.:
Hallo zusammen,
Microsoft hat eine Aktualisierung für den String Wert herausgegeben.
Siehe hierzu:
https://msrc-blog.microsoft.com/2022/09/29/customer-guidance-for-reported-zero-day-vulnerabilities-in-microsoft-exchange-server/
Beste Grüße
Dennis
wenn ich die regeln anwende, geht unser ganzer EXC in die KNIE.
OWA/ECP Outlook clients haben keine connection mehr..
Mit aktivierter Regel funktioniert bei uns die Exchange Management Shel auf dem Server nicht mehr:
Win 2012R2, Exchange 2013 full patched. Nach Löschung der Regel ist alles OK.
Der WinRM-Client hat einen Status in Bezug auf einen HTTP-Serverfehler (500) empfangen, aber der Remotedienst hat keine anderen Informationen zur Fehlerursache bereitgestellt.
Weitere Informationen finden Sie im Hilfethema
„about_Remote_Troubleshooting“.
In Zeile:1 Zeichen:1
+ New-PSSession -ConnectionURI „$connectionUri“ -ConfigurationName Microsoft.Excha …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme….RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : WinRMHttpError,PSSessionOpenFailed
Fehler beim Herstellen der Verbindung zu einem Exchange-Server am aktuellen Standort.
Geben Sie den vollqualifizierten Domänennamen des Servers ein, zu dem eine Verbindung hergestellt werden soll.:
Habe noch festgestellt, dass sich die Regel auch in der „Exchange Backend Site“ auf dem IIS einträgt. „Default Web Site“ und „Exchange Backend“ sind miteinender verknüpft.
Das ist auf einem Exchange 2016 nicht der Fall, hier funktioniert ja auch alles danach.
Hallo,
wir haben bei uns bisher den Workaround noch nicht angepasst, denn Zitat heise.de: „Eine Bestätigung der besseren Wirksamkeit der angepassten Regel durch weitere IT-Sicherheitsexperten findet sich derzeit nicht.“
Wir halten allerdings die Augen und Ohren offen…
Grüße
PS: Danke Franky für Deine Arbeit!
Nun wurde auch auf Heise die Umgehbarkeit der Maßnahmen aus der letzten Woche bestätigt und empfohlen, die Rewrite Regel anzupassen: https://www.heise.de/news/Exchange-Server-Zero-Day-Bisheriger-Workaround-unzureichend-7283072.html?wt_mc=rss.red.security.alert-news.atom.beitrag.beitrag
GTSC hat am 3.10. hierzu ein Update geposted und den Regex auf “.*autodiscover\.json.*Powershell.*” angepasst – hat sich das schon jemand näher angesehen?
Quelle: https://gteltsc.vn/blog/warning-new-attack-campaign-utilized-a-new-0day-rce-vulnerability-on-microsoft-exchange-server-12715.html
Auf meinem Exchange2019 auf Server2022 ist auch über Nacht eine EEMS M1.1 PowerShell-inbound automatisch eingebunden worden.
Moin zusammen,
ist der Angriff eigentlich auch möglich, wenn 443 in der FW closed ist ?
Also kein Owa ohne VPN möglich ist.
Zweitens, ich habe gestetern irgendwo gelesen, das ein authentifizierter Account mit Admin Rechten notwendig ist, um den Angriff auszuführen.
Hat sich das bewahrheitet ?
Herzlichen Dank!
Best
Lothar
PS: Neustart des Exchange ist erst später möglich, werde das aber damit auch noch versuchen…
Auf allen EX2016er Servern ist inzwischen die Regel von EM angelegt, dort steht REQUEST-URI…
Moin,
Nachdem ich gestern meine 2016 Exchange bearbeitet hatte schaute ich heute morgen nach den 2019er. Hier gab es bereits eine Regel EEMS M1.1 PowerShell – inbound. Es scheint als hätte Microsoft die Regel verteilt.
Per Powershell liefert: Get-ExchangeServer | Format-List Name,MitigationsApplied,MitigationsBlocked
folgendes Ergebnis: MitigationsApplied : {M1.1, PING1}
Auf die schnelle heute morgen habe ich noch nichts weiter dazu gefunden.
LG
Same thing here, my 2016 were not having the Mitigation, but the 2019 did already (and their EOMT just added a second same rule)
Hallo, bei mir gibt es mit der Regel, auch mit der Version von MS grosse Probleme mit Autodiscover. O365 an einem Ex2013 aktuelles CU und URL_Rewrite (2012R2 Server), der Chef muss auf die Kalender diverser AD-Mitarbeiter zugreifen. Mit Vollzugriff automatische Einbindung. Bislang… Jetzt erscheinen die zusätzlichen Accounts für vielleicht 30 Sekunden und verschwinden dann wieder.
Ohne die Regel klappt es… Habe schon beide Varianten REQUEST_URL und REQUEST_URI versucht, beides ohne Erfolg….
Hat jemand eine Idee?
Auf einen MS Patch warten ..
Moin zusammen,
für alle die einen KEMP einsetzen. Hier gibt es eine einfache Lösung, die Exchange-Server abzusichern:
https://support.kemptechnologies.com/hc/en-us/articles/9548819650701
Auch hier auf Exchange 2019 wurde der Rewrite bereits automatisch durch EM gesetzt.
Guten Morgen,
auf unserem 2016er hat der EM-Service heute Nacht die Regel auf der Default Website automatisch erstellt.
Na endlich…
VG
Gero
Das ist bei mir auch der Fall (EX2016 auf SRV2016).
In der MS-Regel ist der „Aktionstyp“ anders als bei der manuell aus den div. Anleitungen erstellten Regel.
Vorher war es „Benutzerdefinierte Antwort“ mit einem 403-Statuscode, in der EEMS-Regel ist es jetzt „Anforderung abbrechen“
Deswegen liefert, soweit ich es verstehe, jetzt auch die Test-URL
https://autodiscover.lbzb.de/autodiscover/autodiscover.json?@evil.com/powershell&Email=autodiscover/autodiscover.json%3f@evil.com
keine 403-Antwort mehr zurück sondern (bei mir) den folgende Fehler: ERR_HTTP2_PROTOCOL_ERROR
Microsoft hat nochmal korrigiert!
https://msrc-blog.microsoft.com/2022/09/29/customer-guidance-for-reported-zero-day-vulnerabilities-in-microsoft-exchange-server/
Es muss die komplette default website mit der Regel versehen werden, nicht nur autodiscover…
Also bei mir mit Exchangeserver 2019 mit aktueller CU + SU inkl. Erweitertem Schutz und unter Pattern mit Eintrag:
.*autodiscover\.json.*\@.*Powershell.* wie oben im Bild, funktioniert alles tadellos.
Die Fehlermeldung Error403 über die Test URL kommt wie es soll.
Handy`s funktionieren noch.
Neue Postfächer mit Einbindung unter Outlook über Autodiscover funktionieren auch.
Wenn der Exchangeserver mit allen Updates und Patches aktuell ist, sollte es auch funktionieren.
Muss ich das URL Rewrite Modul für Exchnge 2013 extra dafür nachinstallieren?
Wenn ich den Workaround so anwende geht auch bei mir kein Autodiscover mehr. Interessanterweise muss ich auch gleich die ganze Regel löschen damit es wieder funktioniert. Ein Deaktivieren der Regel reicht nicht.
Ich habe wie beschrieben eine Regel mit dem Pattern .*autodiscover\.json.*\@.*Powershell.* und Regular Expression angelegt und als Condition Input {REQUEST_URI} eingetragen.
Beim Pattern steht bei mir auch ein .* und nicht wie im Bild nur ein *
Beim Server handelt es sich um einen deutschen Exchange 2013 .
Hat jemand eine Idee was ich falsch mache?
Das war bei mir in einer Umgebung auch so … Exchange 2016 gleicher Patchstand, identische Konfig… ich hatte die Regel wie Du auch zunächst nur deaktiviert was aber nicht ausreichte … habe gerade den Exchange neugestartet … jetzt funktionieren die Outlook Profile wieder…
Danke für den Hinweis!
Ich hatte nur den IIS neugestartet, aber nicht den kompletten Server. Nun scheint alles zu passen.
Hallo, wir setzen bei uns im Unternehmen 2 Exchange Server ein. Wir haben einen Reverse Proxy vorgeschalten. Auf einem der Exchange Server erhalte ich beim ausführen des Befehls folgende Ausgaben angezeigt:
C:\inetpub\logs\LogFiles\W3SVC2\u_ex220319.log:75442:2022-03-19 17:57:16 f_4f::12_7f:f5_5:e_77:_d4e%3 POST /Powershell X
-Rps-CAT=VgEAVAd_aW5sb3dzTwBBC_tlcmJlcm9z_B9BZG1pbmlzdHJhdI9_QG1lZGlhAW50ZXJmYWNlLmR_VS1TLTEtNS0yMS0_OTM2Nzg3Nzk3LTMxMz
AtNj34TkktMzEzNTI1_jg5NC_1MABHAQAAAAcADDDMUy0xL_UtMzItNTQ0_QABAAA=&Email=autodiscover/autodiscover.json%3F@xuhnf.zvc
444 administrator@firma.de f_4f::12_7f:f5_5:e_77:_d4e%3 Python+PSRP+Client – 200 0 0 2
Alle Einträge sind vom 19.03.22?!?
Leider ist unser Admin heute nicht erreichbar. Was mich wundert, ich finde im IIS Default Pool kein URL Rewrite? Exchange Version 15.1 (Build 2106.2). Ich frage mich gerade ob ich nun ohne Admin https://www.iis.net/downloads/microsoft/url-rewrite installiere und den Workaround durchführen soll. Was denkt Ihr?
Den Admin würde ich sofort entlassen. Bei diesem Patchstand ist die heutige Sicherheitslücke dein kleinstes Problem.
In dem Screenshot wo die {REQUEST_URI} eingetragen wird sind die Hochkommas bei .*autodiscover\.json.*\@.*Powershell.* noch vorne und hinten angefügt. Das sollte noch korrigiert werden um möglicherweise keinen zu verunsichern.
Warum steht bei Microsoft das anders??
https://msrc-blog.microsoft.com/2022/09/29/customer-guidance-for-reported-zero-day-vulnerabilities-in-microsoft-exchange-server/
10. Change the Condition input from {URL} to {UrlDecode:{REQUEST_URI}} and then click OK.
{UrlDecode:{REQUEST_URI}}
RegEx-Notation erkennt man an der Kombi: “.*”
PUNKT steht für: Any character except linebreak
STERNCHEN steht für: Match zero or more of the preceding token.
Kombi aus PUNKT und STERNCHEN ist dann identisch mit einem STERNCHEN wenn es WILDCARD-Notation wäre.
da ist wohl ein Kleiner Tipfehler:
Aktuell wird eine Zero-Day Schwachstelle in Exchange Server 2013, 2016 und 109 aktiv ausgenutzt. Aktuell gibt es noch kein Sicherheitsupdate für die folgenden Schwachstellen:
Sollte doch eher sowas ein?
Aktuell wird eine Zero-Day Schwachstelle in Exchange Server 2013, 2016 und 2019 aktiv ausgenutzt. Aktuell gibt es noch kein Sicherheitsupdate für die folgenden Schwachstellen:
Ich habe das als Shell Skript gegen Mittag schon bei GüntherB in die Kommentare geschrieben.
https://www.borncity.com/blog/2022/09/30/exchange-server-werden-ber-0-day-exploit-angegriffen-29-sept-2022/#comment-132972
Das sieht dort nicht schön aus, aber kann man wenigstens mit StrgC + StrgV sich korrekt rauskopieren. Dort stehen beide Versionen – regex und Platzhalter – funktionierend. Ist kein Drama wenn beide aktiv sind.
Nach ausführen des Workarounds funktioniert bei mir überhaupt kein Autodiscover mehr (Outlook intern und extern, Smartphones etc.)
Exchange 2016 mit Outlook 2016 und Outlook 365, Android Smartphones
Prüf die Regel, evtl. fehlt wo ein „.“ am Anfang.
Das Kann passieren wenn es zuerst als Wildcard angelegt wird und später auf RegEx geändert wird.
MS sagt jetzt auch, es soll „RegEx“ und nicht „WildCard“ sein.
https://techcommunity.microsoft.com/t5/exchange-team-blog/customer-guidance-for-reported-zero-day-vulnerabilities-in/ba-p/3641494
(s. Kommentare)
Ja, dafür hat MS jetzt Anführungszeichen um die RegEx, was wohl auch falsch ist, oder?
Jetzt sind auch die „“ weg ;-)
Jetzt bin ich nicht so der RegEx-Experte, aber muss bzw. soll das Pattern nicht
.*autodiscover\.json.*\@.*Powershell.*
lauten (Das erste Zeichen des Pattern ist ein „.“ und nicht ein „*“)?
Steht das nicht genau so oben in der Anleitung?
Ja, tut es. Mein Post war ein Hinweis für „Christian“, der in seiner Regel den „.“ am Anfang nicht drin hatte.
Wenn Autodiscover nicht im Internet Publiziert ist, sehe ich es richtig das der Handlungsbedarf nicht so extrem kritisch ist oder?
Also wenn ich eine Regel mit „Regex“ erstelle und Pattern „*autodiscover\.json.*\@.*Powershell.*“ funktioniert Autodiscover danach überhaupt nicht mehr. Stelle ich um auf „Wildcard“ greift die Regel nicht mehr (insofern auch logisch, ist ja auch klar eine Regular expression…).
Ich habe jetzt eine Wildcard-Regel mit Pattern „*autodiscover.json*@*Powershell*“ erstellt. Das scheint zu funktionieren.
Getestet mit Aufrufen nach https://owa.example.local/Autodiscover/autodiscover.json@PowerShell und https://owa.example.local/autodiscover/autodiscover.json\?@evil.com/powershell\&Email\=autodiscover/autodiscover.json%3f@evil.com
Bei dem Regex Pattern fehlt ja auch der „.“ vor dem ersten „*auto…“
Stimmt. Und auch beim „Pattern“-Feld in der eigentlichen Regel (und nicht in den Conditions) stand „*“ und nicht „.*“.
Wohl weil ich initial die Regel als Wildcard erstellt hatte und danach auf Regex geswitcht. In dem Fall muss man auch das Pattern anpassen. Und ebenfalls entfernt IIS bei „Wildcard“-Regeln den von dir erwähnten Punkt am Anfang beim Condition-Pattern automatisch.
Wie auch immer, jetzt funktionierts :)
Update: ich habe die Regeln nochmals gelöscht und neu angelegt, funktioniert jetzt. Im Gegensatz zu dem Screenshots steht bei mir aber als Muster .*
Funktioniert nun das Automatische einrichten in Outlook wieder?
Ja, läuft wieder.
Die Screenshots oben sind teilweise noch falsch, dort steht noch die Anführungszeichen mit drin.
Wenn das mit .*usw eingetragen wird sollte das passen.
Bei RegEx müsste der Match-Wert der Regel .* lauten und nicht nur *, wenn man die Regel direkt als RegEx anlegt. Wenn man von Wildcard auf RegEx wechselt, nachdem sie schon erstellt war, ändert sich das nicht automatisch (was bei den Screenshots wohl der Fall war?).
Mahlzeit,
die UrlReWrite Regel macht bei mir die Einrichtung eines neuen Mailkontos im Outlook kaputt, Autodiscover findet den User und Server, bleibt aber am 3. Punkt („Am E-Mail Server anmelden“) hängen.
„Fehler beim Anmelden. Überprüfen Sie die Netzwerkverbindung… Outlook muss im Onlinemodus…“
Server 2012 R2 mit Exchange 2013, letztes CU und aktuelles Patchlevel.
Deaktiviere ich die Regel geht die Einrichtung wieder problemlos.
Tag zusammen,
habe es eben ausprobiert. Bei uns kein Problem. Neues Konto lässt sich normal einrichten. Trotz der ReWrite Regel.
Ebenfalls Server 2012R2 mit Exchange 2013 latest CU und Patch.
Moin Moin,
bei uns auch, trotz der ReWrite Regel, bis jetzt noch kein Problem mit der Einrichtung des Kontos festgestellt!
Mit Exchange 2016 als auch mit Exchange 2019 latest CU und Patch ausprobiert.
Kann ich bestätigen. Die Probleme mit Anmeuldung etc. kommt von einem Fehlerhaften Eintrag.
Evtl. fehlt ein „.“ am Anfang.
Für die Core Server Leute hier das ganze per PS – gerne verbessern !
$site = „iis:\sites\Default Web Site\Autodiscover“
$filterRoot = „system.webServer/rewrite/rules/rule[@name=’CVE-2022-41040′]“
Clear-WebConfiguration -pspath $site -filter $filterRoot
Add-WebConfigurationProperty -pspath $site -filter „system.webServer/rewrite/rules“ -name „.“ -value @{name=’CVE-2022-41040′ + $_ ;patternSyntax=’Regular Expressions‘;stopProcessing=’True‘}
Set-WebConfigurationProperty -pspath $site -filter „$filterRoot/match“ -name „url“ -value „.*“
Set-WebConfigurationProperty -pspath $site -filter „$filterRoot/conditions“ -name ‚.‘ -value @{input='{REQUEST_URI}‘; matchType=’0′; pattern=‘.*autodiscover\.json.*\@.*Powershell.*‘; ignoreCase=’True‘; negate=’False‘}
Set-WebConfigurationProperty -pspath $site -filter „$filterRoot/action“ -name „type“ -value „CustomResponse“
Set-WebConfigurationProperty -pspath $site -filter „$filterRoot/action“ -name „statuscode“ -value 403
Anführungszeichen und Hochkommata hat es zerlegt.
Zeichen angepasst und Firewallregel ergänzt:
$site = „iis:\sites\Default Web Site\Autodiscover“
$filterRoot = „system.webServer/rewrite/rules/rule[@name=’CVE-2022-41040′]“
Clear-WebConfiguration -pspath $site -filter $filterRoot
Add-WebConfigurationProperty -pspath $site -filter „system.webServer/rewrite/rules“ -name „.“ -value @{name=’CVE-2022-41040′ + $_ ;patternSyntax=’Regular Expressions‘;stopProcessing=’True‘}
Set-WebConfigurationProperty -pspath $site -filter „$filterRoot/match“ -name „url“ -value „.*“
Set-WebConfigurationProperty -pspath $site -filter „$filterRoot/conditions“ -name ‚.‘ -value @{input='{REQUEST_URI}‘; matchType=’0′; pattern=‘.*autodiscover\.json.*\@.*Powershell.*‘; ignoreCase=’True‘; negate=’False‘}
Set-WebConfigurationProperty -pspath $site -filter „$filterRoot/action“ -name „type“ -value „CustomResponse“
Set-WebConfigurationProperty -pspath $site -filter „$filterRoot/action“ -name „statuscode“ -value 403
New-NetFirewallRule -DisplayName „Block PowerShell Remoting“ -Direction Inbound -LocalPort 5985, 5986 -Protocol TCP -Action Block
Ah, verstehe, des zerhauts durch den Kommentar automatisch.
Trotzdem danke, war eine große Hilfe!
Danke an Franky!!!
Gab es denn schon nachgewiesene Intrusions?
Danke!
Der in der Anleitung mitgelieferte String sieht auch stark nach einer RegEx aus!
Danke für den Super Artikel!!
Frage: Muss ein IIS Reset durchgeführt werden, nachdem die Regel erstellt wurde?
Für alle die sich noch wundern, ob nun REGEX oder Wildcard:
Die Regel funktioniert nur mit RegularExpressions!
Zu testen via Aufruf von:
https://mail.domain.com/Autodiscover/autodiscover.json@PowerShell
Wird bei einer Regel als Wildcard NICHT geblockt!
Nach der URL Rewrite Regel kann ich mich von Admin PCs nicht per Powershell zum Exchange verbinden.
Geht das noch jemanden so? Ist das gewollt?
Lokale auf dem Exchange Servern geht alles.
Wenn ein deutsches Exchange installiert ist, sollte die [REQUEST_URI] durch die deutsche Variable ersetzt werden, oder täusche ich mich?
Wie wäre die deutsche Variable? Zur Sicherheit würden sich ja mehrere Einträge anlegen lassen..
Ich glaube das ist ein Fehler hier in der Anleitung.
Im Original steht nicht, dass URI in REQUEST_URI geändert werden soll. Da steht nur REQUEST_URI eintragen. Im Englischen steht da auch URL.
Danke Franky für die schnelle Berichterstattung!!
Und das an deinem Geburtstag… HAPPY BIRTHDAY! :)
Wenn ich mich recht erinnere, basiert der Mitigation Service auf dem URL Rewrite Modul und dieses wurde erst mit dem letzten oder vorletzten CU installiert (daher evtl. die Ungleichheit ob das Modul installiert ist oder nicht)
Tipp für mehrere Exchange Server:
1x Regelwerk exportieren mit dem guten alten app cmd
%systemroot%\system32\inetsrv
appcmd list config „Default Web Site/Autodiscover“ -section:system.webServer/rewrite/rules -xml > rules.xml
Und auf den weiteren Servern dann
appcmd set config „Default Web Site/Autodiscover“ -in < rules.xml
Hier stehts ja :)
https://www.frankysweb.de/exchange-emergency-mitigation/
wenn ich den Port 5985 blockiere können unsere beiden Exchange untereinander nicht mehr kommunizieren?
2022-09-30 11:13:50 DROP TCP 10.10.1.44 10.10.2.44 40225 5985 48 S 2707299551 0 8192 – – – RECEIVE
vermutlich können auch andere Server (JOB Server) im Unternehmen keine PS mehr am Exchange ausführen. Das fällt ja sicher auch unter Remote PS
Das würde mich auch interessieren, hier ist auch kein UrlRewrite installiert.
Für Server 2012 R2 kann URL-Rewrite hier heruntergeladen werden:
https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads
Ich finde es schon wieder fatal, dass es zwei unterschiedliche Workarounds gibt..
Wir haben stand jetzt erstmal nur den Eintrag von GTSC gesetzt, sprich auch so wie Franky den Artikel hat.
Beobachten aber weiter ob das ausreicht oder hier doch der MS eintrag muss
Der String ist eindeutig Regex-Syntax, womit der Fall ziemlich klar ist.
Deshalb muss man als guter Admin etwas Grundlagenwissen in allen Bereichen mitbringen um sowas dann richtig einordnen zu können. Auch den Powershell-Befehl zur Überprüfung eines möglichen Angriffs sollte man zumindest grundlegend verstehen, um dann das Ergebnis einzuordnen. In dem Fall also -> kein Ergebnis = kein verdächtige Aktivität im Log
Inzwischen hat auch Microsoft seine Anleitung übrigens auch angepasst, so dass jetzt überall Regex angegeben ist.
Vielen Dank für die Info und die Lösung.
Sollte nach den Einträgen ein iisrestart gemacht werden oder wird die Regel sofort aktiv?
Viele Grüße
Katrin
Und ist nicht eigentlich für genau solche Fälle die „Exchange Emergency Mitigation“ zuständig, welche solche Regeln eigenständig setzt?
Oder habe ich die EM falsch verstanden?
Wenn Url rewrite auf einem Server nicht installiert ist, sollte die Lücke kein Problem sein oder?
Das Modul URL rewrite sollte installiert sein, dies wird benötigt um den Workaround anzuwenden.
Heißt -> Installieren des Moduls. (Achtung IIS wird hier neustarten und die Clients bekommen kurzen disconnect)
Danach die Regel anwenden, wie beschrieben.
Doch! Wenn du IISURL Rewrite nicht installiert hast, ist dein Exchange 2016/2019 stark veraltet oder du hast noch Exchange 2013. In allen Fällen dafür sorgen, dass du auf aktuellstem CU und Security Updates bist und danach im IIS URL Rewrite (den du bei Exchange 2013 so oder so installieren musst) den Workaround konfigurieren.
Danke @franky – wie immer mega schnell.
Es ist korrekt, dass es ohne “ “ eingetragen werden muss.
Siehe auch der MS Artikel:
https://msrc-blog.microsoft.com/2022/09/29/customer-guidance-for-reported-zero-day-vulnerabilities-in-microsoft-exchange-server/
Hier wird noch diskutiert, ob man WILDCARD oder REGULAR EXPRESSION verwenden soll:
https://techcommunity.microsoft.com/t5/exchange-team-blog/customer-guidance-for-reported-zero-day-vulnerabilities-in/ba-p/3641494
Ich würde hier pragmatisch erstmal beides eintrage, bis es konkrete Infos gibt.
Vielen Dank Franky!
Unter Exchange 2016 CU23 auf den ersten Blick keine Probleme nach dem Work-a-round.
Hallo,
Be8i MS sind die „-Anführungszeichen aber nciht dabei!?
https://msrc-blog.microsoft.com/2022/09/29/customer-guidance-for-reported-zero-day-vulnerabilities-in-microsoft-exchange-server/
MFG
Harald
Hallo Frank!
1. Frage: WARUM trägst du den Ausdruck .*autodiscover\.json.*\@.*Powershell.* mit „“ ein ?
2. Frage: MS Doku widerspricht der Doku aus Vietnam, denn MS fügt die Regel als Wildcard ein und die Vietnamesen als Reg.Expr. ! Was ist nun richtig?
Sollten die Anführungzeichen beim Pattern nicht excluded werden?
lt https://msrc-blog.microsoft.com/2022/09/29/customer-guidance-for-reported-zero-day-vulnerabilities-in-microsoft-exchange-server/
“ Add String “.*autodiscover\.json.*\@.*Powershell.*” (excluding quotes) and click OK. „
Stimmt, das war mein Fehler. Der Artikel ist korrigiert.
Danke für den Hinweis and Michael und Robert.
Beste Grüße,
Frank
Hallo Frank,
ich denke, die Hochkommas sind nicht einzutragen:
https://gteltsc.vn/blog/warning-new-attack-campaign-utilized-a-new-0day-rce-vulnerability-on-microsoft-exchange-server-12715.html#:~:text=Temporary%20containment%20measures
Richtig wäre dann:
.*autodiscover\.json.*\@.*Powershell.*
korrekt?
Weiterhin: nicht Wildcards sondern Regular Expressions
auch korrekt?!
Gruß Christian
Herzlichen Dank!