
DCOM 및 DLL 하이재킹을 이용한 수평 이동
우리는 최근 DLL 하이재킹에 취약한 다음과 같은 DCOM 클래스를 발견했습니다. 공격자가 관련 경로에 쓸 수 있다면 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 전용
이 저장소에는 DLL을 복사하고 COM 개체를 인스턴스화하는 Cobalt Strike BOF 및 Impacket 스크립트가 포함되어 있습니다. 또한 내보내기 정의와 기본 DLL 템플릿이 포함되어 있습니다.
테스트를 위해 간단한 DLL 템플릿이 포함되어 있습니다. 필요한 내보내기 전달(export forwards)은 버전에 따라 약간씩 변경되어 하이재킹을 깨뜨리기도 합니다. 대상 DLL에 대한 내보내기 정의를 생성하는 유틸리티 스크립트가 포함되어 있습니다. Windows Server 2022/11 및 10용 정의 파일은 exports 디렉터리에 제공됩니다. Makefile의 첫 번째 줄을 편집하여 내보내기 디렉터리 이름을 지정할 수 있습니다. 특정 Windows 버전의 DLL을 찾고 있다면 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 버전/아키텍처에서 테스트되었습니다: