Abusing Active Directory ACLs/ACEs
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:
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 на користувача
Ця привілегія надає зловмиснику повний контроль над цільовим обліковим записом користувача. Після підтвердження прав GenericAll
за допомогою команди Get-ObjectAcl
, зловмисник може:
Змінити пароль цілі: Використовуючи
net user <username> <password> /domain
, зловмисник може скинути пароль користувача.Цілеспрямоване Kerberoasting: Призначити SPN обліковому запису користувача, щоб зробити його доступним для kerberoasting, а потім використовувати Rubeus та targetedKerberoast.py для витягування та спроби зламати хеші квитків на отримання квитків (TGT).
Targeted ASREPRoasting: Вимкніть попередню аутентифікацію для користувача, зробивши їх обліковий запис вразливим до ASREPRoasting.
GenericAll Права на Групу
Ця привілегія дозволяє зловмиснику маніпулювати членством у групах, якщо у них є GenericAll
права на групу, таку як Domain Admins
. Після ідентифікації відмінного імені групи за допомогою Get-NetGroup
, зловмисник може:
Додати Себе до Групи Domain Admins: Це можна зробити за допомогою прямих команд або використовуючи модулі, такі як Active Directory або PowerSploit.
GenericAll / GenericWrite / Write on Computer/User
Утримання цих привілеїв на об'єкті комп'ютера або обліковому записі користувача дозволяє:
Kerberos Resource-based Constrained Delegation: Дозволяє захопити об'єкт комп'ютера.
Shadow Credentials: Використовуйте цю техніку для видавання себе за обліковий запис комп'ютера або користувача, експлуатуючи привілеї для створення тіньових облікових даних.
WriteProperty on Group
Якщо користувач має права WriteProperty
на всі об'єкти для конкретної групи (наприклад, Domain Admins
), вони можуть:
Додати Себе до Групи Domain Admins: Це можна досягти, поєднуючи команди
net user
таAdd-NetGroupUser
, цей метод дозволяє ескалацію привілеїв у домені.
Self (Self-Membership) on Group
Ця привілегія дозволяє зловмисникам додавати себе до певних груп, таких як Domain Admins
, за допомогою команд, які безпосередньо маніпулюють членством у групі. Використання наступної послідовності команд дозволяє самостійно додаватися:
WriteProperty (Самостійне членство)
Схоже на привілей, це дозволяє зловмисникам безпосередньо додавати себе до груп, змінюючи властивості групи, якщо у них є право WriteProperty
на ці групи. Підтвердження та виконання цього привілею здійснюється за допомогою:
ForceChangePassword
Утримання ExtendedRight
на користувача для User-Force-Change-Password
дозволяє скидання паролів без знання поточного пароля. Перевірка цього права та його експлуатація можуть бути виконані через PowerShell або альтернативні командні інструменти, пропонуючи кілька методів для скидання пароля користувача, включаючи інтерактивні сесії та однорядкові команди для неінтерактивних середовищ. Команди варіюються від простих викликів PowerShell до використання rpcclient
на Linux, демонструючи універсальність векторів атак.
WriteOwner на групу
Якщо зловмисник виявляє, що має права WriteOwner
на групу, він може змінити власника групи на себе. Це особливо важливо, коли йдеться про групу Domain Admins
, оскільки зміна власника дозволяє отримати більший контроль над атрибутами групи та членством. Процес включає в себе ідентифікацію правильного об'єкта за допомогою Get-ObjectAcl
, а потім використання Set-DomainObjectOwner
для зміни власника, або за SID, або за ім'ям.
GenericWrite на користувача
Ця дозволяє зловмиснику змінювати властивості користувача. Зокрема, з доступом GenericWrite
, зловмисник може змінити шлях до сценарію входу користувача, щоб виконати шкідливий сценарій під час входу користувача. Це досягається за допомогою команди Set-ADObject
, щоб оновити властивість scriptpath
цільового користувача, вказавши на сценарій зловмисника.
GenericWrite на групу
З цим привілеєм зловмисники можуть маніпулювати членством у групі, наприклад, додаючи себе або інших користувачів до конкретних груп. Цей процес включає створення об'єкта облікових даних, використання його для додавання або видалення користувачів з групи та перевірку змін членства за допомогою команд PowerShell.
WriteDACL + WriteOwner
Володіння об'єктом AD та наявність привілеїв WriteDACL
на ньому дозволяє зловмиснику надати собі привілеї GenericAll
над об'єктом. Це досягається через маніпуляції з ADSI, що дозволяє повний контроль над об'єктом та можливість змінювати його членство в групах. Незважаючи на це, існують обмеження при спробі експлуатувати ці привілеї за допомогою командлетів модуля Active Directory Set-Acl
/ Get-Acl
.
Replication on the Domain (DCSync)
Атака DCSync використовує специфічні дозволи на реплікацію в домені, щоб імітувати Контролер домену та синхронізувати дані, включаючи облікові дані користувачів. Ця потужна техніка вимагає дозволів, таких як DS-Replication-Get-Changes
, що дозволяє зловмисникам витягувати чутливу інформацію з середовища AD без прямого доступу до Контролера домену. Дізнайтеся більше про атаку DCSync тут.
Делегування GPO
Делегування GPO
Делегований доступ для управління об'єктами групової політики (GPO) може створювати значні ризики для безпеки. Наприклад, якщо користувачу, такому як offense\spotless
, делеговані права управління GPO, він може мати привілеї, такі як WriteProperty, WriteDacl та WriteOwner. Ці дозволи можуть бути зловживані зловмисними цілями, як виявлено за допомогою PowerView: bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Перерахунок дозволів GPO
Щоб виявити неправильно налаштовані 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 - New-GPOImmediateTask
Неправильно налаштовані GPO можуть бути використані для виконання коду, наприклад, шляхом створення термінового запланованого завдання. Це можна зробити, щоб додати користувача до групи локальних адміністраторів на уражених машинах, значно підвищуючи привілеї:
GroupPolicy module - Зловживання GPO
Модуль GroupPolicy, якщо встановлений, дозволяє створювати та пов'язувати нові GPO, а також встановлювати параметри, такі як значення реєстру для виконання бекдорів на уражених комп'ютерах. Цей метод вимагає оновлення GPO та входу користувача в комп'ютер для виконання:
SharpGPOAbuse - Зловживання 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)
Last updated