Rootkit-Attacke

Neuer Angriffsweg über Windows-Pfadkonvertierung

Die MagicDot-Technik ermöglicht es Angreifern, Windows-Dateipfade zu verändern und eine bereits gepatchte Sicherheitslücken auszunutzen.
Von 
CSO | 24. April 2024 14:35 Uhr
Hacker können den Konvertierungsprozess von Windows-Dateipfaden nutzen und Rootkit-Taktiken einsetzen.
Hacker können den Konvertierungsprozess von Windows-Dateipfaden nutzen und Rootkit-Taktiken einsetzen.
Foto: Kanoktuch - shutterstock.com

Ein neues Security-Forschungsprojekt zeigt, dass die Art und Weise, wie Windows Dateipfade zwischen dem traditionellen DOS-Format und dem moderneren NT-Format konvertiert, von Hackern missbraucht werden kann. Das Sicherheitsproblem wurde von Or Yair, einem Forscher von SafeBreach, entdeckt und auf der Black Hat Asia 2024 vorgestellt.

"Wenn ein Benutzer in Windows eine Funktion ausführt, die über ein Pfadargument verfügt, wird der DOS-Pfad, in dem die Datei oder der Ordner vorhanden ist, in einen NT-Pfad konvertiert. Während dieses Konvertierungsprozesses besteht ein bekanntes Problem, bei dem die Funktion nachgestellte Punkte aus jedem Pfadelement und alle nachgestellten Leerzeichen aus dem letzten Pfadelement entfernt. Diese Aktion wird von den meisten User-Space-APIs in Windows ausgeführt", erklärt Yair in seinem Blog-Beitrag.

Die von Yair als MagicDot bezeichnete Methode ermöglicht es, den Dateipfad zu verändern und Rootkit-ähnliche Techniken einzusetzen. So könnte ein böswilliger Akteur - ohne Administratorrechte - Dateien und Prozesse verbergen, Dateien in Archiven verstecken und die Analyse von Prefetch-Dateien beeinflussen, führt der Experte aus.

Im Rahme seiner Angriffsanalyse ist er auf folgende Schwachstellen gestoßen:

  • RCE-Schwachstelle (Remote Code Execution) ( CVE-2023-36396 ) in der neuen Extraktionslogik von Windows für alle neu unterstützten Archivtypen. Sie ermöglicht es, ein bösartiges Archiv zu erstellen, das nach dem Extrahieren an eine beliebige Stelle auf einem Remotecomputer schreiben konnte, was zu Code-Ausführung führte.

  • Zwei EoP-Schwachstellen (Elevation of Privilege): eine ( CVE-2023-32054 ), die es ermöglichten, ohne die erforderlichen Berechtigungen in Dateien zu schreiben. Dazu wurde der Wiederherstellungsprozess einer früheren Version aus einer Schattenkopie manipuliert. Zudem gab es eine weitere Lücke, die es erlaubte, Dateien ohne die erforderlichen Berechtigungen zu löschen.

Sicherheitslücke nutzt den Unterschied zwischen DOS- und NT-Pfaden aus

Wenn jemand aufgefordert wird, den Pfad zu einer Datei auf einem Windows-System zu nennen, wird er wahrscheinlich etwas in der Form C:\Verzeichnis\Unterverzeichnis\datei.txt eingeben. Dies wird als Dateipfad im DOS-Stil bezeichnet und ist seit der ersten Windows-Version die gängigste Art, den Speicherort einer Datei anzugeben. Es ist nach wie vor eine verbreitete Methode, mit der viele Anwendungen unter Windows Dateien ansprechen, wenn sie mit ihnen arbeiten wollen.

Seit Windows NT gibt es jedoch eine andere Möglichkeit, Dateipfade darzustellen. Das NT-Pfadäquivalent des obigen DOS-Pfads wäre \??\C:\Verzeichnis\Unterverzeichnis\datei.txt. Man könnte meinen, dass das kein großer Unterschied ist, und für dieses spezielle Beispiel trifft das zu. Aber tatsächlich unterstützen NT-Pfade Unicode, also eine größere Anzahl von Zeichen, im Vergleich zu DOS-Pfaden, die nur den ANSI-Zeichensatz unterstützen.

Das Problem ist, dass die Windows-API-Dateifunktionen, die viele Anwendungen wie CreateFile aufrufen, mit NT-Pfaden funktionieren. Wenn sie auf einen DOS-Pfad treffen, konvertieren sie ihn zunächst in einen NT-Pfad, indem sie eine Funktion namens RtlpDosPathNameToRelativeNtPathName verwenden. Bei dieser Konvertierung gibt es viele Regeln, aber zwei, die für Yairs Forschung relevant sind, sind, Punkten am Ende der Pfadelemente zu entfernen und Leerzeichen am Ende des letzten Elements zu löschen.

So würde beispielsweise der Pfad C:\Verzeichnis\Unterverzeichnis.\Datei. in \??\C:\Verzeichnis\Unterverzeichnis\Datei umgewandelt. Die Punkte nach dem Unterverzeichnis und der Datei würden entfernt. Das könnte tatsächlich auf eine Datei verweisen, die nicht existiert, oder schlimmer noch, auf eine andere Datei, was alle möglichen Sicherheitsprobleme mit sich bringt.

Schwachstelle: verschwindende Punkte

"Indem ich einen einfachen Punkt am Ende eines Dateinamens setze oder eine Datei oder ein Verzeichnis nur mit Punkten und/oder Leerzeichen benenne, könnte ich alle Programme im Benutzerbereich, die die normale API verwenden, für diese unzugänglich machen", so Yair.

Der Experte verweist darauf: "Solche Verzeichnisse könnten nicht aufgelistet werden und es könnten auch keine anderen Operationen mit ihnen durchgeführt werden. Auf Dateien, die diese Namenskonvention verwenden, konnte auch nicht zugegriffen werden. Die Benutzer konnten sie nicht lesen, schreiben, löschen oder irgendetwas anderes mit ihnen anstellen."

Wenn eine Anwendung versucht, C:\Users\Benutzer\Desktop\malwaredir.\malware.txt durch Aufrufen der normalen Windows-API-Funktionen zu öffnen und der Punkt bei der NT-Pfadkonvertierung entfernt wird, ist der Pfad \??\C:\Users\Benutzer\Desktop\malwaredir\malware.txt (ohne Punkt) nicht vorhanden und kann nicht geöffnet werden.

Dies ermöglicht es auch, Dateien zu imitieren. Nehmen wir an, ein Angreifer legt eine bösartige Datei mit dem Namen benign. und eine nicht bösartige Datei mit dem Namen benign im selben Verzeichnis ab. Wenn eine anfällige Anwendung versucht, die bösartige Datei zu öffnen, würde sie in Wirklichkeit die harmlose Datei ohne den nachgestellten Punkt öffnen, was die Malware verschleiern kann.

Wenn der Angreifer einen bestehenden Dateipfad als legitimen Prozess ausgibt, kann er seinen bösartigen Prozess im Task-Manager und anderen Tools verbergen. So würde beispielsweise \??\C:\Windows.\System32\svchost.exe im Task-Manager als \??\C:\Windows\System32\svchost.exe erscheinen, wobei es sich um einen legitimen Windows-Dienst handelt, der immer auf dem System läuft.

So können Entwickler den Exploit vermeiden

Yair ging sogar noch weiter und konnte mit dem MagicDot-Pfad-Trick Dateien in Archiven vor dem Windows Explorer verbergen. Archive sind eine gängige Methode, um Malware unter Windows zu verbreiten, insbesondere als E-Mail-Anhänge mit einem Phishing-Köder.

Angreifer setzen in der Regel Rootkits auf Benutzer- oder Kernel-Ebene ein, um ähnliche Methoden zu nutzen, um Dateien zu verschleiern. Der Unterschied besteht darin, dass Administrator- oder höhere Berechtigungen erforderlich sind, um Rootkits einzusetzen, während dies bei der MagicDot-Technik nicht der Fall ist.

"Während Microsoft die spezifischen Schwachstellen, die wir gefunden haben, behoben hat, ist das bekannte Problem der DOS-zu-NT-Pfadkonvertierung, welches die Ursache für die Schwachstellen war, noch nicht behoben", so Yair. "Das bedeutet, dass es noch viele weitere potenzielle Schwachstellen und Techniken geben könnte, um diese Schwachstelle nachträglich auszunutzen."

Der Forscher rät Softwareentwicklern, in ihrem Code NT-Pfade anstelle von DOS-Pfaden zu verwenden. Auf diese Weise könnten sie den Konvertierungsprozess vermeiden und sicherstellen, dass der Pfad, den sie einer Windows-Funktion zur Verfügung stellen, auch tatsächlich derjenige ist, auf den am Ende zugegriffen wird. (jm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation CSO Online.

Lucian Constantin arbeitet als Korrespondent für den IDG News Service.