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

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

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

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

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

Категории

Все категории
Loading categories
tgt-monitor-bof — Async BOF для автоматического извлечения или обновления Kerberos TGTs на целевой системе. | Kitploit
Инструменты/GitHubGitHub/jakobfriedl/tgt-monitor-bof
Латеральное перемещениеПост-эксплуатацияТестирование на ПроникновениеАутентификацияRed TeamingРазработка Полезной Нагрузки
GitHubjakobfriedl/tgt-monitor-bof

tgt-monitor-bof

Async BOF для автоматического извлечения или обновления Kerberos TGTs на целевой системе.

Репозиторий
1341041 месяц назадПроверено Kitploit

Популярное

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

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

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

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

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

Kerberos TGT Мониторинг & Автообновление

Этот репозиторий содержит два асинхронных файла объектных файлов Beacon (BOF). Первый, tgt-monitor, отслеживает события входа в систему Kerberos и пробуждает агента при обнаружении нового Kerberos TGT. Аналогично команде monitor из Rubeus, этот BOF работает бесконечно и периодически проверяет кэш билетов LSA в системе. При обнаружении нового TGT он выводит метаданные билета и возвращает blob в формате base64-encoded kirbi, который можно использовать для lateral movement через атаки pass-the-ticket. Второй, tgt-renew, автоматически обновляет TGT в системе, если их оставшееся время жизни ниже указанного порога (например, 15 минут).

[!Important] BOF в этом репозитории требуют возможности асинхронной загрузки объектных файлов. Такая функциональность предоставляется фреймворком Conquest.

  • Kerberos TGT Мониторинг & Автообновление
    • Как это работает
      • Мониторинг билетов
      • Обновление билетов
    • Использование
  • tgt-monitor
  • tgt-renew
  • Установка
  • Благодарности
  • Как это работает

    Оба BOF требуют запуска из контекста NT AUTHORITY\SYSTEM. Привилегии проверяются по той же логике.

    1. BOF проверяет маркер текущего процесса на доступ SYSTEM.
    2. Если маркер процесса не SYSTEM, BOF сканирует все потоки в текущем процессе на наличие маркера олицетворения с привилегиями SYSTEM и дублирует его. Это позволяет использовать его из процесса агента с низким уровнем целостности, который украл маркер SYSTEM (например, через SeImpersonatePrivilege). BOF завершается, если это также не даёт доступа уровня SYSTEM.
    3. Получаются дескрипторы LSA и пакета аутентификации Kerberos.

    Следующие шаги повторяются в цикле, пока BOF не будет отменён через событие остановки. Пользовательский интервал задаёт задержку между опросами.

    Мониторинг билетов

    1. Перечисляются все активные сеансы входа. Для каждого сеанса запрашивается кэш билетов Kerberos и фильтруется по TGT. Если был указан аргумент --user, учитываются только сеансы, соответствующие этому имени пользователя.
    2. Текущий кэш билетов сравнивается с предыдущим снимком. Новые TGT запускают вывод метаданных и base64-encoded kirbi, после чего вызывается BeaconWakeup() для принудительной проверки агента и возврата вывода.

    Workflow TGT Monitor

    Обновление билетов

    1. Перечисляются все активные сеансы входа. Для каждого сеанса запрашивается кэш билетов Kerberos и фильтруется по TGT. Если был указан аргумент --user, учитываются только сеансы, соответствующие этому имени пользователя.
    2. Каждый TGT проверяется по двум условиям:
      • Если билет прошёл время RenewUntil, он помечается как истекший, и требуется повторная аутентификация.
      • Если оставшееся время жизни билета меньше заданного порога, TGT обновляется и импортируется. В случае успеха выводятся обновлённые метаданные билета и base64-encoded kirbi, после чего вызывается BeaconWakeup().

    Workflow TGT Renew

    Процесс обновления билета включает следующие шаги:

    1. Извлечение ASN.1-кодированного Kerberos TGT с помощью ExtractTicket() с использованием LUID и SPN из структуры PTICKET_ENTRY.
    2. ASN.1-декодирование билета и получение учётных данных Kerberos.
    3. Создание пакета TGS-REQ для запроса обновления билета с использованием истекающего билета для предварительной аутентификации.
    4. Отправка байтов TGS-REQ на контроллер домена порт 88.
    5. Получение, ASN.1-декодирование и разбор ответа TGS-REP.
    6. Построение обновлённого билета, удаление старого билета из кэша и импорт обновлённого билета с помощью Pass-the-Ticket.
    7. Обновление startTime, endTime, renewUntil, ticketFlags и encryptionType в структуре PTICKET_ENTRY, вывод информации о билете и base64.

    Использование

    В этом репозитории представлен модуль Conquest, реализующий следующие две команды.

    tgt-monitor

    BOF tgt-monitor оповещает при обнаружении новых TGT и возвращает их в виде Base64-encoded blob. В файл объектного файла необходимо передать следующие аргументы:

    ИмяТипОписание
    intervalintТайм-аут между проверками в секундах.
    targetUsersstringНечувствительный к регистру список имён целевых пользователей, разделённый запятыми. Если это поле задано, извлекаются только TGT для указанных пользователей. В противном случае TGT собираются для всех пользователей. Обратите внимание, что учётные записи компьютеров должны заканчиваться на $.
    root@kitploit:~
    Usage: tgt-monitor [--interval interval] [--user user]
    Example: tgt-monitor --interval 5 --user DC01$
    
    Optional arguments:
      --interval interval       INT        Интервал опроса в секундах (по умолчанию: 60).
      --user user               STRING     Список имён целевых пользователей, разделённый запятыми (по умолчанию: все пользователи).
    

    TGT Monitor

    Закодированный билет можно использовать напрямую с Rubeus.exe ptt /ticket:<base64> или impacket-ticketConverter для дальнейшего lateral movement, как показано на скриншоте ниже. В Conquest можно использовать команду ptt для прямой инъекции билета в текущий сеанс входа, чтобы олицетворить целевого пользователя.

    Stealing tickets with TGT Monitor

    tgt-renew

    BOF tgt-renew автоматически обновляет билеты, срок действия которых скоро истечёт, пока их нельзя будет обновить. В файл объектного файла необходимо передать следующие аргументы:

    ИмяТипОписание
    intervalintТайм-аут между проверками в секундах.
    thresholdintПорог обновления в минутах. Билет обновляется, когда время до EndTime меньше этого порога.
    targetUsersstringНечувствительный к регистру список имён целевых пользователей, разделённый запятыми. Если это поле задано, обновляются только TGT для указанных пользователей. В противном случае TGT обновляются для всех пользователей. Обратите внимание, что учётные записи компьютеров должны заканчиваться на $.
    targetLuidsstringНечувствительный к регистру список целевых LUID, разделённый запятыми. Если это поле задано, обновляются только TGT для указанных LUID.
    root@kitploit:~
    Usage: tgt-renew [--interval seconds] [--threshold minutes] [--user user] [--luid luid]
    Example: tgt-renew --luid 0x3e4 --interval 300 --threshold 30
    
    Optional arguments:
      --interval seconds        INT        Интервал опроса в секундах (по умолчанию: 60).
      --threshold minutes       INT        Порог обновления билета в минутах (по умолчанию: 15).
      --user user               STRING     Список имён целевых пользователей, разделённый запятыми (по умолчанию: все пользователи).
      --luid luid               STRING     Список целевых LUID, разделённый запятыми (по умолчанию: все LUID).
    

    Флаги --user и --luid являются взаимоисключающими.

    TGT Renew

    Установка

    root@kitploit:~
    git clone https://github.com/jakobfriedl/tgt-monitor-bof
    cd tgt-monitor-bof
    make
    

    После этого используйте Script Manager Conquest для загрузки модуля dist/tgt-monitor.py.

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

    Реализация этого Beacon Object File основана на следующих проектах:

    • https://github.com/Ghostpack/Rubeus
    • https://github.com/RalfHacker/Kerbeus-BOF
      • Реализация ASN.1 кодирования/декодирования
    • https://github.com/wavvs/nanorobeus
    Скачать инструмент