
Movimento Lateral Usando DCOM e Sequestro de DLL
Recentemente descobrimos as seguintes classes DCOM que estão sujeitas a DLL hijacking. Se um atacante puder escrever no caminho associado, ele pode se mover lateralmente instanciando o objeto COM. Algumas classes têm outras oportunidades de DLL hijacking que não estão listadas aqui.
| Classe | Caminho da DLL | Processo | Arquitetura |
|---|
| 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 |
* Apenas Windows 11 e Windows Server 2022
Este repositório inclui um Cobalt Strike BOF e um script Impacket para copiar a DLL e instanciar o objeto COM. Definições de exportação e um modelo básico de DLL também são incluídos.
Um modelo simples de DLL é incluído para testes. Os forwards de exportação necessários mudam ligeiramente entre versões, às vezes quebrando o hijack. Um script utilitário foi incluído para gerar definições de exportação para uma DLL alvo. Os arquivos de definição para Windows Server 2022/11 e 10 são fornecidos no diretório exports. Você pode editar a primeira linha do Makefile para especificar o nome do diretório de exportação. Se você está procurando uma DLL de uma versão específica do Windows, o Winbindex é um ótimo recurso.
Ambas as implementações exigem que você especifique um dos seguintes nomes de classe 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>
O BOF e o script Impacket foram testados contra as seguintes versões/arquiteturas do Windows: