
D(COM) V(ulnerability) S(canner) он же Коварный швейцарский армейский нож - Боковое перемещение с использованием объектов DCOM
Вы когда-нибудь задумывались, как можно перемещаться по внутренним сетям? Или взаимодействовать с удаленными машинами, не вызывая срабатывания EDR? Предположим, у нас есть действительные учетные данные или активная сессия с доступом к удаленной машине, но у нас нет возможности выполнить процесс удаленно известным, ожидаемым или сильно контролируемым способом (например, WMI, Планировщик задач, WinRM, PowerShell Remoting).
Для таких сценариев на помощь приходит фреймворк DVS.
Фреймворк DVS — это швейцарский нож, который позволяет перечислять уязвимые функции удаленных DCOM-объектов, запускать их и даже проводить атаки с их помощью.
Фреймворк разрабатывается с мышлением «Красной команды» и использует скрытные методы для компрометации удаленных машин.
Фреймворк DVS содержит различные способы обхода удаленной защиты от DCOM путем повторного включения доступа к DCOM удаленно и автоматического предоставления необходимых разрешений атакующему пользователю.
Фреймворк также может откатить изменения на удаленной машине к исходному состоянию до атаки — скрывая эти изменения от защитников.
Наше основное открытие заключается в том, что инструмент также может выполнять команды с использованием неуязвимых DCOM-объектов с помощью потрясающей техники (читайте ниже о Invoke-RegisterRemoteSchema)
Совместимо с PowerShell 2.0 и выше
Youtube Video PoC: DVS
Этот инструмент предназначен только для тестирования и образовательных целей. Любое другое использование этого кода запрещено. Используйте на свой страх и риск.
Автор НЕ несет ответственности за неправильное использование этого инструмента.
Используя этот инструмент, вы принимаете тот факт, что любой ущерб, причиненный использованием этого инструмента, является вашей ответственностью.
Доступ к удаленному реестру (MS-RRP)
AutoGrant установлен, проверка прав на запись; в противном случае проверка прав на чтениеСтандартный поставщик реестра (если удаленный реестр недоступен)
StdRegProvAutoGrant установлен, проверка прав на запись; в противном случае проверка прав на чтениеИнструмент DVS сначала проверяет, имеет ли основная учетная запись доступ к удаленной машине, выполняя следующие шаги:
Базовые действия
SkipRegAuth)
AutoGrant), иначе — сбойadsi/WindowsIdentity), разрешение на взаимодействие с DCOM (через запросы к удаленному реестру)AutoGrant), иначе — сбойHKLM или HKCU)Invoke-DCOMObjectScan
Get-ExecutionCommand
Invoke-ExecutionCommand
Invoke-RegisterRemoteSchema
git clone https://github.com/ScorpionesLabs/DVS
powershell -ep bypass
PS> Import-Module .\DVS.psm1
PS> Get-Help Invoke-DCOMObjectScan -Detailed # Получить подробную информацию о команде Invoke-DCOMObjectScan
PS> Get-Help Get-ExecutionCommand -Detailed # Получить подробную информацию о команде Get-ExecutionCommand
PS> Get-Help Invoke-ExecutionCommand -Detailed # Получить подробную информацию о команде Invoke-ExecutionCommand
PS> Get-Help Invoke-RegisterRemoteSchema -Detailed # Получить подробную информацию о команде Invoke-RegisterRemoteSchema
Функция Invoke-DCOMObjectScan позволяет сканировать DCOM-объекты и находить уязвимые функции с помощью списка шаблонов или точных имен функций, которые вы указали в файле.
Примеры:
Перечисляет и сканирует объект MMC20.Application (ProgID) с машины атакующего на хост DC01 без запроса реестра.
Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipRegAuth -Username "lab\administrator" -Password "Aa123456!" -Verbose
Примечание: Инструмент не будет анализировать разрешения ACL, и при успешном выполнении он получит всю информацию об объекте, за исключением сведений, упомянутых в реестре (например, имя объекта, исполняемый файл и т.д.).
Проверяет, доступен ли объект MMC20.Application (ProgID) с машины атакующего на хост DC01 без предварительного запроса и проверки списка доступа DCOM-объекта.
PS> Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipPermissionChecks -CheckAccessOnly -Verbose