Распределенная COM-модель (Distributed Component Object Model, DCOM) - это технология Microsoft, обеспечивающая связь между программными компонентами, распределенными по сетевым компьютерам, с помощью удаленных вызовов процедур (RPC). Она позволяет объекту-клиенту на одном компьютере вызывать методы объекта-сервера на другом компьютере, независимо от языков программирования, используемых для реализации объектов.
Службы удаленного доступа: Распределенная COM-модель
DCOM позволяет объекту-клиенту на одном компьютере вызывать методы объекта-сервера на другом компьютере с помощью RPC. Это позволяет программным компонентам взаимодействовать друг с другом по сети, независимо от языков программирования и операционных систем, на которых они работают.
DCOM используется в различных приложениях, таких как распределенные приложения, веб-службы и управление системой. Он является важной частью операционной системы Windows и широко используется в корпоративных средах.
Разрешения на взаимодействие с COM-объектами локальных и удаленных серверов задаются с помощью списков контроля доступа (ACL) в реестре. По умолчанию только администраторы могут удаленно активировать и запускать COM-объекты через DCOM. Важно обеспечить безопасность DCOM и правильно настроить управление доступом, чтобы предотвратить несанкционированный доступ или злоупотребления.
Использование злоумышленниками Распределенная COM-модель
Одним из способов использования злоумышленниками DCOM является использование действующих учетных записей для взаимодействия с удаленными машинами. DCOM использует списки контроля доступа (ACL) в реестре для определения разрешений на взаимодействие с COM-объектами локальных и удаленных серверов. По умолчанию только администраторы имеют право активировать и запускать COM-объекты удаленно через DCOM. Если злоумышленнику удастся скомпрометировать учетную запись с достаточными привилегиями, он сможет использовать DCOM для выполнения действий в качестве вошедшего в систему пользователя.
DCOM также может использоваться в качестве метода удаленного взаимодействия с WMI, который является мощным средством управления системой, предоставляющим информацию об аппаратной и программной конфигурации компьютера. Злоумышленники могут использовать DCOM для выполнения произвольного кода через WMI или манипулирования данными WMI для достижения своих целей.
Например, атакующий может использовать WMI для создания объекта DCOM и изменения реестра на удаленной системе:
1 2 3 4 | $dcom = New-Object -ComObject WbemScripting.SWbemLocator $wmi = $dcom.ConnectServer("RemoteSystem", "root\default") $key = $wmi.Get("StdRegProv") $key.SetStringValue(2147483650,"HKLM","Software\MyApp","KeyName","KeyValue") |
Атакующие могут использовать DCOM для удаленного выполнения кода на системе, создав объект DCOM и запустив с его помощью скрипт или программу. Например, атакующий может использовать PowerShell для создания объекта DCOM и выполнения сценария на удаленной системе:
1 2 | $dcom = New-Object -ComObject WScript.Shell $dcom.Run("cmd.exe /c powershell.exe -ExecutionPolicy Bypass -File c:\temp\malicious_script.ps1", 0, $true) |
Еще один способ, которым злоумышленники могут злоупотреблять DCOM, - это выполнение макросов в существующих документах или вызов динамического обмена данными (DDE) через созданный с помощью COM экземпляр приложения Microsoft Office. Это позволяет обойти необходимость в создании вредоносного документа и может быть использовано для доставки полезной нагрузки или выполнения кода на целевой системе.
Например, APT-группа MuddyWater использовала DCOM для выполнения вредоносной полезной нагрузки PowerShell, как показано в следующем коде:
1 2 3 4 | $e = [System.Activator]::CreateInstance ([type]::GetTypeFromCLSID("9BA05972-F6A8- 11CF-A442-00A0C90A8F39" "127.0.0.1")) Se[0].Document. Application.ShellExecute("powershell.exe","-exec bypass -file c: programdata la.ps1", "c:\windows\system32",$null,o) |