Expand description
DCOM (MS-DCOM) — the foundation for remote activation and WMI execution over ORPC.
Status: foundation layer. This implements the OXID-resolver interface
(IObjectExporter, a plain RPC interface reachable anonymously on TCP/135) and the shared
ORPC pieces (well-known IIDs/CLSIDs, the ORPCTHIS header every ORPC call carries). The full
WMI-exec chain that builds on this — ISystemActivator::RemoteCreateInstance with the
activation-properties blob, OXID resolution to the activated object’s dynamic endpoint,
IWbemLevel1Login::NTLMLogin, and IWbemServices::ExecMethod for Win32_Process.Create
with CIM-object marshaling — is not implemented yet. See the module tests + the roadmap.
Structs§
- Object
Exporter - The IObjectExporter (OXID resolver) client on TCP/135. This is the reachable, anonymous entry point to a host’s DCOM subsystem and the resolver that later turns an OXID into the dynamic endpoint of an activated object.
Constants§
- CLSID_
WBEM_ LEVE L1_ LOGIN - CLSID of the WBEM level-1 login object to activate on the target.
- COMVERSION_
MAJOR - ORPC minor version negotiated by current Windows (COMVERSION 5.7).
- COMVERSION_
MINOR - IID_
IOBJECT_ EXPORTER - IObjectExporter (the OXID resolver / ping interface), always on ncacn_ip_tcp:135.
- IID_
IREMUNKNOWN - IRemUnknown — remote reference counting on an activated object (opnums RemQueryInterface=3…).
- IID_
ISYSTEM_ ACTIVATOR - ISystemActivator —
RemoteCreateInstance(opnum 4) activates a class on the target. - IID_
IWBEM_ LEVE L1_ LOGIN - IWbemLevel1Login —
NTLMLoginhands back anIWbemServicespointer for a namespace. - IID_
IWBEM_ SERVICES - IWbemServices —
GetObject/ExecMethod(Win32_Process.Create lives here).
Functions§
- orpc_
this - Encode an
ORPCTHIS(MS-DCOM 2.2.13.4) — the header every ORPC method stub begins with, ahead of the interface’s own parameters.cidis the causality id (a GUID identifying the logical call chain). Layout: COMVERSION(4) · flags(4) · reserved(4) · CID(16) · extensions pointer(4, null) = 32 bytes. - orpc_
this_ flags - ORPCTHIS with an explicit
flagsword: impacket sets 1 on the activation call (RemoteCreateInstance) but 0 on ordinary ORPC method calls (NTLMLogin, ExecMethod, …).