Перейти к содержимому
AD Academy
Атаки на AD
Продвинутый20 мин.Обновлено: Тема 4 из 7

Diamond Ticket и Bronze Bit

Изменение настоящего TGT под радаром и эксплуатация Constrained Delegation даже на Protected Users.

Не прочитано

Что вы узнаете

  • Чем Golden Ticket отличается от Diamond Ticket
  • Как Bronze Bit обходит пометку sensitive/Protected Users
  • Что видно в журналах и что блокирует обе атаки

Перед этой темой стоит прочитать:KerberoastingPass-the-Hash и Pass-the-Ticket

Diamond Ticket — теория

В строится с нуля с помощью ключа KRBTGT и придуманного PAC. Проблема: придуманный PAC не содержит реальных данных и поэтому его легче обнаружить.

В ничего не строится — берётся настоящий легитимный существующего пользователя, расшифровывается ключом KRBTGT, изменяется PAC (добавляются группы, SIDHistory, права) и шифруется обратно. Снаружи он выглядит как обычный TGT — те же поля, те же подписи.

Результат: злоумышленник повышает права до Admin, используя легитимную учётную запись и легитимный обычного пользователя.

Две колонки: слева Golden Ticket — создание TGT с нуля с придуманным PAC, легче обнаружить. Справа Diamond Ticket — расшифровка настоящего TGT, изменение PAC и обратное шифрование, выглядит легитимно. Двойная смена KRBTGT инвалидирует оба.

Коротко и понятно

  • Golden Ticket создаёт TGT с нуля с придуманным PAC; Diamond Ticket изменяет реальный существующий TGT.
  • Diamond выглядит легитимнее — те же поля и подписи.
  • Bronze Bit обходит ограничение делегирования для Protected Users.
  • Двойная смена KRBTGT инвалидирует и Golden, и Diamond.

Пример из практикиПосле подозрения на взлом смените KRBTGT дважды с интервалом в несколько часов. Все TGT, созданные или изменённые старым ключом, немедленно станут недействительными.

Bronze Bit (CVE-2020-17049) — теория

KDC должен отказывать в S4U2Proxy для учётных записей, помеченных «Account is sensitive and cannot be delegated» или входящих в Protected Users. Защита опирается на то, что KDC проверяет флаг и на подпись PAC.

: злоумышленник извлекает хэш сервисной учётки-получателя и пропускает проверку подписи — подаёт запрос с «исправленной» подписью, и KDC принимает его даже для защищённой учётки. Учётка, которая не должна делегироваться — делегируется на практике.

Практика — только в лаборатории

# Diamond Ticket с Rubeus (на основе существующего TGT)
Rubeus.exe diamond /krbkey:<KRBTGT_AES_KEY> /tgtdeleg /show /ptt

# Или с ключом RC4
Rubeus.exe diamond /rc4:<KRBTGT_RC4> /user:victim /domain:corp.local /ptt
powershell
# Bronze Bit против учетной записи Protected Users
Rubeus.exe s4u /user:svc_web /rc4:<svc_web_hash> \
  /impersonateuser:Administrator \
  /msdsspn:http/app.corp.local /ptt /bronzebit
powershell

Обнаружение (Detection)

  • 4768 / 4769 — сравнение lifetime и encryption type: иногда создаётся с RC4 вместо AES вопреки политике домена.
  • Аномалия PAC: группы или SIDHistory, отсутствующие у исходного пользователя — ловится в логах на стороне приложения (4624 Type 3 с расширенным PAC).
  • S4U2Proxy для sensitive-учёток — должно быть нулевым; любое событие = подозрение на .
  • Корреляция: svc_web обращается к KDC через S4U от имени Administrator через минуту после запроса хэша — подозрительный паттерн.

Митигация

  • Двойная смена ключа KRBTGT (при любом подозрении на компрометацию) — инвалидирует все Diamond/Golden Tickets.
  • Минимизация поверхности делегирования: уберите , перейдите только на .
  • Защита KRBTGT и DC — полный Tier 0.
  • Protected Users всё ещё полезны: требует предварительных прав на сервис; это сужает место, где она возможна.
  • Патч (ноябрь 2020 и новее) + политика KrbtgtFullPacSignature.

Проверь себя

В чём главное отличие Golden Ticket от Diamond Ticket?

Какой ключ используется для расшифровки и повторного шифрования TGT в Diamond Ticket?

Что делает Bronze Bit на практике?

Какое защитное действие «убивает» и Golden, и Diamond Tickets?

Эта страница вам помогла?