Thanks to all of our ATT&CKcon participants. All sessions are here, and individual presentations will be posted soon.

Distributed Component Object Model

Windows Distributed Component Object Model (DCOM) is transparent middleware that extends the functionality of Component Object Model (COM) [1] beyond a local computer using remote procedure call (RPC) technology. COM is a component of the Windows application programming interface (API) that enables interaction between software objects. Through COM, a client object can call methods of server objects, which are typically Dynamic Link Libraries (DLL) or executables (EXE).

Permissions to interact with local and remote server COM objects are specified by access control lists (ACL) in the Registry. [2] [3] [4] By default, only Administrators may remotely activate and launch COM objects through DCOM.

Adversaries may use DCOM for lateral movement. Through DCOM, adversaries operating in the context of an appropriately privileged user can remotely obtain arbitrary and even direct shellcode execution through Office applications [5] as well as other Windows objects that contain insecure methods. [6] [7] DCOM can also execute macros in existing documents [8] and may also invoke Dynamic Data Exchange (DDE) execution directly through a COM created instance of a Microsoft Office application [9], bypassing the need for a malicious document.

DCOM may also expose functionalities that can be leveraged during other areas of the adversary chain of activity such as Privilege Escalation and Persistence. [10]

ID: T1175

Tactic: Lateral Movement

Platform:  Windows

Permissions Required:  Administrator, SYSTEM

Data Sources:  API monitoring, Authentication logs, DLL monitoring, Packet capture, Process monitoring, Windows Registry, Windows event logs

Version: 1.0

Examples

NameDescription
Cobalt Strike

Cobalt Strike can deliver "beacon" payloads for lateral movement by leveraging remote COM execution. [[Citation:
Cobalt Strike DCOM Jan 2017]][11]

POWERSTATS

POWERSTATS can use DCOM (targeting the 127.0.0.1 loopback address) to execute additional payloads on compromised hosts.[12]

Mitigation

Modify Registry settings (directly or using Dcomcnfg.exe) in HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID{AppID_GUID} associated with the process-wide security of individual COM applications. [3]

Modify Registry settings (directly or using Dcomcnfg.exe) in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole associated with system-wide security defaults for all COM applications that do no set their own process-wide security. [4] [2]

Consider disabling DCOM through Dcomcnfg.exe. [13]

Enable Windows firewall, which prevents DCOM instantiation by default.

Ensure all COM alerts and Protected View are enabled. [14]

Detection

Monitor for COM objects loading DLLs and other modules not typically associated with the application. [5]

Monitor for spawning of processes associated with COM objects, especially those invoked by a user different than the one currently logged on.

Monitor for influx of Distributed Computing Environment/Remote Procedure Call (DCE/RPC) traffic.

References