
PoC für CVE-2022-41120/CVE-2022-44704: beliebiges Löschen/Schreiben von Dateien in Sysmon über ClipboardChange RPC, was zu einer lokalen Rechteausweitung unter Windows führt.
Proof of Concept für beliebiges Datei-Löschen/-Schreiben in Sysmon (CVE-2022-41120/CVE-2022-44704)
Die Schwachstelle befindet sich im Code, der für das ClipboardChange-Ereignis zuständig ist und über RPC erreicht werden kann. Lokale Benutzer können Daten an den RPC-Server senden, die dann in das Verzeichnis C:\Sysmon (Standard-ArchiveDirectory) geschrieben und anschließend gelöscht werden. In Versionen vor 14.11 prüfte Sysmon nicht, ob das Verzeichnis von einem Benutzer mit niedrigen Rechten erstellt wurde oder ob es sich um einen Junction handelt, was missbraucht werden kann, um beliebige Dateien im Kontext des Benutzers NT AUTHORITY\SYSTEM zu löschen/zu schreiben (etwas eingeschränkt, da nur Zeichenfolgen geschrieben werden können). In Version 14.11/14.12 prüfte Sysmon nach dem ersten Fix, ob das Verzeichnis existiert, und verweigerte das Schreiben/Löschen von Dateien, wenn das Verzeichnis existiert. Dieser Patch wurde umgangen, indem Sysmon zuerst das Verzeichnis C:\Sysmon erstellen ließ (mittels CreateDirectory-API) und ein Handle darauf geöffnet wurde, bevor SetFileSecurity aufgerufen wird und die DACLs auf dem Verzeichnis C:\Sysmon geändert werden.
Alle Tests wurden auf Windows 10 durchgeführt.
In meinem PoC habe ich das beliebige Datei-Löschen/-Schreiben verkettet, um zuerst die Setup-Informationsdatei des Druckertreibers zu löschen und dann eine modifizierte .INF-Datei zu schreiben (da der Spooler-Dienst standardmäßig aktiviert ist und Benutzer mit niedrigen Rechten auf Windows-Clients Druckertreiber neu installieren können). Setup-Informationsdateien können missbraucht werden, um alle Arten von Operationen durchzuführen, wie z. B. Dienst-Erstellung, Registrierungsänderungen, Dateikopien usw. Ich habe mich dafür entschieden, einige der Standard-DLLs des Druckers nach c:\windows\system32 zu kopieren und deren Berechtigungen so zu setzen, dass Benutzer mit niedrigen Rechten sie ändern können. Dies geschieht über die CopyFiles-Direktive (https://learn.microsoft.com/en-us/windows-hardware/drivers/install/inf-copyfiles-directive). Sobald die Datei kopiert wurde, wird sie mit einer DLL überschrieben, die einen erhöhten cmd.exe-Prozess startet. Es ist möglich, nur das beliebige Datei-Löschen für LPE zu missbrauchen, indem man das Verhalten des Windows-Installers ausnutzt (Trick gefunden von und von ZDI hier dokumentiert: ).
Alle Tests wurden mit den Versionen 13.34-14.12 durchgeführt. Ich weiß nicht genau, welche die niedrigste betroffene Version ist, aber ich glaube, dass die Versionen 12.0 - 14.12 betroffen sind, da das ClipboardChange-Ereignis in Version 12.0 eingeführt wurde. Um diese Schwachstelle auszunutzen, sollten Ereignisse, die ArchiveDirectory verwenden, nicht aktiviert sein (meiner Meinung nach ClipboardChange und FileDelete), denn wenn diese beiden verwendet werden, wird ArchiveDirectory erstellt und mit sicheren Berechtigungen versehen.
Wenn Sie eine betroffene Version verwenden und kein Update durchführen können, können Sie ArchiveDirectory (standardmäßig C:\Sysmon) erstellen und Berechtigungen setzen, die nur dem Konto NT AUTHORITY\SYSTEM Zugriff gewähren.