
Movimiento Lateral Mediante DCOM y Secuestro de DLL
Recientemente descubrimos las siguientes clases DCOM que son susceptibles al secuestro de DLL. Si un atacante puede escribir en la ruta asociada, puede moverse lateralmente instanciando el objeto COM. Algunas clases tienen oportunidades adicionales de secuestro de DLL que no se enumeran aquí.
| Clase | Ruta de DLL | Proceso | Arquitectura |
|---|
| 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 |
* Solo Windows 11 y Windows Server 2022
Este repositorio incluye un BOF de Cobalt Strike y un script de Impacket para copiar la DLL e instanciar el objeto COM. También se incluyen definiciones de exportaciones y una plantilla básica de DLL.
Se incluye una plantilla sencilla de DLL para realizar pruebas. Los reenvíos de exportaciones necesarios cambian ligeramente entre versiones, lo que a veces rompe el secuestro. Se ha incluido un script de utilidad para generar definiciones de exportaciones para una DLL objetivo. Los archivos de definición para Windows Server 2022/11 y 10 se proporcionan en el directorio exports. Puede editar la primera línea del Makefile para especificar el nombre del directorio de exportaciones. Si está buscando una DLL de una versión específica de Windows, Winbindex es un gran recurso.
Ambas implementaciones requieren que se especifique uno de los siguientes nombres de clase abreviados:
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>
El BOF y el script de Impacket se probaron con las siguientes versiones/arquitecturas de Windows: