Abusing Active Directory ACLs/ACEs
Last updated
Last updated
Вивчайте та практикуйте Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Ця сторінка в основному є підсумком технік з https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces та https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges. Для отримання додаткової інформації перегляньте оригінальні статті.
Ця привілегія надає зловмиснику повний контроль над цільовим обліковим записом користувача. Після підтвердження прав GenericAll
за допомогою команди Get-ObjectAcl
, зловмисник може:
Змінити пароль цілі: Використовуючи net user <username> <password> /domain
, зловмисник може скинути пароль користувача.
Цілеспрямоване Kerberoasting: Призначте SPN обліковому запису користувача, щоб зробити його доступним для kerberoasting, а потім використовуйте Rubeus та targetedKerberoast.py для витягування та спроби зламати хеші квитків на отримання квитків (TGT).
Цілеспрямоване ASREPRoasting: Вимкніть попередню автентифікацію для користувача, зробивши його обліковий запис вразливим до ASREPRoasting.
Ця привілегія дозволяє зловмиснику маніпулювати членством у групах, якщо у них є GenericAll
права на групу, таку як Domain Admins
. Після ідентифікації відмінного імені групи за допомогою Get-NetGroup
, зловмисник може:
Додати Себе до Групи Domain Admins: Це можна зробити за допомогою прямих команд або використовуючи модулі, такі як Active Directory або PowerSploit.
Утримання цих привілеїв на об'єкті комп'ютера або обліковому записі користувача дозволяє:
Kerberos Resource-based Constrained Delegation: Дозволяє захопити об'єкт комп'ютера.
Shadow Credentials: Використовуйте цю техніку для видавання себе за обліковий запис комп'ютера або користувача, експлуатуючи привілеї для створення тіньових облікових даних.
Якщо користувач має права WriteProperty
на всі об'єкти для конкретної групи (наприклад, Domain Admins
), вони можуть:
Додати Себе до Групи Domain Admins: Це можна досягти, поєднуючи команди net user
та Add-NetGroupUser
, цей метод дозволяє ескалацію привілеїв у домені.
Ця привілегія дозволяє зловмисникам додавати себе до певних груп, таких як Domain Admins
, за допомогою команд, які безпосередньо маніпулюють членством у групі. Використання наступної послідовності команд дозволяє самостійно додаватися:
Схоже на привілей, це дозволяє зловмисникам безпосередньо додавати себе до груп, змінюючи властивості групи, якщо у них є право WriteProperty
на ці групи. Підтвердження та виконання цього привілею здійснюється за допомогою:
Утримання ExtendedRight
на користувача для User-Force-Change-Password
дозволяє скидання паролів без знання поточного пароля. Перевірка цього права та його експлуатація можуть бути виконані через PowerShell або альтернативні командні інструменти, пропонуючи кілька методів для скидання пароля користувача, включаючи інтерактивні сесії та однорядкові команди для неінтерактивних середовищ. Команди варіюються від простих викликів PowerShell до використання rpcclient
на Linux, демонструючи універсальність векторів атак.
Якщо зловмисник виявляє, що має права WriteOwner
на групу, він може змінити власника групи на себе. Це особливо важливо, коли йдеться про групу Domain Admins
, оскільки зміна власності дозволяє отримати більший контроль над атрибутами групи та членством. Процес включає в себе ідентифікацію правильного об'єкта за допомогою Get-ObjectAcl
, а потім використання Set-DomainObjectOwner
для зміни власника, або за SID, або за ім'ям.
Ця дозволяє зловмиснику змінювати властивості користувача. Зокрема, з доступом GenericWrite
, зловмисник може змінити шлях до скрипту входу користувача, щоб виконати шкідливий скрипт під час входу користувача. Це досягається за допомогою команди Set-ADObject
, щоб оновити властивість scriptpath
цільового користувача, вказавши на скрипт зловмисника.
З цим привілеєм зловмисники можуть маніпулювати членством у групі, наприклад, додаючи себе або інших користувачів до конкретних груп. Цей процес включає створення об'єкта облікових даних, використання його для додавання або видалення користувачів з групи та перевірку змін членства за допомогою команд PowerShell.
Володіння об'єктом AD та наявність привілеїв WriteDACL
на ньому дозволяє зловмиснику надати собі привілеї GenericAll
над об'єктом. Це досягається через маніпуляцію ADSI, що дозволяє повний контроль над об'єктом та можливість змінювати його членство в групах. Незважаючи на це, існують обмеження при спробі експлуатувати ці привілеї за допомогою командлетів модуля Active Directory Set-Acl
/ Get-Acl
.
Атака DCSync використовує специфічні дозволи на реплікацію в домені, щоб імітувати Контролер домену та синхронізувати дані, включаючи облікові дані користувачів. Ця потужна техніка вимагає дозволів, таких як DS-Replication-Get-Changes
, що дозволяє зловмисникам витягувати чутливу інформацію з середовища AD без прямого доступу до Контролера домену. Дізнайтеся більше про атаку DCSync тут.
Делегований доступ для управління об'єктами групової політики (GPO) може створювати значні ризики для безпеки. Наприклад, якщо користувачу, такому як offense\spotless
, делеговані права управління GPO, він може мати привілеї, такі як WriteProperty, WriteDacl та WriteOwner. Ці дозволи можуть бути зловживані зловмисними цілями, як виявлено за допомогою PowerView: bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Щоб виявити неправильно налаштовані GPO, команди PowerSploit можна з'єднати разом. Це дозволяє виявити GPO, до яких конкретний користувач має права управління: powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Комп'ютери з застосованою політикою: Можливо визначити, до яких комп'ютерів застосовується конкретний GPO, що допомагає зрозуміти обсяг потенційного впливу. powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
Політики, застосовані до конкретного комп'ютера: Щоб побачити, які політики застосовані до певного комп'ютера, можна використовувати команди, такі як Get-DomainGPO
.
OU з застосованою політикою: Визначити організаційні одиниці (OU), на які вплинула конкретна політика, можна за допомогою Get-DomainOU
.
Неправильно налаштовані GPO можуть бути використані для виконання коду, наприклад, шляхом створення термінового запланованого завдання. Це можна зробити, щоб додати користувача до групи локальних адміністраторів на уражених машинах, значно підвищуючи привілеї:
Модуль GroupPolicy, якщо встановлений, дозволяє створювати та пов'язувати нові GPO, а також встановлювати параметри, такі як значення реєстру для виконання бекдорів на уражених комп'ютерах. Цей метод вимагає оновлення GPO та входу користувача на комп'ютер для виконання:
SharpGPOAbuse пропонує метод зловживання існуючими GPO, додаючи завдання або змінюючи налаштування без необхідності створення нових GPO. Цей інструмент вимагає модифікації існуючих GPO або використання інструментів RSAT для створення нових перед внесенням змін:
Оновлення GPO зазвичай відбуваються приблизно кожні 90 хвилин. Щоб прискорити цей процес, особливо після внесення змін, команду gpupdate /force
можна використовувати на цільовому комп'ютері для примусового негайного оновлення політики. Ця команда забезпечує застосування будь-яких змін до GPO без очікування наступного автоматичного циклу оновлення.
При перевірці запланованих завдань для певного GPO, наприклад, Misconfigured Policy
, можна підтвердити додавання завдань, таких як evilTask
. Ці завдання створюються за допомогою скриптів або командних інструментів, що мають на меті змінити поведінку системи або підвищити привілеї.
Структура завдання, як показано у XML конфігураційному файлі, згенерованому New-GPOImmediateTask
, описує специфіку запланованого завдання - включаючи команду, що має бути виконана, та її тригери. Цей файл представляє, як заплановані завдання визначаються та керуються в межах GPO, надаючи метод для виконання довільних команд або скриптів як частини виконання політики.
GPO також дозволяють маніпулювати членством користувачів та груп на цільових системах. Шляхом редагування файлів політики Користувачів та Груп безпосередньо, зловмисники можуть додавати користувачів до привілейованих груп, таких як локальна група administrators
. Це можливо завдяки делегуванню прав управління GPO, що дозволяє змінювати файли політики, щоб включити нових користувачів або змінити членство в групах.
XML конфігураційний файл для Користувачів та Груп описує, як ці зміни реалізуються. Додаючи записи до цього файлу, конкретним користувачам можуть бути надані підвищені привілеї на уражених системах. Цей метод пропонує прямий підхід до підвищення привілеїв через маніпуляцію GPO.
Крім того, можуть бути розглянуті додаткові методи виконання коду або підтримки постійності, такі як використання скриптів входу/виходу, модифікація ключів реєстру для автозапуску, встановлення програмного забезпечення через .msi файли або редагування конфігурацій служб. Ці техніки надають різні шляхи для підтримки доступу та контролю цільових систем через зловживання GPO.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)