
PoC-Exploitcode für CVE-2021-26855
PoC-Exploit-Code für CVE-2021-26855.
Der ursprüngliche Code wurde von https://github.com/GreyOrder entwickelt.
CVE-2021-26855 ssrf einfache Nutzung von golang-Übungen Betroffene Versionen
Exchange Server 2013 älter als CU23
Exchange Server 2016 älter als CU18
Exchange Server 2019 älter als CU7
Nutzungsbedingungen
Diese Schwachstelle unterscheidet sich von früheren Exchange-Schwachstellen. Für diese Schwachstelle ist keine Benutzeridentität erforderlich, die sich anmelden kann. Sie ermöglicht den unbefugten Zugriff auf interne Benutzerressourcen. Sie kann in Verbindung mit CVE-2021-27065 verwendet werden, um Remote-Befehlsausführung zu erreichen.
Voraussetzungen für die Auslösung der Schwachstelle
Schwachstelle auf dem Zielserver
Der Ziel-Exchange-Server muss ein Load-Balancing-Server sein, d. h. es werden gleichzeitig zwei oder mehr Server verwendet
Die Ziel-E-Mail-Adresse. Beachten Sie, dass die Adresse eine E-Mail-Adresse in der Domäne sein muss und keine E-Mail-Adresse im herkömmlichen Sinne. Es gibt einen Unterschied zwischen beiden. Nach Tests ist dies jedoch nicht der Fall, solange es sich um die korrekte E-Mail-Adresse handelt, außer in besonderen Umständen
Der Angreifer muss auch den vollqualifizierten Domänennamen (FQDN) des internen Exchange-Servers ermitteln. Tatsächlich wird nur der Hostname des Servers benötigt, da der Hostname innerhalb der Domäne aufgelöst werden kann.
Von den vier oben genannten Punkten kann der FQDN durch eine NTLM-Typ-2-Nachricht erfasst werden; E-Mail-Adressen können direkt aufgezählt werden. Eine zusätzliche Erklärung zum FQDN: Da ich nur NTLM-Typ-2 verwende, um Systeminformationen zu erfassen, ist der vom Tool standardmäßig erhaltene FQDN die aktuell aufgerufene Maschine. Daher kann die Schwachstelle nicht direkt ausgelöst werden. Sie müssen manuell anhand des FQDN-Namens urteilen und mit -n einen anderen Exchange-Server-Hostnamen angeben. Hinweise zur Verwendung
Um diese Schwachstelle auszunutzen, ist die Verwendung einer Skriptsprache wie Ruby Python praktischer. Sie ist in Golang geschrieben, um Golang zu lernen, daher kann dieses kleine Tool nur als halbfertiges Produkt betrachtet werden. Es wird aktualisiert, wenn Zeit ist.
Dieses Tool unterstützt derzeit die folgenden Funktionen:
Schwachstellenerkennung (nur einfache Prüfung, ob ein Treffer möglich ist, nicht für eine umfassende Erkennung geeignet)
Benutzeraufzählung
Einfaches Lesen von E-Mail-IDs und -Betreffen
E-Mail-Download (aktualisiert, jetzt eine standardmäßige eml-Datei)
Lesen der vom Benutzer gespeicherten Kontakte (beachten Sie, dass es sich nicht um globale Kontakte handelt, sondern nur um die vom Ziel gespeicherten)
Ordnerauswahl, nicht beliebig, Einzelheiten finden Sie unter https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/distinguishedfolderid
Für andere Verwendungszwecke ändern Sie bitte den XML-Inhalt selbst.
Verwendung:
go run CVE-2021-26855-PoC.go -h
-h string erforderlich, Zieladresse oder Domänenname
-U string optional, Liste der zu enumerierenden Benutzer
-d optional, E-Mail herunterladen
-l optional, E-Mail-Liste anzeigen
-n string optional, Angabe des FQDN erforderlich
-t string optional, Verzögerungszeit für Anfragen (Standard "1")
-u string optional, Angabe des Ziels (Standard "administrator")
-c optional, die vom aktuellen Benutzer gespeicherten Kontakte lesen, nicht alle
-f string optional, Angabe des anzuzeigenden Ordners (Standard "inbox")