
Bösartiger DOCX-Generator, der CVE-2021-40444 (Microsoft Office Word RCE) mit CAB-basiertem DLL-Seitenladen und CAB-losen RAR/WSF-Angriffsketten für Penetrationstests ausnutzt.
Böswilliger DOCX-Generator zur Ausnutzung von CVE-2021-40444 (Microsoft Office Word Remote Code Execution), funktioniert mit beliebigen DLL-Dateien.
Obwohl viele PoCs bereits im Internet verfügbar sind, dachte ich mir, ich versuche mich an der Waffenfähigkeit dieser Schwachstelle, da das, was ich verfügbar fand, wertvolle Informationen vermissen ließ, die es wert sind, geteilt zu werden, auch in Anbetracht der Tatsache, dass Microsoft bereits einen Patch für diese Schwachstelle veröffentlicht hat.
Bisher sind die einzigen wertvollen Ressourcen, die ich gesehen habe, um einen voll funktionsfähigen Generator zu erstellen:
Die obigen Ressourcen skizzieren viele der Anforderungen, die für die Erstellung einer vollständigen Kette erforderlich sind. Um nicht zu viel unnötige Informationen zu wiederholen, fasse ich nur die relevanten Details zusammen.
Es gibt eine ganze Reihe von übersehenen Anforderungen, damit dieser Exploit funktioniert, was dazu führte, dass selbst gute PoCs wie der von lockedbyte, nicht richtig funktionierten.
Vielleicht hat niemand explizit Details „veröffentlicht“, um zu vermeiden, dass die Schwachstelle weiter ausgenutzt wird. Aber jetzt ist sie gepatcht, daher sollte es keine großen Probleme bereiten, die Details zu veröffentlichen.
Wie in diesem Tweet von Will Dormann beschrieben, sollte das HTML mindestens 4096 Bytes groß sein, um die „Vorschau“ in MS Word auszulösen.
Die CAB-Datei muss byteweise gepatcht werden, um Extraktionsfehler zu vermeiden und den ZipSlip zu erreichen:
filename.inf sollte zu ../filename.inf werdenfilename.inf coffCabStart zu modifizierenCFFOLDER.typeCompress CFFOLDER.coffCabStart sollte um 3 erhöht werden (aufgrund des hinzugefügten '../')CFFOLDER.cCfData CFFILE.cbFile sollte größer sein als das gesamte CFHEADER.cbCabinetCFDATA.csum Der Grund für diese Einschränkungen ist vielfältig, und ich habe nicht genug Zeit aufgewendet, um alle tief zu verstehen, aber sehen wir uns die wichtigsten an:
HINWEIS1: Defender erkennt jetzt, ob die CAB-Datei ein PE enthält, indem der Wert _IMAGE_DOS_HEADER.e_magic als Signatur verwendet
wird, wodurch möglicherweise verhindert wird, dass PE-Dateien in das CAB eingebettet werden. Kann diese Signatur umgangen werden?
Ich bin mir nicht sicher, aber wie zuvor beobachtet, handelt es sich um eine gepatchte Schwachstelle. Ich habe nicht vor, viel mehr Zeit
dafür aufzuwenden. Es liegt am neugierigen Leser, dies weiterzuentwickeln.
HINWEIS2: Der Microsoft-Patch blockiert beliebige URI-Schemata, anscheinend mit einem Blacklist-Ansatz (dies ist nur eine Annahme)
Die Hauptangriffskette im Zusammenhang mit CVE-2021-40444 ist der DLL-Angriff, der über das .cpl-URI-Schema geladen wird. Um dies
auszunutzen, muss ein Angreifer eine speziell gestaltete DLL erstellen. Wenn Sie es testen möchten, probieren Sie mein evildll-gen-Skript aus.
Wie von Max Maluin festgestellt, ist es möglich, mit verschiedenen Dateitypen zu interagieren, indem man IE und die zugehörigen dateierweiterungsbasierten URIs missbraucht. Während dies eine gute Möglichkeit sein könnte, IE auszunutzen, hat es Einschränkungen.
Es sollte nämlich beachtet werden, dass die im Exploit verwendete Methode zum Herunterladen von Dateien auf ActiveX-Steuerelement-Updates basiert
und nicht zum Herunterladen beliebiger Dateien verwendet werden kann.
Laut Microsoft-Dokumentation kann das codebase-Tag
nur auf wenige Dateitypen verweisen: OCX, INF und CAB.
Selbst wenn wir eine OCX- oder INF-Datei direkt herunterladen können, können wir nicht sicher sein, die Datei am richtigen Ort
im System herunterzuladen. Mit dem CAB-Exploit ist es möglich, die .inf-Datei mithilfe des Path Traversal in einen bekannten Pfad zu verschieben,
aber in jedem anderen Fall wird die Datei in einem zufälligen Verzeichnis gespeichert, was es praktisch unmöglich macht, darauf zu verweisen.
Stand heute habe ich keinen Weg gefunden, Download und Ausführung OHNE eine CAB-Datei zu verketten.
Hinweis: Wenn wir nur über IE sprechen, könnte HTML-Smuggel ein mögliches Szenario sein, um die Schwachstelle auszunutzen.
Diese Technik wurde zuerst von Eduardo Braun auf Twitter veröffentlicht und in diesem Paper weiter erklärt.
Bitte beachten Sie, dass die Angriffskette bei dieser Technik etwas anders ist. Dieser Angriff erfordert, dass der Benutzer eine speziell gestaltete RAR-Datei herunterlädt, die durch Verkettung eines gültigen WSF-Skripts und einer gültigen RAR-Datei entsteht. Nach dem Öffnen enthält die RAR ein DOCX mit einem Verweis auf ein HTML, das wiederum versucht, die RAR-Datei als WSF-Skript zu laden.
Zusammenfassung: