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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/nccgroup/accomplice
Механизмы персистентностиПост-эксплуатацияRed TeamingРазработка Полезной Нагрузки
GitHubnccgroup/accomplice

acCOMplice

Инструменты для обнаружения и эксплуатации COM-перехватов

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

Популярное

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

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

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

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

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

acCOMplice

Ваш сообщник по COM-перехвату

Автор: David Tulis (@kafkaesqu3)

Обзор

Этот репозиторий содержит примеры кода и концепт-доказательства для изучения COM-перехвата. COM-перехват — это техника пост-эксплуатации Windows, которую можно использовать для закрепления или обхода защиты.

Для получения дополнительной информации о COM-интерфейсе, о том, как находить перехваты, и о техниках злоупотребления перехватом, обратитесь к презентации, представленной на Derbycon 9, Техники COM-перехвата.

  • Слайды: https://www.slideshare.net/DavidTulis1/com-hijacking-techniques-derbycon-2019
  • Презентация: https://www.youtube.com/watch?v=pH14BvUiTLY

Проект

  • COMHijackToolkit: PowerShell-скрипт, содержащий вспомогательные скрипты для работы с COM-перехватами. Основные возможности:
    • Extract-HijackableKeysFromProcmonCSV: анализирует экспорт Procmon в формате CSV на предмет перехватываемых объектов
    • Hijack-CLSID: перехватывает CLSID с помощью заданной DLL
    • Hijack-MultipleKeys: перехватывает несколько CLSID одновременно с помощью заданной DLL. Это полезно для поиска CLSID, которые часто активируются
  • InjectionTemplates: 3 шаблона, продемонстрированных на презентации Derbycon
    • Создание нового процесса с помощью CreateProcess
    • Внедрение в существующий процесс с помощью CreateRemoteThread
    • Измерение времени жизни потоков в текущем процессе с помощью CreateThread
  • COMinject: концепт-доказательство, демонстрирующее, как COM-перехваты можно использовать для внедрения/миграции процессов
  • masterkeys.csv: несколько ключей для экспериментов
  • procmon-filters: фильтры для Procmon, помогающие в идентификации перехватов и их эксплуатации

Примеры

COMHijackToolkit

PowerShell-скрипт, содержащий вспомогательные скрипты для работы с COM-перехватами. Основные возможности:

Показать все CLSID COM-объектов и расположение реализации на диске

root@kitploit:~
$keys = Get-CLSIDRegistryKeys -RegHive HKCR
$results = $keys | % {$guid = Extract-GUIDFromText $_; Map-GUIDToDLL -guid $guid 2> $null }

Провести обзор CLSID в системе

root@kitploit:~
$HKCR_keys = Get-CLSIDRegistryKeys -RegHive HKCR
$HKCR_keys | where-object {$_ -like "*inprocserver"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*inprocserver32"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*localserver"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*localserver32"} | Measure-Object

$HKLM_keys = Get-CLSIDRegistryKeys -RegHive HKLM
$HKLM_keys | Measure-Object
$HKCU_keys = Get-CLSIDRegistryKeys -RegHive HKCU
$HKCU_keys | Measure-Object
root@kitploit:~
explorer:{69486DD6-C19F-42e8-B508-A53F9F8E67B8}
explorer:{9E175B6D-F52A-11D8-B9A5-505054503030}
explorer:{30CC9D06-7E62-4966-9777-BC3442E788BD}
explorer:{3eef301f-b596-4c0b-bd92-013beafce793}
explorer:{682159d9-c321-47ca-b3f1-30e36b2ec8b9}
explorer:{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}
explorer:{9aa46009-3ce0-458a-a354-715610a075e6}
explorer:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}
explorer:{AC36A05C-FB95-4C7A-868C-A43CC8D2D926}
explorer:{B52D54BB-4818-4EB9-AA80-F9EACD371DF8}
explorer:{c2f03a33-21f5-47fa-b4bb-156362a2f239}

Найти CLSID, ссылающиеся на DLL, которой не существует в системе:

root@kitploit:~
Find-MissingLibraries

InjectionTemplates

3 шаблона концепт-доказательств для злоупотребления COM-перехватом, как было продемонстрировано на презентации Derbycon 9:

  • HijackDLL-Process: создание нового процесса при загрузке DLL
  • HijackDLL-CreateRemoteThread: выполнение техники внедрения потока с использованием вызова API CreateRemoteThread, когда DLL загружена
  • HijackDLL-Threads: полезен для измерения времени жизни потоков, запущенных в DLL после перехвата

COMinject

Концепт-доказательство, показывающее, как COM-перехват может использоваться для внедрения в процессы:

  • COMInjectDotNet: клиент (концепт-доказательство), который внедряет DLL в поддерживаемый процесс через COM-перехват
  • COMInjectTarget: целевая библиотека для внедрения в процесс

Первый шаг — выполнить перехват:

root@kitploit:~
COMInjectDotNet.exe chrome.exe C:\COM\COMInjectTarget.dll

Перехват не сработает немедленно; возможно, потребуется запустить приложение (если оно ещё не запущено) или выполнить некоторые базовые действия в приложении. Вероятно, есть и более удачные CLSID, срабатывающие чаще, но и этих достаточно.

COMInjectTarget.dll будет записывать ход своего выполнения в файл журнала в C:\COM. Это выглядит более стабильным, чем использование, например, AllocConsole из другого процесса и обычный вывод на консоль.

Ниже показана внедрённая DLL, работающая внутри основного процесса chrome.exe:

root@kitploit:~
[*] chrome pid=9104 ppid=4900 (count 0)
[*] chrome pid=9104 ppid=4900 (count 1)
[*] chrome pid=9104 ppid=4900 (count 2)
[*] chrome pid=9104 ppid=4900 (count 3)
[*] chrome pid=9104 ppid=4900 (count 4)
[*] chrome pid=9104 ppid=4900 (count 5)

В настоящее время поддерживаются следующие процессы:

  • explorer (по умолчанию)
  • chrome
  • excel
  • word
  • outlook

Ссылки и благодарности

Чтобы узнать больше о COM и COM-перехватах:

  • Leo Loobeek (@leoloobeek):
    • COMProxy, из которого я активно заимствовал код
    • Проксирование COM для стабильных перехватов
  • Matt Nelson (@enigma0x3):
    • Закрепление в пользовательском режиме с помощью запланированных задач и перехвата COM-обработчиков
  • Серия @bohops о COM-перехватах:
    • Злоупотребление структурой реестра COM: CLSID, LocalServer32 и InprocServer32
    • Злоупотребление структурой реестра COM (часть 2): техники перехвата и загрузки
  • James Forshaw (@tiraniddo):
    • Развлекаемся с COM
    • COM за 60 секунд
    • OleViewDotNet
  • Casey Smith (@subtee) + @enimga0x3:
    • Археология операционной системы Windows (слайды, код)
Скачать инструмент