Hierbei handelt es sich um eine DLL-Injektionstechnik des Windows Explorers, die das Dialogfeld „Symbol ändern“ unter Windows verwendet.
Zunächst wird ein Ordner im temporären Verzeichnis erstellt und die Eigenschaften des Ordners mit SHObjectProperties geöffnet. Um das Handle des Fensters unabhängig von der Systemsprache abzurufen, wird EnumWindows mit einer Rückruffunktion verwendet, die in jedem geöffneten Fenster nach dem eindeutigen Ordnernamen sucht.
Über die Eigenschaftenseite wird der Dialog zum Ändern des Symbols aufgerufen, dessen Handle ebenfalls mit EnumWindows abgerufen wird. Zuletzt wird der Symbolpfad in eine DLL geändert (die in diesem Fall die Erweiterung .ico hat), was dazu führt, dass der Explorer die DLL lädt, nachdem die Schaltfläche „OK“ gedrückt wurde.
Das „Symbol“ ist eigentlich eine einfache DLL-Datei mit der Erweiterung .ico, die die Taschenrechner-App mit einer Symbolressource öffnet, die mit dem Resource Hacker hinzugefügt wurde.
Es gibt einige Anomalien bei der Darstellung des Symbols in der Ordneransicht. Ich habe dies auf zwei verschiedenen Windows 10-Versionen (der neuesten und einer älteren) und auf Windows 11 getestet.
Bei beiden Widnows 10-Versionen wurde das in der DLL gespeicherte Symbol nicht angezeigt, als die Erweiterung in .ico geändert wurde
Auf der neuesten Windows 10-Version funktionierte es jedoch, bis ich versuchte, das „Symbol“ in der Foto-App zu öffnen. Seitdem ist es mir nicht mehr gelungen, es nachzubilden.
Unter Windows 11 wurde das Symbol wie ein normales Symbol in der Explorer-Ansicht angezeigt. Beim Öffnen in der Foto-App wird jedoch ein Fehler angezeigt.
Dieses Verhalten ist sicherlich interessant, da ein Benutzer, der lediglich das Symbol eines Ordners ändern möchte, möglicherweise stattdessen eine schädliche DLL in seinen Explorer einschleust. Das könnte so aussehen:
Dies ist eine sehr heimliche Möglichkeit, eine DLL in den Explorer-Prozess einzuschleusen, da nicht die übliche DLL-Injektions-API verwendet wird. Es werden zwar zwei kurze Popups angezeigt, die jedoch nicht allzu störend sind. Daher kann es von einem Bedrohungsakteur als AV-Umgehungstechnik verwendet werden, um Code über den legitimen Explorer-Prozess auszuführen oder ein UMD-Rootkit zu laden.
Auch die Verbreitung von DLLs, die als .ico-Dateien getarnt sind, kann ein interessanter Angriffsvektor sein.
Um die richtigen Fensterhandles zu erhalten, habe ich Spy++ verwendet, ein Tool, das mit Visual Studio installiert wird.
Vielen Dank an Bill G. von Microsoft für das schöne Ordnersymbol!
Vielen Dank, zufälliger Typ im Internet, für das wunderschöne Injektionssymbol!