Перейти к содержимому
AD Academy
Delegation в Active Directory
Продвинутый15 мин.Обновлено: Тема 3 из 4

Constrained Delegation (KCD)

Делегирование, ограниченное списком служб, и что такое Protocol Transition.

Не прочитано

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

  • Два режима
  • Защита
  • Делегирование, ограниченное списком служб, и что такое Protocol Transition.

Перед этой темой стоит прочитать:Unconstrained Delegation

В явно указывают, для каких серверу разрешено выдавать себя за пользователя, через атрибут msDS-AllowedToDelegateTo. Это гораздо безопаснее, чем Unconstrained, но всё же не лишено рисков.

שרת Web עם KCD מבקש מה־KDC כרטיס בשם המשתמש (S4U2Self), ואז מבקש כרטיס לשירות המטרה (S4U2Proxy). ה־KDC בודק את msDS-AllowedToDelegateTo לפני שהוא מנפיק כרטיס ל־MSSQLSvc. סיכון: Service Name Substitution — רכיב השירות בכרטיס אינו נאכף, ולכן ניתן להחליף SPN לשירות אחר על אותו שרת. הגנה: הימנעות מ־Protocol Transition, שימוש ב־gMSA, ולא להאציל לחשבונות Tier 0.

Два режима

  • Use only — пользователь обязан пройти аутентификацию к службе через Kerberos (только S4U2Proxy).
  • Use any authentication protocol (Protocol Transition) — служба может выдать билет от имени пользователя, даже если тот не аутентифицировался через (S4U2Self). Это опасный режим.

Риск: в списке определяет службу, но компонент службы в билете реально не проверяется. Атакующий, контролирующий учётную запись с и Protocol Transition, может подменить имя службы (Service Name Substitution) и получить доступ к другим службам на том же целевом сервере.

Защита

  • Избегать Protocol Transition, если нет другого выхода.
  • Давать делегирование только выделенным сервисным учётным записям с длинными паролями (gMSA).
  • Никогда не делегировать службам, работающим на Tier 0 (DC, ADFS, PKI).
  • Периодически проверять все объекты с msDS-AllowedToDelegateTo.
Архитектура и теория — Под капотом

ограничивает выдачу себя за другого определенным списком . Но ограничение касается SPN — а не сервиса. Тот, кто контролирует учетную запись, может запросить билет для любого SPN на этом целевом компьютере.

  • Only — требуется настоящий билет от пользователя, нет инициативной выдачи себя за другого.
  • Protocol Transition — сервер может самостоятельно выдавать себя за другую личность через S4U2Self. Опасная настройка.
  • Единый , разрешенный для CIFS, фактически открывает доступ также к HOST, и RPCSS на том же компьютере.
Практическая настройка (PowerShell / GUI)
# הגדרה מאובטחת: Kerberos Only בלבד
Set-ADUser svc_web -Add @{'msDS-AllowedToDelegateTo'='HTTP/app01.corp.com'}
Set-ADAccountControl svc_web -TrustedToAuthForDelegation $false

# ביקורת: מי מוגדר Protocol Transition
Get-ADObject -LDAPFilter '(userAccountControl:1.2.840.113556.1.4.803:=16777216)' -Properties samAccountName
powershell
Реальные сценарии в организации
  • Сервер приложений, обращающийся к файловому ресурсу от имени пользователя.
  • Внутренний портал против Exchange или SQL.
Диагностика и устранение неполадок
  • KDC_ERR_BADOPTION — запрошенный отсутствует в списке или написан с ошибкой.
  • Двойной в домене → аутентификация полностью терпит неудачу. Проверяется с помощью setspn -X.
setspn -X
setspn -L svc_web
bash
Глоссарий и быстрая командная строка
  • S4U2Self = Получить билет от имени пользователя.
  • S4U2Proxy = Передать его к цели.
  • Substitution — встроенное ослабление .

Проверь себя

Какой атрибут определяет классическую Constrained Delegation?

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