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

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

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

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

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

Категории

Все категории
Loading categories
KRBUACBypass — Использует билеты Kerberos для обхода UAC Windows и получения привилегий SYSTEM путем внедрения поддельного MachineID в служебные билеты, применяя трюк tgtdeleg и доступ к SCM. | Kitploit
Инструменты/GitHubGitHub/wh0amitz/krbuacbypass
Повышение привилегийЭксплуатацияТестирование на ПроникновениеАутентификацияRed Teaming
GitHubwh0amitz/krbuacbypass

KRBUACBypass

Использует билеты Kerberos для обхода UAC Windows и получения привилегий SYSTEM путем внедрения поддельного MachineID в служебные билеты, применяя трюк tgtdeleg и доступ к SCM.

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

Популярное

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

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

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

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

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

Предыстория

Этот POC вдохновлен Джеймсом Форшо (@tiraniddo), представленным на BlackHat USA 2022 в докладе «Taking Kerberos To The Next Level». Он продемонстрировал демо-версию злоупотребления билетами Kerberos для обхода UAC. Добавив запись KERB-AD-RESTRICTION-ENTRY в сервисный билет, но подставив поддельный MachineID, можно легко обойти UAC и получить привилегии SYSTEM, обратившись к SCM для создания системной службы. Джеймс Форшо объяснил обоснование этого в блоге под названием «Bypassing UAC in the most Complex Way Possible!», что вызвало у меня большой интерес. Хотя он не предоставил полный код эксплойта, я построил POC на основе Rubeus. Как набор инструментов C# для низкоуровневого взаимодействия с Kerberos и злоупотребления билетами, Rubeus предоставляет удобный интерфейс, позволяющий легко инициировать запросы Kerberos и манипулировать билетами Kerberos.

Вы можете ознакомиться со статьями о KRBUACBypass в моем блоге «Revisiting a UAC Bypass By Abusing Kerberos Tickets», включая теоретическую основу и реализацию. Как сказано в статье, она вдохновлена докладом @tiraniddo «Taking Kerberos To The Next Level» (без его выступления я бы этого не сделал), и я просто реализовал ее в виде инструмента перед окончанием колледжа.

Трюк Tgtdeleg

Мы не можем вручную сгенерировать TGT, так как у нас нет и нет доступа к учетным данным текущего пользователя. Однако Бенжамен Дельпи (@gentilkiwi) в своем Kekeo добавил трюк (tgtdeleg), который позволяет злоупотреблять неограниченным делегированием для получения локального TGT с ключом сессии.

Tgtdeleg использует Kerberos GSS-API для получения доступных TGT для текущего пользователя без получения повышенных привилегий на хосте. Этот метод использует функцию AcquireCredentialsHandle для получения дескриптора учетных данных Kerberos для текущего пользователя и вызывает функцию InitializeSecurityContext для HOST/DC.domain.com с флагом ISC_REQ_DELEGATE и целевым SPN для подготовки псевдо-делегированного контекста для отправки на контроллер домена. Это приводит к тому, что KRB_AP-REQ в выводе GSS-API включает KRB_CRED в контрольную сумму аутентификатора. Затем ключ сессии сервисного билета извлекается из локального кэша Kerberos и используется для расшифровки KRB_CRED в аутентификаторе для получения рабочего TGT. Набор инструментов Rubeus также включает эту технику. Подробнее см. «Rubeus – Now With More Kekeo».

С этим TGT мы можем сгенерировать собственный сервисный билет, и возможный процесс операции выглядит следующим образом:

  1. Используйте трюк Tgtdeleg для получения TGT пользователя.
  2. Используйте TGT для запроса к KDC для генерации нового сервисного билета для локального компьютера. Добавьте запись KERB-AD-RESTRICTION-ENTRY, но подставьте поддельный MachineID.
  3. Отправьте сервисный билет в кэш.

Krbscm

После получения сервисного билета можно использовать аутентификацию Kerberos для доступа к именованным каналам SCM (Service Control Manager) или TCP через SPN HOST/HOSTNAME или RPC/HOSTNAME. Обратите внимание, что Win32 API SCM всегда использует аутентификацию Negotiate. Джеймс Форшо создал простой POC: SCMUACBypass.cpp, который через два API HOOK (AcquireCredentialsHandle и InitializeSecurityContextW) изменяет имя пакета аутентификации, вызываемого SCM (pszPackage), на Kerberos, чтобы SCM использовал Kerberos при локальной аутентификации.

Для получения дополнительной информации прочитайте:

  • На английском: https://whoamianony.top/posts/revisiting-a-uac-bypass-by-abusing-kerberos-tickets/
  • На китайском: https://paper.seebug.org/3003/

Давайте посмотрим на это в действии

Теперь давайте посмотрим на результат работы, как показано на рисунке ниже. Сначала запросите билет для службы HOST текущего сервера через функцию asktgs, затем создайте системную службу через krbscm для получения привилегий SYSTEM.

root@kitploit:~
KRBUACBypass.exe asktgs
KRBUACBypass.exe krbscm

Animation

Скачать инструмент