JUST RELEASED: ATT&CK for Industrial Control Systems

Component Object Model and Distributed COM

Adversaries may use the Windows Component Object Model (COM) and Distributed Component Object Model (DCOM) for local code execution or to execute on remote systems as part of lateral movement.

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

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

Adversaries may abuse COM for local command and/or payload execution. Various COM interfaces are exposed that can be abused to invoke arbitrary execution via a variety of programming languages such as C, C++, Java, and VBScript.[2] Specific COM objects also exists to directly perform functions beyond code execution, such as creating a Scheduled Task, fileless download/execution, and other adversary behaviors such as Privilege Escalation and Persistence.[1][6]

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 [7] as well as other Windows objects that contain insecure methods.[8][9] DCOM can also execute macros in existing documents [10] and may also invoke Dynamic Data Exchange (DDE) execution directly through a COM created instance of a Microsoft Office application [11], bypassing the need for a malicious document.

ID: T1175
Tactic: Lateral Movement, Execution
Platform: Windows
Permissions Required: Administrator, SYSTEM, User
Data Sources: PowerShell logs, API monitoring, Authentication logs, DLL monitoring, Packet capture, Process monitoring, Windows Registry, Windows event logs
Supports Remote:  Yes
Version: 2.0
Created: 16 January 2018
Last Modified: 24 June 2019

Procedure Examples

Name Description
Cobalt Strike

Cobalt Strike can deliver "beacon" payloads for lateral movement by leveraging remote COM execution.[12]

Empire

Empire can utilize Invoke-DCOM to leverage remote COM execution for lateral movement.[13]

MuddyWater

MuddyWater has used malware that has the capability to execute malware via COM and Outlook.[16]

POWERSTATS

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

Ursnif

Ursnif droppers have used COM objects to execute the malware's full executable payload.[15]

Mitigations

Mitigation Description
Application Isolation and Sandboxing

Ensure all COM alerts and Protected View are enabled.

Disable or Remove Feature or Program

Consider disabling DCOM through Dcomcnfg.exe.

Network Segmentation

Enable Windows firewall, which prevents DCOM instantiation by default.

Privileged Account Management

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.

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.

Detection

Monitor for COM objects loading DLLs and other modules not typically associated with the application.[7] Enumeration of COM objects, via Query Registry or PowerShell, may also proceed malicious use.[1][8]

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

Monitor for any influxes or abnormal increases in Distributed Computing Environment/Remote Procedure Call (DCE/RPC) traffic.

References