Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
DVS — D(COM) V(ulnerability) S(canner) он же Коварный швейцарский армейский нож - Боковое перемещение с использованием объектов DCOM | Kitploit
Инструменты/GitHubGitHub/scorpioneslabs/dvs
ЭксплуатацияЛатеральное перемещениеПост-эксплуатацияТестирование на ПроникновениеКомандование и УправлениеRed Teaming
GitHubscorpioneslabs/dvs

DVS

D(COM) V(ulnerability) S(canner) он же Коварный швейцарский армейский нож - Боковое перемещение с использованием объектов DCOM

Репозиторий
25647125 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

D(COM) V(ulnerability) S(canner) AKA Devious швейцарский нож - Боковое перемещение с помощью DCOM-объектов

Вы когда-нибудь задумывались, как можно перемещаться по внутренним сетям? Или взаимодействовать с удаленными машинами, не вызывая срабатывания EDR? Предположим, у нас есть действительные учетные данные или активная сессия с доступом к удаленной машине, но у нас нет возможности выполнить процесс удаленно известным, ожидаемым или сильно контролируемым способом (например, WMI, Планировщик задач, WinRM, PowerShell Remoting).

Для таких сценариев на помощь приходит фреймворк DVS.

Фреймворк DVS — это швейцарский нож, который позволяет перечислять уязвимые функции удаленных DCOM-объектов, запускать их и даже проводить атаки с их помощью.

Фреймворк разрабатывается с мышлением «Красной команды» и использует скрытные методы для компрометации удаленных машин.

Фреймворк DVS содержит различные способы обхода удаленной защиты от DCOM путем повторного включения доступа к DCOM удаленно и автоматического предоставления необходимых разрешений атакующему пользователю.

Фреймворк также может откатить изменения на удаленной машине к исходному состоянию до атаки — скрывая эти изменения от защитников.

Наше основное открытие заключается в том, что инструмент также может выполнять команды с использованием неуязвимых DCOM-объектов с помощью потрясающей техники (читайте ниже о Invoke-RegisterRemoteSchema)

Совместимо с PowerShell 2.0 и выше

Youtube Video PoC: DVS

Отказ от ответственности

Этот инструмент предназначен только для тестирования и образовательных целей. Любое другое использование этого кода запрещено. Используйте на свой страх и риск.
Автор НЕ несет ответственности за неправильное использование этого инструмента.
Используя этот инструмент, вы принимаете тот факт, что любой ущерб, причиненный использованием этого инструмента, является вашей ответственностью.

Доступ к реестру — как фреймворк DVS использует этот протокол

  • Доступ к удаленному реестру (MS-RRP)

    1. Проверка порта 445 для взаимодействия с удаленным реестром
    2. Проверка, включен ли удаленный реестр
    3. Взаимодействие с удаленным реестром
    4. Если режим AutoGrant установлен, проверка прав на запись; в противном случае проверка прав на чтение
  • Стандартный поставщик реестра (если удаленный реестр недоступен)

    1. Проверка порта 135 для взаимодействия со "Стандартным поставщиком реестра" через WMI
    2. Проверка, доступен ли StdRegProv
    3. Взаимодействие со стандартным поставщиком реестра
    4. Если режим AutoGrant установлен, проверка прав на запись; в противном случае проверка прав на чтение

Почему этот инструмент такой скрытный?

Инструмент DVS сначала проверяет, имеет ли основная учетная запись доступ к удаленной машине, выполняя следующие шаги:

  • Базовые действия

    1. Операции аутентификации (если не установлен SkipRegAuth)
      1. Если предоставлены учетные данные, создается сессия "только для сети". В противном случае используется текущая вошедшая в систему сессия.
      2. Проверка доступа к реестру.
    2. Проверка, включена ли функция DCOM
    3. Разрешение доступа к DCOM (если установлен AutoGrant), иначе — сбой
    4. Проверка, есть ли у вошедшего пользователя/предоставленного пользователя и групп, в которые он входит (через adsi/WindowsIdentity), разрешение на взаимодействие с DCOM (через запросы к удаленному реестру)
    5. Предоставление разрешений (если установлен AutoGrant), иначе — сбой
    6. Разрешение доменного имени с удаленной машины через NetBIOS поверх TCP (с помощью NetAPI32 или UDP-пакета); в случае неудачи будет попытка использовать реестр (HKLM или HKCU)
  • Invoke-DCOMObjectScan

    1. Взаимодействие с DCOM-объектами
    2. Перечисление DCOM-объекта и поиск уязвимых функций
    3. Проверка возможности эксплуатации
    4. Генерация полезных нагрузок для выполнения
    5. Получение личной информации об уязвимом DCOM-объекте
  • Get-ExecutionCommand

    1. Генерация полезных нагрузок для выполнения
  • Invoke-ExecutionCommand

    1. Попытка взаимодействия с DCOM-объектами
    2. Выполнение команд
  • Invoke-RegisterRemoteSchema

    1. Попытка взаимодействия с одним из следующих DCOM-объектов:
      • InternetExplorer.Application — COM-объект Internet Explorer
      • {D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E} — другой COM-объект, принадлежащий Internet Explorer
      • {C08AFD90-F2A1-11D1-8455-00A0C91F3880} — ShellBrowserWindow
      • {9BA05972-F6A8-11CF-A442-00A0C90A8F39} — ShellWindows
    2. Регистрация удаленной схемы (например, http://)
    3. Настройка схемы для выполнения команд из содержимого схемы
    4. Выполнение команды

Компоненты инструмента

  • Анализатор прав безопасности — анализ прав основной учетной записи на доступ к удаленному DCOM-объекту
  • Удаленное предоставление доступа — предоставление разрешений вошедшему пользователю удаленно (если они еще не были предоставлены)
  • Сканер DCOM — сканирование и анализ удаленных/локальных DCOM-объектов на наличие уязвимых функций, которые предоставляются (должны быть указаны шаблоны и имена функций) Когда инструмент обнаруживает уязвимую функцию, он проверяет, какие аргументы она принимает и может ли функция выполнять команды
  • Генератор команд DCOM — генерирует полезную нагрузку PowerShell для выполнения на удаленной машине
  • Отчет — генерирует CSV-отчет со всей информацией об уязвимом DCOM-объекте
  • Выполнение команд — выполнение команд через DCOM-объекты

Автор

  • Nimrod Levy

Лицензия

  • GPL v3

Протестированные сценарии

  • Из вне домена в домен
  • Изнутри домена на другую машину, присоединенную к домену
  • Из домена вне домена
  • Из текущей сессии на другую машину, присоединенную к домену

Протестированные операционные системы

  • Windows 7 SP1
  • Windows 8.1
  • Windows 10
  • Windows Server 2019

Благодарности

  • Спасибо Rafel Ivgi за наставничество и помощь в архитектурном мышлении инструмента.
  • Спасибо Yossi Sasi за помощь в оптимизации скрипта.
  • Спасибо Gleb Glazkov за написание раздела по смягчению и предотвращению.

Установка:

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

Функция Invoke-DCOMObjectScan позволяет сканировать DCOM-объекты и находить уязвимые функции с помощью списка шаблонов или точных имен функций, которые вы указали в файле.

  • Примеры:

    1. Перечисляет и сканирует объект MMC20.Application (ProgID) с машины атакующего на хост DC01 без запроса реестра.

         Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipRegAuth -Username "lab\administrator" -Password "Aa123456!" -Verbose
      

    Примечание: Инструмент не будет анализировать разрешения ACL, и при успешном выполнении он получит всю информацию об объекте, за исключением сведений, упомянутых в реестре (например, имя объекта, исполняемый файл и т.д.).

    1. Проверяет, доступен ли объект MMC20.Application (ProgID) с машины атакующего на хост DC01 без предварительного запроса и проверки списка доступа DCOM-объекта.

         PS> Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipPermissionChecks -CheckAccessOnly -Verbose
      
Скачать инструмент