
Латеральное перемещение с использованием DCOM и перехвата DLL
Недавно мы обнаружили следующие классы DCOM, подверженные перехвату DLL. Если злоумышленник может записывать данные в связанный путь, он может перемещаться латерально, создавая экземпляр COM-объекта. Некоторые классы имеют дополнительные возможности перехвата DLL, не перечисленные здесь.
| Класс | Путь к DLL | Процесс | Архитектура |
|---|---|---|---|
| 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 |
* Только Windows 11 и Windows Server 2022
Этот репозиторий включает Cobalt Strike BOF и скрипт Impacket для копирования DLL и создания экземпляра COM-объекта. Также включены определения экспортов и базовый шаблон DLL.
Для тестирования включён простой шаблон DLL. Требуемые переадресации экспортов немного меняются между версиями, что иногда нарушает перехват. Включён служебный скрипт для генерации определений экспортов для целевой DLL. Файлы определений для Windows Server 2022/11 и 10 находятся в каталоге exports. Вы можете изменить первую строку Makefile, чтобы указать имя каталога экспортов. Если вы ищете DLL из конкретной версии Windows, Winbindex — отличный ресурс.
Обе реализации требуют указать одно из следующих сокращённых имён классов:
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>
BOF и скрипт Impacket были протестированы со следующими версиями/архитектурами Windows: