
Lateral Movement mittels DCOM und DLL-Hijacking
Wir haben kürzlich die folgenden DCOM-Klassen entdeckt, die anfällig für DLL-Hijacking sind. Wenn ein Angreifer in den zugehörigen Pfad schreiben kann, kann er sich lateral bewegen, indem er das COM-Objekt instanziiert. Einige Klassen bieten weitere DLL-Hijacking-Möglichkeiten, die hier nicht aufgeführt sind.
| Klasse | DLL-Pfad | Prozess | Architektur |
|---|---|---|---|
| WordPad Document | C:\Program Files\Windows NT\Accessories\XmlLite.dll | wordpad.exe | x64 |
| CLSID_ContactReadingPane | C:\Program Files\Common Files\System\UxTheme.dll | prevhost.exe | x64 |
| User OOBE Create Elevated Object Server | C:\Windows\System32\oobe\USERENV.dll | dllhost.exe | x64 |
| MSDAINITIALIZE* | C:\Program Files\Common Files\System\Ole DB\bcrypt.dll | dllhost.exe | x64 |
| ShapeCollector Class | C:\Program Files\Common Files\Microsoft Shared\ink\DUI70.dll | ShapeCollector.exe | x64 |
| Microsoft WBEM Unsecured Apartment | C:\Windows\System32\wbem\wbemcomn.dll | unsecapp.exe | x64 |
| Microsoft WBEM Active Scripting Event Consumer Provider | C:\Windows\System32\wbem\wbemcomn.dll | scrcons.exe | x64 |
| Voice Toast Callback* | C:\Windows\System32\WinBioPlugIns\MFPlat.dll | svchost.exe | x64 |
| Add to Windows Media Player list | C:\Program Files (x86)\Windows Media Player\ATL.dll | setup_wm.exe | x86 |
| Windows Media Player Burn Audio CD Handler | C:\Program Files (x86)\Windows Media Player\PROPSYS.dll | wmplayer.exe | x86 |
* Nur Windows 11 und Windows Server 2022
Dieses Repository enthält einen Cobalt Strike BOF und ein Impacket-Skript, um die DLL zu kopieren und das COM-Objekt zu instanziieren. Ebenfalls enthalten sind Exportdefinitionen und eine grundlegende DLL-Vorlage.
Eine einfache DLL-Vorlage ist zum Testen enthalten. Die erforderlichen Exportweiterleitungen ändern sich zwischen den Versionen leicht, was den Hijack manchmal bricht. Ein Hilfsskript ist enthalten, um Exportdefinitionen für eine Ziel-DLL zu generieren. Die Definitionsdateien für Windows Server 2022/11 und 10 befinden sich im Verzeichnis exports. Sie können die erste Zeile der Makefile bearbeiten, um den Namen des Exportverzeichnisses festzulegen. Wenn Sie eine DLL aus einer bestimmten Windows-Version suchen, ist Winbindex eine hervorragende Ressource.
Beide Implementierungen erfordern, dass Sie einen der folgenden verkürzten Klassennamen angeben:
upload-dll <class name> <target IP or hostname> [DLL path]
create-object <class name> <target IP or hostname>
dcomhijack.py -object <class name> [[domain/]username[:password]@]<targetName or address>
Der BOF und das Impacket-Skript wurden mit den folgenden Windows-Versionen/-Architekturen getestet: