mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/windows-hardening/active-directory-methodology/README.m
This commit is contained in:
parent
c7244a9e62
commit
25a985d2d8
@ -241,6 +241,7 @@
|
||||
- [Windows C Payloads](windows-hardening/windows-local-privilege-escalation/windows-c-payloads.md)
|
||||
- [Active Directory Methodology](windows-hardening/active-directory-methodology/README.md)
|
||||
- [Abusing Active Directory ACLs/ACEs](windows-hardening/active-directory-methodology/acl-persistence-abuse/README.md)
|
||||
- [BadSuccessor](windows-hardening/active-directory-methodology/acl-persistence-abuse/BadSuccessor.md)
|
||||
- [Shadow Credentials](windows-hardening/active-directory-methodology/acl-persistence-abuse/shadow-credentials.md)
|
||||
- [AD Certificates](windows-hardening/active-directory-methodology/ad-certificates/README.md)
|
||||
- [AD CS Account Persistence](windows-hardening/active-directory-methodology/ad-certificates/account-persistence.md)
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
**Active Directory** служить основною технологією, що дозволяє **мережевим адміністраторам** ефективно створювати та керувати **доменами**, **користувачами** та **об'єктами** в межах мережі. Вона спроектована для масштабування, полегшуючи організацію великої кількості користувачів у керовані **групи** та **підгрупи**, контролюючи **права доступу** на різних рівнях.
|
||||
|
||||
Структура **Active Directory** складається з трьох основних рівнів: **домени**, **дерева** та **ліси**. **Домен** охоплює колекцію об'єктів, таких як **користувачі** або **пристрої**, які ділять спільну базу даних. **Дерева** — це групи цих доменів, пов'язані спільною структурою, а **ліс** представляє колекцію кількох дерев, взаємопов'язаних через **довірчі відносини**, формуючи найвищий рівень організаційної структури. Конкретні **права доступу** та **права на зв'язок** можуть бути призначені на кожному з цих рівнів.
|
||||
Структура **Active Directory** складається з трьох основних рівнів: **домени**, **дерева** та **ліси**. **Домен** охоплює колекцію об'єктів, таких як **користувачі** або **пристрої**, які ділять спільну базу даних. **Дерева** — це групи цих доменів, пов'язані спільною структурою, а **ліс** представляє колекцію кількох дерев, з'єднаних через **довірчі відносини**, формуючи найвищий рівень організаційної структури. Конкретні **права доступу** та **права на зв'язок** можуть бути призначені на кожному з цих рівнів.
|
||||
|
||||
Ключові концепції в **Active Directory** включають:
|
||||
|
||||
@ -23,13 +23,13 @@
|
||||
3. **Lightweight Directory Services** – Підтримує програми, що використовують каталог, через **LDAP протокол**.
|
||||
4. **Directory Federation Services** – Надає можливості **одного входу** для автентифікації користувачів через кілька веб-додатків в одній сесії.
|
||||
5. **Rights Management** – Допомагає захистити авторські матеріали, регулюючи їх несанкціоноване розповсюдження та використання.
|
||||
6. **DNS Service** – Критично важливий для розв'язання **доменних імен**.
|
||||
6. **DNS Service** – Критично важливий для розв'язання **імен доменів**.
|
||||
|
||||
Для більш детального пояснення перегляньте: [**TechTerms - Визначення Active Directory**](https://techterms.com/definition/active_directory)
|
||||
|
||||
### **Kerberos Authentication**
|
||||
|
||||
Щоб навчитися **атакувати AD**, вам потрібно **дуже добре розуміти** **процес автентифікації Kerberos**.\
|
||||
Щоб навчитися, як **атакувати AD**, вам потрібно **дуже добре розуміти** **процес автентифікації Kerberos**.\
|
||||
[**Прочитайте цю сторінку, якщо ви ще не знаєте, як це працює.**](kerberos-authentication.md)
|
||||
|
||||
## Cheat Sheet
|
||||
@ -48,7 +48,7 @@
|
||||
- Перерахування DNS може надати інформацію про ключові сервери в домені, такі як веб, принтери, спільні ресурси, vpn, медіа тощо.
|
||||
- `gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt`
|
||||
- Ознайомтеся з Загальною [**Методологією Пентестингу**](../../generic-methodologies-and-resources/pentesting-methodology.md), щоб знайти більше інформації про те, як це зробити.
|
||||
- **Перевірте наявність доступу без облікових даних та Гостя на smb-сервісах** (це не спрацює на сучасних версіях Windows):
|
||||
- **Перевірте доступ без облікових даних та доступ Гостя на smb-сервісах** (це не спрацює на сучасних версіях Windows):
|
||||
- `enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>`
|
||||
- `smbmap -u "" -p "" -P 445 -H <DC IP> && smbmap -u "guest" -p "" -P 445 -H <DC IP>`
|
||||
- `smbclient -U '%' -L //<DC IP> && smbclient -U 'guest%' -L //`
|
||||
@ -69,19 +69,19 @@
|
||||
- **Poison the network**
|
||||
- Збирати облікові дані [**імітуючи сервіси з Responder**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
- Отримати доступ до хоста, [**зловживаючи атакою реле**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)
|
||||
- Збирати облікові дані, **викриваючи** [**підроблені UPnP сервіси з evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
|
||||
- Збирати облікові дані **викриваючи** [**підроблені UPnP сервіси з evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
|
||||
- [**OSINT**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/external-recon-methodology/index.html):
|
||||
- Витягувати імена користувачів/імена з внутрішніх документів, соціальних мереж, сервісів (в основному веб) в середовищах домену, а також з публічно доступних джерел.
|
||||
- Якщо ви знайдете повні імена працівників компанії, ви можете спробувати різні конвенції **імен користувачів AD** (**[читайте це](https://activedirectorypro.com/active-directory-user-naming-convention/)**). Найбільш поширені конвенції: _NameSurname_, _Name.Surname_, _NamSur_ (3 літери з кожного), _Nam.Sur_, _NSurname_, _N.Surname_, _SurnameName_, _Surname.Name_, _SurnameN_, _Surname.N_, 3 _випадкові літери та 3 випадкові цифри_ (abc123).
|
||||
- Витягувати імена користувачів/імена з внутрішніх документів, соціальних мереж, сервісів (в основному веб) в межах доменних середовищ, а також з публічно доступних джерел.
|
||||
- Якщо ви знайдете повні імена працівників компанії, ви можете спробувати різні конвенції імен користувачів AD (**[читайте це**](https://activedirectorypro.com/active-directory-user-naming-convention/)). Найбільш поширені конвенції: _NameSurname_, _Name.Surname_, _NamSur_ (3 літери з кожного), _Nam.Sur_, _NSurname_, _N.Surname_, _SurnameName_, _Surname.Name_, _SurnameN_, _Surname.N_, 3 _випадкові літери та 3 випадкові цифри_ (abc123).
|
||||
- Інструменти:
|
||||
- [w0Tx/generate-ad-username](https://github.com/w0Tx/generate-ad-username)
|
||||
- [urbanadventurer/username-anarchy](https://github.com/urbanadventurer/username-anarchy)
|
||||
|
||||
### User enumeration
|
||||
|
||||
- **Anonymous SMB/LDAP enum:** Перевірте сторінки [**пентестингу SMB**](../../network-services-pentesting/pentesting-smb/index.html) та [**пентестингу LDAP**](../../network-services-pentesting/pentesting-ldap.md).
|
||||
- **Анонімний SMB/LDAP enum:** Перевірте сторінки [**пентестингу SMB**](../../network-services-pentesting/pentesting-smb/index.html) та [**пентестингу LDAP**](../../network-services-pentesting/pentesting-ldap.md).
|
||||
- **Kerbrute enum**: Коли запитується **недійсне ім'я користувача**, сервер відповість, використовуючи **код помилки Kerberos** _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_, що дозволяє нам визначити, що ім'я користувача було недійсним. **Дійсні імена користувачів** викличуть або **TGT в AS-REP** відповіді, або помилку _KRB5KDC_ERR_PREAUTH_REQUIRED_, що вказує на те, що користувачеві потрібно виконати попередню автентифікацію.
|
||||
- **No Authentication against MS-NRPC**: Використовуючи auth-level = 1 (без автентифікації) проти інтерфейсу MS-NRPC (Netlogon) на контролерах домену. Метод викликає функцію `DsrGetDcNameEx2` після прив'язки інтерфейсу MS-NRPC, щоб перевірити, чи існує користувач або комп'ютер без жодних облікових даних. Інструмент [NauthNRPC](https://github.com/sud0Ru/NauthNRPC) реалізує цей тип перерахунку. Дослідження можна знайти [тут](https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2024/05/22190247/A-journey-into-forgotten-Null-Session-and-MS-RPC-interfaces.pdf)
|
||||
- **Без автентифікації проти MS-NRPC**: Використання auth-level = 1 (Без автентифікації) проти інтерфейсу MS-NRPC (Netlogon) на контролерах домену. Метод викликає функцію `DsrGetDcNameEx2` після прив'язки інтерфейсу MS-NRPC, щоб перевірити, чи існує користувач або комп'ютер без жодних облікових даних. Інструмент [NauthNRPC](https://github.com/sud0Ru/NauthNRPC) реалізує цей тип перерахунку. Дослідження можна знайти [тут](https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2024/05/22190247/A-journey-into-forgotten-Null-Session-and-MS-RPC-interfaces.pdf)
|
||||
```bash
|
||||
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases
|
||||
|
||||
@ -110,13 +110,13 @@ Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password
|
||||
> [!WARNING]
|
||||
> Ви можете знайти списки імен користувачів у [**цьому репозиторії github**](https://github.com/danielmiessler/SecLists/tree/master/Usernames/Names) та у цьому ([**статистично ймовірні імена користувачів**](https://github.com/insidetrust/statistically-likely-usernames)).
|
||||
>
|
||||
> Однак, ви повинні мати **імена людей, які працюють у компанії** з етапу розвідки, який ви повинні були виконати раніше. З іменем та прізвищем ви можете використовувати скрипт [**namemash.py**](https://gist.github.com/superkojiman/11076951) для генерації потенційно дійсних імен користувачів.
|
||||
> Однак, ви повинні мати **імена людей, які працюють у компанії** з етапу розвідки, який ви повинні були виконати раніше. З іменем та прізвищем ви можете використовувати скрипт [**namemash.py**](https://gist.github.com/superkojiman/11076951) для генерації потенційних дійсних імен користувачів.
|
||||
|
||||
### Знання одного або кількох імен користувачів
|
||||
|
||||
Отже, ви знаєте, що у вас вже є дійсне ім'я користувача, але немає паролів... Тоді спробуйте:
|
||||
|
||||
- [**ASREPRoast**](asreproast.md): Якщо у користувача **немає** атрибута _DONT_REQ_PREAUTH_, ви можете **запросити AS_REP повідомлення** для цього користувача, яке міститиме деякі дані, зашифровані похідною від пароля користувача.
|
||||
- [**ASREPRoast**](asreproast.md): Якщо у користувача **немає** атрибута _DONT_REQ_PREAUTH_, ви можете **запросити AS_REP повідомлення** для цього користувача, яке міститиме деякі дані, зашифровані похідною пароля користувача.
|
||||
- [**Password Spraying**](password-spraying.md): Спробуємо найпоширеніші **паролі** з кожним з виявлених користувачів, можливо, деякий користувач використовує поганий пароль (пам'ятайте про політику паролів!).
|
||||
- Зверніть увагу, що ви також можете **спрейти OWA сервери**, щоб спробувати отримати доступ до поштових серверів користувачів.
|
||||
|
||||
@ -136,7 +136,7 @@ password-spraying.md
|
||||
|
||||
Якщо вам вдалося перерахувати активний каталог, ви отримаєте **більше електронних адрес і краще розуміння мережі**. Ви можете спробувати примусити NTLM [**реле атаки**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack), щоб отримати доступ до середовища AD.
|
||||
|
||||
### Вкрасти NTLM креденціали
|
||||
### Вкрасти NTLM кредити
|
||||
|
||||
Якщо ви можете **отримати доступ до інших ПК або загальних ресурсів** з **нульовим або гостьовим користувачем**, ви можете **розмістити файли** (наприклад, файл SCF), які, якщо їх якось отримають доступ, **спровокують NTLM аутентифікацію проти вас**, щоб ви могли **вкрасти** **NTLM челендж** для злому:
|
||||
|
||||
@ -146,7 +146,7 @@ password-spraying.md
|
||||
|
||||
## Перерахунок Active Directory ЗА допомогою облікових даних/сесії
|
||||
|
||||
Для цього етапу вам потрібно **компрометувати облікові дані або сесію дійсного облікового запису домену.** Якщо у вас є дійсні облікові дані або оболонка як доменний користувач, **ви повинні пам'ятати, що варіанти, наведені раніше, все ще є варіантами для компрометації інших користувачів**.
|
||||
Для цього етапу вам потрібно мати **компрометовані облікові дані або сесію дійсного облікового запису домену.** Якщо у вас є дійсні облікові дані або оболонка як доменний користувач, **пам'ятайте, що варіанти, наведені раніше, все ще є варіантами для компрометації інших користувачів**.
|
||||
|
||||
Перед початком аутентифікованого перерахунку ви повинні знати, що таке **проблема подвійного стрибка Kerberos.**
|
||||
|
||||
@ -158,7 +158,7 @@ kerberos-double-hop-problem.md
|
||||
|
||||
Компрометація облікового запису є **великим кроком для початку компрометації всього домену**, оскільки ви зможете почати **перерахунок Active Directory:**
|
||||
|
||||
Щодо [**ASREPRoast**](asreproast.md), ви тепер можете знайти кожного можливого вразливого користувача, а щодо [**Password Spraying**](password-spraying.md) ви можете отримати **список усіх імен користувачів** і спробувати пароль компрометованого облікового запису, порожні паролі та нові обіцяючі паролі.
|
||||
Щодо [**ASREPRoast**](asreproast.md), ви тепер можете знайти кожного можливого вразливого користувача, а щодо [**Password Spraying**](password-spraying.md) ви можете отримати **список усіх імен користувачів** і спробувати пароль компрометованого облікового запису, порожні паролі та нові перспективні паролі.
|
||||
|
||||
- Ви можете використовувати [**CMD для виконання базової розвідки**](../basic-cmd-for-pentesters.md#domain-info)
|
||||
- Ви також можете використовувати [**powershell для розвідки**](../basic-powershell-for-pentesters/index.html), що буде менш помітно
|
||||
@ -172,11 +172,11 @@ kerberos-double-hop-problem.md
|
||||
- Ви також можете спробувати автоматизовані інструменти, такі як:
|
||||
- [**tomcarver16/ADSearch**](https://github.com/tomcarver16/ADSearch)
|
||||
- [**61106960/adPEAS**](https://github.com/61106960/adPEAS)
|
||||
- **Отримання всіх користувачів домену**
|
||||
- **Витягування всіх користувачів домену**
|
||||
|
||||
Дуже легко отримати всі імена користувачів домену з Windows (`net user /domain`, `Get-DomainUser` або `wmic useraccount get name,sid`). У Linux ви можете використовувати: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` або `enum4linux -a -u "user" -p "password" <DC IP>`
|
||||
|
||||
> Навіть якщо цей розділ перерахунку виглядає маленьким, це найважливіша частина всього. Доступ до посилань (в основному до cmd, powershell, powerview і BloodHound), навчіться, як перерахувати домен, і практикуйтеся, поки не відчуєте себе комфортно. Під час оцінки це буде ключовий момент, щоб знайти свій шлях до DA або вирішити, що нічого не можна зробити.
|
||||
> Навіть якщо цей розділ перерахунку виглядає маленьким, це найважливіша частина всього. Доступайтеся до посилань (в основному до тих, що стосуються cmd, powershell, powerview і BloodHound), навчіться, як перераховувати домен, і практикуйтеся, поки не відчуєте себе комфортно. Під час оцінки це буде ключовий момент, щоб знайти свій шлях до DA або вирішити, що нічого не можна зробити.
|
||||
|
||||
### Kerberoast
|
||||
|
||||
@ -192,15 +192,15 @@ kerberoast.md
|
||||
|
||||
Якщо ви отримали деякі облікові дані, ви можете перевірити, чи маєте доступ до будь-якої **машини**. Для цього ви можете використовувати **CrackMapExec**, щоб спробувати підключитися до кількох серверів з різними протоколами, відповідно до ваших сканувань портів.
|
||||
|
||||
### Підвищення локальних привілеїв
|
||||
### Локальне підвищення привілеїв
|
||||
|
||||
Якщо ви компрометували облікові дані або сесію як звичайний доменний користувач і маєте **доступ** з цим користувачем до **будь-якої машини в домені**, ви повинні спробувати знайти спосіб **підвищити привілеї локально та шукати облікові дані**. Це тому, що тільки з локальними адміністративними привілеями ви зможете **вивантажити хеші інших користувачів** в пам'яті (LSASS) та локально (SAM).
|
||||
Якщо ви компрометували облікові дані або сесію як звичайний доменний користувач і маєте **доступ** з цим користувачем до **будь-якої машини в домені**, ви повинні спробувати знайти спосіб **підвищити привілеї локально та шукати облікові дані**. Це тому, що тільки з правами локального адміністратора ви зможете **вивантажити хеші інших користувачів** в пам'яті (LSASS) та локально (SAM).
|
||||
|
||||
У цій книзі є повна сторінка про [**підвищення локальних привілеїв у Windows**](../windows-local-privilege-escalation/index.html) та [**контрольний список**](../checklist-windows-privilege-escalation.md). Також не забудьте використовувати [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite).
|
||||
У цій книзі є повна сторінка про [**локальне підвищення привілеїв у Windows**](../windows-local-privilege-escalation/index.html) та [**контрольний список**](../checklist-windows-privilege-escalation.md). Також не забудьте використовувати [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite).
|
||||
|
||||
### Поточні сесійні квитки
|
||||
|
||||
Дуже **малоймовірно**, що ви знайдете **квитки** у поточного користувача, **які надають вам доступ** до несподіваних ресурсів, але ви можете перевірити:
|
||||
Дуже **малоймовірно**, що ви знайдете **квитки** у поточного користувача, **які надають вам дозвіл на доступ** до несподіваних ресурсів, але ви можете перевірити:
|
||||
```bash
|
||||
## List all tickets (if not admin, only current user tickets)
|
||||
.\Rubeus.exe triage
|
||||
@ -246,8 +246,8 @@ printnightmare.md
|
||||
|
||||
### Pass the Hash
|
||||
|
||||
**Якщо у вас є хеш користувача**, ви можете використовувати його для **імітуючи** його.\
|
||||
Вам потрібно використовувати якийсь **інструмент**, який **виконає** **NTLM аутентифікацію, використовуючи** цей **хеш**, **або** ви можете створити новий **sessionlogon** і **впровадити** цей **хеш** всередину **LSASS**, так що коли будь-яка **NTLM аутентифікація виконується**, цей **хеш буде використано.** Останній варіант - це те, що робить mimikatz.\
|
||||
**Якщо у вас є хеш користувача**, ви можете використовувати його для **імітуювання** його.\
|
||||
Вам потрібно використовувати якийсь **інструмент**, який **виконає** **NTLM аутентифікацію, використовуючи** цей **хеш**, **або** ви можете створити новий **sessionlogon** і **впровадити** цей **хеш** всередину **LSASS**, так що коли будь-яка **NTLM аутентифікація виконується**, цей **хеш буде використаний.** Останній варіант - це те, що робить mimikatz.\
|
||||
[**Прочитайте цю сторінку для отримання додаткової інформації.**](../ntlm/index.html#pass-the-hash)
|
||||
|
||||
### Over Pass the Hash/Pass the Key
|
||||
@ -260,7 +260,7 @@ over-pass-the-hash-pass-the-key.md
|
||||
|
||||
### Pass the Ticket
|
||||
|
||||
У методі атаки **Pass The Ticket (PTT)** зловмисники **вкрадають квиток аутентифікації користувача** замість їх пароля або значень хешу. Цей вкрадений квиток потім використовується для **імітуючи користувача**, отримуючи несанкціонований доступ до ресурсів і послуг у мережі.
|
||||
У методі атаки **Pass The Ticket (PTT)** зловмисники **вкрадають квиток аутентифікації користувача** замість їх пароля або значень хешу. Цей вкрадений квиток потім використовується для **імітуювання користувача**, отримуючи несанкціонований доступ до ресурсів і послуг у мережі.
|
||||
|
||||
{{#ref}}
|
||||
pass-the-ticket.md
|
||||
@ -279,7 +279,7 @@ crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9c
|
||||
|
||||
### Зловживання MSSQL та Довірені Посилання
|
||||
|
||||
Якщо користувач має привілеї для **доступу до екземплярів MSSQL**, він може використовувати це для **виконання команд** на хості MSSQL (якщо працює як SA), **викрадення** хешу NetNTLM або навіть виконання **атаки** **реле**.\
|
||||
Якщо користувач має привілеї для **доступу до екземплярів MSSQL**, він може використовувати це для **виконання команд** на хості MSSQL (якщо працює як SA), **викрасти** NetNTLM **хеш** або навіть виконати **атака реле**.\
|
||||
Також, якщо екземпляр MSSQL є довіреним (посилання на базу даних) іншим екземпляром MSSQL. Якщо користувач має привілеї над довіреною базою даних, він зможе **використовувати довірчі відносини для виконання запитів також в іншому екземплярі**. Ці довіри можуть бути з'єднані, і в якийсь момент користувач може знайти неправильно налаштовану базу даних, де він може виконувати команди.\
|
||||
**Посилання між базами даних працюють навіть через довіри лісу.**
|
||||
|
||||
@ -299,7 +299,7 @@ unconstrained-delegation.md
|
||||
|
||||
### Контрольована Делегація
|
||||
|
||||
Якщо користувач або комп'ютер дозволені для "Контрольованої Делегації", він зможе **видавати себе за будь-якого користувача для доступу до деяких сервісів на комп'ютері**.\
|
||||
Якщо користувач або комп'ютер дозволено для "Контрольованої Делегації", він зможе **видавати себе за будь-якого користувача для доступу до деяких сервісів на комп'ютері**.\
|
||||
Тоді, якщо ви **скомпрометуєте хеш** цього користувача/комп'ютера, ви зможете **видавати себе за будь-якого користувача** (навіть доменних адміністраторів) для доступу до деяких сервісів.
|
||||
|
||||
{{#ref}}
|
||||
@ -308,23 +308,23 @@ constrained-delegation.md
|
||||
|
||||
### Делегація на основі ресурсів
|
||||
|
||||
Маючи привілей **WRITE** на об'єкт Active Directory віддаленого комп'ютера, можна отримати виконання коду з **підвищеними привілеями**:
|
||||
Маючи привілей **WRITE** на об'єкт Active Directory віддаленого комп'ютера, ви отримуєте можливість виконання коду з **підвищеними привілеями**:
|
||||
|
||||
{{#ref}}
|
||||
resource-based-constrained-delegation.md
|
||||
{{#endref}}
|
||||
|
||||
### Зловживання ACL
|
||||
### Зловживання Дозволами/ACL
|
||||
|
||||
Скомпрометований користувач може мати деякі **цікаві привілеї над деякими об'єктами домену**, які можуть дозволити вам **переміщатися** латерально/**підвищувати** привілеї.
|
||||
Скомпрометований користувач може мати деякі **цікаві привілеї над деякими об'єктами домену**, які можуть дозволити вам **переміщатися** латерально/**ескалювати** привілеї.
|
||||
|
||||
{{#ref}}
|
||||
acl-persistence-abuse/
|
||||
{{#endref}}
|
||||
|
||||
### Зловживання службою спулера принтера
|
||||
### Зловживання службою спулера принтерів
|
||||
|
||||
Виявлення **служби спулера**, що слухає в домені, може бути **зловжито** для **отримання нових облікових даних** та **підвищення привілеїв**.
|
||||
Виявлення **служби спулера**, що слухає в домені, може бути **зловжито** для **отримання нових облікових даних** та **ескалації привілеїв**.
|
||||
|
||||
{{#ref}}
|
||||
printers-spooler-service-abuse.md
|
||||
@ -332,7 +332,7 @@ printers-spooler-service-abuse.md
|
||||
|
||||
### Зловживання сесіями третіх сторін
|
||||
|
||||
Якщо **інші користувачі** **доступають** до **скомпрометованого** комп'ютера, можливо **збирати облікові дані з пам'яті** і навіть **впроваджувати маяки в їхні процеси** для видачі себе за них.\
|
||||
Якщо **інші користувачі** **доступають** до **скомпрометованої** машини, можливо **збирати облікові дані з пам'яті** і навіть **впроваджувати маяки в їхні процеси** для видачі себе за них.\
|
||||
Зазвичай користувачі отримують доступ до системи через RDP, тому ось як виконати кілька атак на сесії RDP третіх сторін:
|
||||
|
||||
{{#ref}}
|
||||
@ -341,7 +341,7 @@ rdp-sessions-abuse.md
|
||||
|
||||
### LAPS
|
||||
|
||||
**LAPS** забезпечує систему для управління **паролем локального адміністратора** на комп'ютерах, приєднаних до домену, забезпечуючи його **випадковість**, унікальність та часту **зміну**. Ці паролі зберігаються в Active Directory, а доступ контролюється через ACL лише для авторизованих користувачів. З достатніми правами для доступу до цих паролів, стає можливим перемикання на інші комп'ютери.
|
||||
**LAPS** забезпечує систему для управління **паролем локального адміністратора** на комп'ютерах, що приєднані до домену, забезпечуючи його **випадковість**, унікальність та часту **зміну**. Ці паролі зберігаються в Active Directory, а доступ контролюється через ACL лише для авторизованих користувачів. З достатніми привілеями для доступу до цих паролів, стає можливим перемикання на інші комп'ютери.
|
||||
|
||||
{{#ref}}
|
||||
laps.md
|
||||
@ -349,7 +349,7 @@ laps.md
|
||||
|
||||
### Крадіжка Сертифікатів
|
||||
|
||||
**Збирання сертифікатів** з скомпрометованого комп'ютера може бути способом підвищення привілеїв у середовищі:
|
||||
**Збір сертифікатів** з скомпрометованої машини може бути способом ескалації привілеїв у середовищі:
|
||||
|
||||
{{#ref}}
|
||||
ad-certificates/certificate-theft.md
|
||||
@ -357,13 +357,13 @@ ad-certificates/certificate-theft.md
|
||||
|
||||
### Зловживання Шаблонами Сертифікатів
|
||||
|
||||
Якщо **вразливі шаблони** налаштовані, їх можна зловживати для підвищення привілеїв:
|
||||
Якщо **вразливі шаблони** налаштовані, їх можна зловживати для ескалації привілеїв:
|
||||
|
||||
{{#ref}}
|
||||
ad-certificates/domain-escalation.md
|
||||
{{#endref}}
|
||||
|
||||
## Пост-експлуатація з обліковим записом з високими привілеями
|
||||
## Постексплуатація з обліковим записом з високими привілеями
|
||||
|
||||
### Скидання Доменних Облікових Даних
|
||||
|
||||
@ -373,7 +373,7 @@ ad-certificates/domain-escalation.md
|
||||
|
||||
[**Більше інформації про те, як вкрасти NTDS.dit можна знайти тут**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
|
||||
|
||||
### Підвищення привілеїв як Постійність
|
||||
### Privesc як Постійність
|
||||
|
||||
Деякі з технік, обговорених раніше, можуть бути використані для постійності.\
|
||||
Наприклад, ви могли б:
|
||||
@ -416,7 +416,7 @@ golden-ticket.md
|
||||
|
||||
### Діамантовий Квиток
|
||||
|
||||
Ці квитки схожі на золоті, але підроблені так, щоб **обійти звичайні механізми виявлення золотих квитків.**
|
||||
Ці квитки схожі на золоті, але підроблені так, що **обходять звичайні механізми виявлення золотих квитків.**
|
||||
|
||||
{{#ref}}
|
||||
diamond-ticket.md
|
||||
@ -430,9 +430,9 @@ diamond-ticket.md
|
||||
ad-certificates/account-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
### **Постійність Сертифікатів в Домені**
|
||||
### **Постійність Домену Сертифікатів**
|
||||
|
||||
**Використання сертифікатів також можливе для постійності з високими привілеями в домені:**
|
||||
**Використання сертифікатів також можливе для збереження постійності з високими привілеями в домені:**
|
||||
|
||||
{{#ref}}
|
||||
ad-certificates/domain-persistence.md
|
||||
@ -454,7 +454,7 @@ dsrm-credentials.md
|
||||
|
||||
### Постійність ACL
|
||||
|
||||
Ви можете **надати** деякі **спеціальні привілеї** **користувачу** над деякими конкретними об'єктами домену, які дозволять користувачу **підвищити привілеї в майбутньому**.
|
||||
Ви можете **надати** деякі **спеціальні дозволи** **користувачу** над деякими конкретними об'єктами домену, які дозволять користувачу **ескалювати привілеї в майбутньому**.
|
||||
|
||||
{{#ref}}
|
||||
acl-persistence-abuse/
|
||||
@ -462,7 +462,7 @@ acl-persistence-abuse/
|
||||
|
||||
### Описники Безпеки
|
||||
|
||||
**Описники безпеки** використовуються для **зберігання** **привілеїв**, які **об'єкт** має **над** **об'єктом**. Якщо ви зможете **зробити** **невелике зміна** в **описнику безпеки** об'єкта, ви зможете отримати дуже цікаві привілеї над цим об'єктом без необхідності бути членом привілейованої групи.
|
||||
**Описники безпеки** використовуються для **зберігання** **дозволів**, які має **об'єкт** **над** **об'єктом**. Якщо ви можете просто **зробити** **невелику зміну** в **описнику безпеки** об'єкта, ви можете отримати дуже цікаві привілеї над цим об'єктом без необхідності бути членом привілейованої групи.
|
||||
|
||||
{{#ref}}
|
||||
security-descriptors.md
|
||||
@ -479,7 +479,7 @@ skeleton-key.md
|
||||
### Користувацький SSP
|
||||
|
||||
[Дізнайтеся, що таке SSP (Постачальник Підтримки Безпеки) тут.](../authentication-credentials-uac-and-efs/index.html#security-support-provider-interface-sspi)\
|
||||
Ви можете створити свій **власний SSP** для **захоплення** в **чистому тексті** **облікових даних**, які використовуються для доступу до машини.
|
||||
Ви можете створити свій **власний SSP**, щоб **захоплювати** в **чистому тексті** **облікові дані**, які використовуються для доступу до машини.
|
||||
|
||||
{{#ref}}
|
||||
custom-ssp.md
|
||||
@ -487,7 +487,7 @@ custom-ssp.md
|
||||
|
||||
### DCShadow
|
||||
|
||||
Це реєструє **новий Контролер Домену** в AD і використовує його для **поштовхування атрибутів** (SIDHistory, SPNs...) на вказані об'єкти **без** залишення будь-яких **журналів** щодо **модифікацій**. Вам **потрібні DA** привілеї і бути всередині **кореневого домену**.\
|
||||
Це реєструє **новий Контролер Домену** в AD і використовує його для **поштовху атрибутів** (SIDHistory, SPNs...) на вказані об'єкти **без** залишення будь-яких **журналів** щодо **модифікацій**. Вам **потрібні DA** привілеї і бути всередині **кореневого домену**.\
|
||||
Зверніть увагу, що якщо ви використовуєте неправильні дані, з'являться досить неприємні журнали.
|
||||
|
||||
{{#ref}}
|
||||
@ -496,20 +496,20 @@ dcshadow.md
|
||||
|
||||
### Постійність LAPS
|
||||
|
||||
Раніше ми обговорювали, як підвищити привілеї, якщо у вас є **достатні права для читання паролів LAPS**. Однак ці паролі також можуть бути використані для **підтримки постійності**.\
|
||||
Раніше ми обговорювали, як ескалювати привілеї, якщо у вас є **достатні дозволи для читання паролів LAPS**. Однак ці паролі також можуть бути використані для **збереження постійності**.\
|
||||
Перевірте:
|
||||
|
||||
{{#ref}}
|
||||
laps.md
|
||||
{{#endref}}
|
||||
|
||||
## Підвищення Привілеїв Лісу - Доменні Довіри
|
||||
## Ескалація Привілеїв Лісу - Доменні Довіри
|
||||
|
||||
Microsoft розглядає **Ліс** як межу безпеки. Це означає, що **скомпрометування одного домену може потенційно призвести до компрометації всього Лісу**.
|
||||
|
||||
### Основна Інформація
|
||||
|
||||
[**Доменна довіра**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) є механізмом безпеки, який дозволяє користувачу з одного **домену** отримувати доступ до ресурсів в іншому **домені**. Це фактично створює зв'язок між системами аутентифікації двох доменів, дозволяючи перевіркам аутентифікації проходити безперешкодно. Коли домени встановлюють довіру, вони обмінюються та зберігають певні **ключі** в своїх **Контролерах Домену (DC)**, які є критично важливими для цілісності довіри.
|
||||
[**Доменна довіра**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) є механізмом безпеки, який дозволяє користувачу з одного **домену** отримувати доступ до ресурсів в іншому **домені**. Це фактично створює зв'язок між системами аутентифікації двох доменів, дозволяючи перевіркам аутентифікації проходити безперешкодно. Коли домени встановлюють довіру, вони обмінюються та зберігають певні **ключі** в своїх **Контролерах Доменів (DC)**, які є критично важливими для цілісності довіри.
|
||||
|
||||
У типовій ситуації, якщо користувач має намір отримати доступ до служби в **довіреному домені**, спочатку він повинен запитати спеціальний квиток, відомий як **міждоменний TGT**, у DC свого власного домену. Цей TGT зашифрований спільним **ключем**, на якому обидва домени погодилися. Користувач потім представляє цей TGT **DC довіреного домену**, щоб отримати квиток на службу (**TGS**). Після успішної перевірки міждоменного TGT DC довіреного домену видає TGS, надаючи користувачу доступ до служби.
|
||||
|
||||
@ -520,7 +520,7 @@ Microsoft розглядає **Ліс** як межу безпеки. Це оз
|
||||
3. Клієнт потім запитує **міждоменний TGT** у DC1, який потрібен для доступу до ресурсів у **Домені 2**.
|
||||
4. Міждоменний TGT зашифрований спільним **ключем довіри**, що ділиться між DC1 та DC2 в рамках двосторонньої довіри домену.
|
||||
5. Клієнт приносить міждоменний TGT до **Контролера Домену 2 (DC2)**.
|
||||
6. DC2 перевіряє міждоменний TGT, використовуючи свій спільний ключ довіри, і, якщо він дійсний, видає **Квиток на Надання Служби (TGS)** для сервера в Домені 2, до якого клієнт хоче отримати доступ.
|
||||
6. DC2 перевіряє міждоменний TGT, використовуючи свій спільний ключ довіри, і, якщо він дійсний, видає **Квиток на Надання Квитків (TGS)** для сервера в Домені 2, до якого клієнт хоче отримати доступ.
|
||||
7. Нарешті, клієнт представляє цей TGS серверу, який зашифрований хешем облікового запису сервера, щоб отримати доступ до служби в Домені 2.
|
||||
|
||||
### Різні довіри
|
||||
@ -531,10 +531,10 @@ Microsoft розглядає **Ліс** як межу безпеки. Це оз
|
||||
|
||||
**Різні довірчі відносини**
|
||||
|
||||
- **Довіри Батьків-Дітей**: Це звичайна налаштування в межах одного лісу, де дитячий домен автоматично має двосторонню транзитивну довіру з батьківським доменом. Це означає, що запити на аутентифікацію можуть проходити безперешкодно між батьком і дитиною.
|
||||
- **Перехресні Довіри**: Відомі як "скорочені довіри", вони встановлюються між дитячими доменами для прискорення процесів посилання. У складних лісах посилання на аутентифікацію зазвичай повинні подорожувати до кореня лісу, а потім вниз до цільового домену. Створюючи перехресні зв'язки, подорож скорочується, що особливо корисно в географічно розподілених середовищах.
|
||||
- **Довіри Батьків-Дітей**: Це звичайна налаштування в одному лісі, де дочірній домен автоматично має двосторонню транзитивну довіру з батьківським доменом. Це означає, що запити на аутентифікацію можуть проходити безперешкодно між батьком і дитиною.
|
||||
- **Перехресні Довіри**: Відомі як "скорочені довіри", вони встановлюються між дочірніми доменами для прискорення процесів посилання. У складних лісах запити на аутентифікацію зазвичай повинні подорожувати до кореня лісу, а потім вниз до цільового домену. Створюючи перехресні зв'язки, подорож скорочується, що особливо корисно в географічно розподілених середовищах.
|
||||
- **Зовнішні Довіри**: Вони встановлюються між різними, не пов'язаними доменами і за своєю природою є нетранзитивними. Згідно з [документацією Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), зовнішні довіри корисні для доступу до ресурсів у домені поза поточним лісом, який не підключений через довіру лісу. Безпека посилюється через фільтрацію SID з зовнішніми довірами.
|
||||
- **Довіри Кореня Дерева**: Ці довіри автоматично встановлюються між кореневим доменом лісу та новим доданим коренем дерева. Хоча їх не часто зустрічають, довіри кореня дерева важливі для додавання нових доменних дерев до лісу, дозволяючи їм зберігати унікальну назву домену та забезпечуючи двосторонню транзитивність. Більше інформації можна знайти в [посібнику Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>).
|
||||
- **Довіри Кореня Дерева**: Ці довіри автоматично встановлюються між кореневим доменом лісу та новим коренем дерева, що додається. Хоча їх не часто зустрічають, довіри кореня дерева важливі для додавання нових дерев доменів до лісу, дозволяючи їм зберігати унікальне ім'я домену та забезпечуючи двосторонню транзитивність. Більше інформації можна знайти в [посібнику Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>).
|
||||
- **Довіри Лісу**: Цей тип довіри є двосторонньою транзитивною довірою між двома кореневими доменами лісу, також забезпечуючи фільтрацію SID для підвищення заходів безпеки.
|
||||
- **Довіри MIT**: Ці довіри встановлюються з не-Windows, [RFC4120-сумісними](https://tools.ietf.org/html/rfc4120) доменами Kerberos. Довіри MIT є дещо більш спеціалізованими і призначені для середовищ, які потребують інтеграції з системами на основі Kerberos поза екосистемою Windows.
|
||||
|
||||
@ -554,9 +554,9 @@ Microsoft розглядає **Ліс** як межу безпеки. Це оз
|
||||
|
||||
- **Членство в Локальних Групах**: Суб'єкти можуть бути додані до локальних груп на машинах, таких як група "Адміністратори" на сервері, надаючи їм значний контроль над цією машиною.
|
||||
- **Членство в Групах Зовнішнього Домену**: Суб'єкти також можуть бути членами груп у зовнішньому домені. Однак ефективність цього методу залежить від природи довіри та обсягу групи.
|
||||
- **Списки Контролю Доступу (ACL)**: Суб'єкти можуть бути вказані в **ACL**, особливо як сутності в **ACE** в рамках **DACL**, надаючи їм доступ до конкретних ресурсів. Для тих, хто хоче глибше зануритися в механіку ACL, DACL та ACE, біла книга під назвою “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” є безцінним ресурсом.
|
||||
- **Списки Контролю Доступу (ACL)**: Суб'єкти можуть бути вказані в **ACL**, особливо як сутності в **ACE** в рамках **DACL**, надаючи їм доступ до конкретних ресурсів. Для тих, хто хоче глибше зануритися в механіку ACL, DACL та ACE, документ під назвою “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” є безцінним ресурсом.
|
||||
|
||||
### Знайти зовнішніх користувачів/групи з привілеями
|
||||
### Знайти зовнішніх користувачів/групи з дозволами
|
||||
|
||||
Ви можете перевірити **`CN=<user_SID>,CN=ForeignSecurityPrincipals,DC=domain,DC=com`**, щоб знайти зовнішні суб'єкти безпеки в домені. Це будуть користувачі/групи з **зовнішнього домену/лісу**.
|
||||
|
||||
@ -594,7 +594,7 @@ nltest /dclist:sub.domain.local
|
||||
nltest /server:dc.sub.domain.local /domain_trusts /all_trusts
|
||||
```
|
||||
> [!WARNING]
|
||||
> Є **2 довірених ключі**, один для _Child --> Parent_ і ще один для _Parent_ --> _Child_.\
|
||||
> Є **2 довірених ключі**, один для _Child --> Parent_ і інший для _Parent_ --> _Child_.\
|
||||
> Ви можете використовувати той, що використовується поточним доменом, за допомогою:
|
||||
>
|
||||
> ```bash
|
||||
@ -604,7 +604,7 @@ nltest /server:dc.sub.domain.local /domain_trusts /all_trusts
|
||||
|
||||
#### Впровадження SID-History
|
||||
|
||||
Ескалація як Enterprise admin до дочірнього/батьківського домену шляхом зловживання довірою з впровадженням SID-History:
|
||||
Ескалація як Enterprise admin до дочірнього/батьківського домену, зловживаючи довірою з впровадженням SID-History:
|
||||
|
||||
{{#ref}}
|
||||
sid-history-injection.md
|
||||
@ -612,11 +612,11 @@ sid-history-injection.md
|
||||
|
||||
#### Використання записуваного Configuration NC
|
||||
|
||||
Розуміння того, як можна експлуатувати Configuration Naming Context (NC), є критично важливим. Configuration NC слугує центральним репозиторієм для конфігураційних даних у лісі в середовищах Active Directory (AD). Ці дані реплікуються на кожен Контролер Домену (DC) у лісі, при цьому записувані DC підтримують записувану копію Configuration NC. Щоб це експлуатувати, потрібно мати **SYSTEM привілеї на DC**, бажано на дочірньому DC.
|
||||
Розуміння того, як можна експлуатувати Configuration Naming Context (NC), є критично важливим. Configuration NC служить центральним репозиторієм для конфігураційних даних у лісі в середовищах Active Directory (AD). Ці дані реплікуються на кожен Domain Controller (DC) у лісі, при цьому записувані DC підтримують записувану копію Configuration NC. Щоб це експлуатувати, потрібно мати **SYSTEM привілеї на DC**, бажано на дочірньому DC.
|
||||
|
||||
**Прив'язка GPO до кореневого сайту DC**
|
||||
|
||||
Контейнер Sites Configuration NC містить інформацію про всі сайти комп'ютерів, приєднаних до домену, у лісі AD. Працюючи з привілеями SYSTEM на будь-якому DC, зловмисники можуть прив'язувати GPO до кореневих сайтів DC. Ця дія потенційно компрометує кореневий домен, маніпулюючи політиками, що застосовуються до цих сайтів.
|
||||
Контейнер Sites Configuration NC містить інформацію про всі комп'ютери, що приєднані до домену, у лісі AD. Працюючи з привілеями SYSTEM на будь-якому DC, зловмисники можуть прив'язувати GPO до кореневих сайтів DC. Ця дія потенційно компрометує кореневий домен, маніпулюючи політиками, що застосовуються до цих сайтів.
|
||||
|
||||
Для детальної інформації можна дослідити дослідження про [Bypassing SID Filtering](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-4-bypass-sid-filtering-research).
|
||||
|
||||
@ -624,7 +624,7 @@ sid-history-injection.md
|
||||
|
||||
Вектор атаки передбачає націлювання на привілейовані gMSA в домені. Ключ KDS Root, необхідний для обчислення паролів gMSA, зберігається в Configuration NC. Маючи привілеї SYSTEM на будь-якому DC, можна отримати доступ до ключа KDS Root і обчислити паролі для будь-якого gMSA в лісі.
|
||||
|
||||
Детальний аналіз можна знайти в обговоренні про [Golden gMSA Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent).
|
||||
Детальний аналіз можна знайти в обговоренні [Golden gMSA Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent).
|
||||
|
||||
**Атака на зміну схеми**
|
||||
|
||||
@ -634,11 +634,11 @@ sid-history-injection.md
|
||||
|
||||
**Від DA до EA з ADCS ESC5**
|
||||
|
||||
Уразливість ADCS ESC5 націлюється на контроль над об'єктами Інфраструктури відкритих ключів (PKI), щоб створити шаблон сертифіката, який дозволяє аутентифікацію як будь-який користувач у лісі. Оскільки об'єкти PKI знаходяться в Configuration NC, компрометація записуваного дочірнього DC дозволяє виконувати атаки ESC5.
|
||||
Уразливість ADCS ESC5 націлюється на контроль над об'єктами інфраструктури відкритих ключів (PKI), щоб створити шаблон сертифіката, який дозволяє аутентифікацію як будь-який користувач у лісі. Оскільки об'єкти PKI знаходяться в Configuration NC, компрометація записуваного дочірнього DC дозволяє виконувати атаки ESC5.
|
||||
|
||||
Більше деталей про це можна прочитати в [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c). У сценаріях, де немає ADCS, зловмисник має можливість налаштувати необхідні компоненти, як обговорюється в [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/).
|
||||
|
||||
### Зовнішній домен лісу - односторонній (вхідний) або двосторонній
|
||||
### Зовнішній лісовий домен - односторонній (вхідний) або двосторонній
|
||||
```bash
|
||||
Get-DomainTrust
|
||||
SourceName : a.domain.local --> Current domain
|
||||
@ -649,7 +649,7 @@ TrustDirection : Inbound --> Inboud trust
|
||||
WhenCreated : 2/19/2021 10:50:56 PM
|
||||
WhenChanged : 2/19/2021 10:50:56 PM
|
||||
```
|
||||
У цьому сценарії **ваш домен довіряє** зовнішньому, надаючи вам **невизначені дозволи** над ним. Вам потрібно буде з'ясувати, **які принципи вашого домену мають який доступ до зовнішнього домену** і потім спробувати це експлуатувати:
|
||||
У цьому сценарії **ваш домен довіряє** зовнішньому, що надає вам **невизначені дозволи** над ним. Вам потрібно буде з'ясувати, **які принципи вашого домену мають який доступ до зовнішнього домену** і потім спробувати це експлуатувати:
|
||||
|
||||
{{#ref}}
|
||||
external-forest-domain-oneway-inbound.md
|
||||
@ -669,7 +669,7 @@ WhenChanged : 2/19/2021 10:15:24 PM
|
||||
```
|
||||
У цьому сценарії **ваш домен** **довіряє** деяким **привілеям** принципу з **інших доменів**.
|
||||
|
||||
Однак, коли **домен довіряється** довіреним доменом, довірений домен **створює користувача** з **передбачуваним ім'ям**, який використовує **пароль довіреного пароля**. Це означає, що можливо **отримати доступ до користувача з довіреного домену, щоб потрапити всередину довіреного**, щоб перерахувати його та спробувати підвищити більше привілеїв:
|
||||
Однак, коли **домен довіряє** довіреному домену, довірений домен **створює користувача** з **передбачуваним ім'ям**, який використовує **пароль довіреного пароля**. Це означає, що можливо **отримати доступ до користувача з довіреного домену, щоб потрапити всередину довіреного**, щоб перерахувати його та спробувати підвищити більше привілеїв:
|
||||
|
||||
{{#ref}}
|
||||
external-forest-domain-one-way-outbound.md
|
||||
@ -712,18 +712,18 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-move
|
||||
|
||||
- **Обмеження для адміністраторів домену**: Рекомендується, щоб адміністраторам домену дозволялося входити лише на контролери домену, уникаючи їх використання на інших хостах.
|
||||
- **Привілеї облікових записів служб**: Служби не повинні працювати з привілеями адміністратора домену (DA) для підтримки безпеки.
|
||||
- **Обмеження тимчасових привілеїв**: Для завдань, що вимагають привілеїв DA, їх тривалість повинна бути обмежена. Це можна досягти за допомогою: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
|
||||
- **Тимчасове обмеження привілеїв**: Для завдань, що вимагають привілеїв DA, їх тривалість повинна бути обмежена. Це можна досягти за допомогою: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
|
||||
|
||||
### **Впровадження технік обману**
|
||||
|
||||
- Впровадження обману передбачає встановлення пасток, таких як приманкові користувачі або комп'ютери, з такими функціями, як паролі, які не закінчуються або позначені як Довірені для делегування. Детальний підхід включає створення користувачів з певними правами або додавання їх до груп з високими привілеями.
|
||||
- Впровадження обману передбачає встановлення пасток, таких як приманкові користувачі або комп'ютери, з такими функціями, як паролі, які не закінчуються або позначені як Довірені для делегування. Детальний підхід включає створення користувачів з конкретними правами або додавання їх до груп з високими привілеями.
|
||||
- Практичний приклад включає використання інструментів, таких як: `Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose`
|
||||
- Більше про впровадження технік обману можна знайти на [Deploy-Deception на GitHub](https://github.com/samratashok/Deploy-Deception).
|
||||
|
||||
### **Виявлення обману**
|
||||
|
||||
- **Для об'єктів користувачів**: Підозрілі ознаки включають нетиповий ObjectSID, рідкісні входи, дати створення та низькі кількості неправильних паролів.
|
||||
- **Загальні ознаки**: Порівняння атрибутів потенційних об'єктів-приманок з атрибутами справжніх може виявити невідповідності. Інструменти, такі як [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster), можуть допомогти в ідентифікації таких обманів.
|
||||
- **Загальні ознаки**: Порівняння атрибутів потенційних приманкових об'єктів з атрибутами справжніх може виявити невідповідності. Інструменти, такі як [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster), можуть допомогти в ідентифікації таких обманів.
|
||||
|
||||
### **Обхід систем виявлення**
|
||||
|
||||
|
@ -0,0 +1,67 @@
|
||||
# Зловживання ACL/ACE Active Directory
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Огляд
|
||||
|
||||
Делеговані керовані облікові записи служб (**dMSAs**) є новим типом принципу AD, введеним з **Windows Server 2025**. Вони призначені для заміни застарілих облікових записів служб, дозволяючи одноклікову "міграцію", яка автоматично копіює імена службових принципів (SPN), членство в групах, налаштування делегування та навіть криптографічні ключі старого облікового запису в новий dMSA, забезпечуючи безперервний перехід для додатків і усуваючи ризик Kerberoasting.
|
||||
|
||||
Дослідники Akamai виявили, що один атрибут — **`msDS‑ManagedAccountPrecededByLink`** — вказує KDC, який застарілий обліковий запис "наступає" на dMSA. Якщо зловмисник може записати цей атрибут (і переключити **`msDS‑DelegatedMSAState` → 2**), KDC з радістю створить PAC, який **успадковує кожен SID обраної жертви**, ефективно дозволяючи dMSA видавати себе за будь-якого користувача, включаючи адміністраторів домену.
|
||||
|
||||
## Що таке dMSA?
|
||||
|
||||
* Побудований на основі технології **gMSA**, але зберігається як новий клас AD **`msDS‑DelegatedManagedServiceAccount`**.
|
||||
* Підтримує **міграцію за запитом**: виклик `Start‑ADServiceAccountMigration` зв'язує dMSA зі застарілим обліковим записом, надає застарілому обліковому запису права на запис до `msDS‑GroupMSAMembership` і переключає `msDS‑DelegatedMSAState` = 1.
|
||||
* Після `Complete‑ADServiceAccountMigration` застарілий обліковий запис відключається, і dMSA стає повністю функціональним; будь-який хост, який раніше використовував застарілий обліковий запис, автоматично отримує дозвіл на отримання пароля dMSA.
|
||||
* Під час аутентифікації KDC вбудовує підказку **KERB‑SUPERSEDED‑BY‑USER**, щоб клієнти Windows 11/24H2 прозоро повторно намагалися з dMSA.
|
||||
|
||||
## Вимоги для атаки
|
||||
1. **Принаймні один Windows Server 2025 DC**, щоб клас LDAP dMSA та логіка KDC існували.
|
||||
2. **Будь-які права на створення об'єктів або запис атрибутів на OU** (будь-який OU) – наприклад, `Create msDS‑DelegatedManagedServiceAccount` або просто **Create All Child Objects**. Akamai виявив, що 91 % реальних орендарів надають такі "безпечні" дозволи OU не адміністраторам.
|
||||
3. Можливість запускати інструменти (PowerShell/Rubeus) з будь-якого хоста, приєднаного до домену, для запиту квитків Kerberos.
|
||||
*Не потрібно контролювати жертву; атака ніколи безпосередньо не торкається цільового облікового запису.*
|
||||
|
||||
## Покроково: BadSuccessor*підвищення привілеїв
|
||||
|
||||
1. **Знайдіть або створіть dMSA, яким ви керуєте**
|
||||
```bash
|
||||
New‑ADServiceAccount Attacker_dMSA `
|
||||
‑DNSHostName ad.lab `
|
||||
‑Path "OU=temp,DC=lab,DC=local"
|
||||
```
|
||||
|
||||
Оскільки ви створили об'єкт всередині OU, до якого можете записувати, ви автоматично володієте всіма його атрибутами.
|
||||
|
||||
2. **Симулюйте "завершену міграцію" у двох записах LDAP**:
|
||||
- Встановіть `msDS‑ManagedAccountPrecededByLink = DN` будь-якої жертви (наприклад, `CN=Administrator,CN=Users,DC=lab,DC=local`).
|
||||
- Встановіть `msDS‑DelegatedMSAState = 2` (міграція завершена).
|
||||
|
||||
Такі інструменти, як **Set‑ADComputer, ldapmodify** або навіть **ADSI Edit**, працюють; права адміністратора домену не потрібні.
|
||||
|
||||
3. **Запросіть TGT для dMSA** — Rubeus підтримує прапорець `/dmsa`:
|
||||
|
||||
```bash
|
||||
Rubeus.exe asktgs /targetuser:attacker_dmsa$ /service:krbtgt/aka.test /dmsa /opsec /nowrap /ptt /ticket:<Machine TGT>
|
||||
```
|
||||
|
||||
Повернений PAC тепер містить SID 500 (Адміністратор) плюс групи адміністраторів домену/підприємства.
|
||||
|
||||
## Зібрати всі паролі користувачів
|
||||
|
||||
Під час легітимних міграцій KDC повинен дозволити новому dMSA розшифровувати **квитки, видані старому обліковому запису до переходу**. Щоб уникнути порушення активних сесій, він поміщає як поточні, так і попередні ключі в новий ASN.1 об'єкт, званий **`KERB‑DMSA‑KEY‑PACKAGE`**.
|
||||
|
||||
Оскільки наша фальшива міграція стверджує, що dMSA "наступає" на жертву, KDC добросовісно копіює RC4-HMAC ключ жертви в список **попередніх ключів** – навіть якщо dMSA ніколи не мав "попереднього" пароля. Цей RC4 ключ не має солі, тому він фактично є NT хешем жертви, надаючи зловмиснику **можливість офлайн-ламання або "pass-the-hash"**.
|
||||
|
||||
Отже, масове зв'язування тисяч користувачів дозволяє зловмиснику скинути хеші "в масштабах", перетворюючи **BadSuccessor на як підвищення привілеїв, так і на примітив компрометації облікових даних**.
|
||||
|
||||
## Інструменти
|
||||
|
||||
- [https://github.com/akamai/BadSuccessor](https://github.com/akamai/BadSuccessor)
|
||||
- [https://github.com/logangoins/SharpSuccessor](https://github.com/logangoins/SharpSuccessor)
|
||||
- [https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1](https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1)
|
||||
|
||||
## Посилання
|
||||
|
||||
- [https://www.akamai.com/blog/security-research/abusing-dmsa-for-privilege-escalation-in-active-directory](https://www.akamai.com/blog/security-research/abusing-dmsa-for-privilege-escalation-in-active-directory)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
@ -4,6 +4,12 @@
|
||||
|
||||
**Ця сторінка в основному є підсумком технік з** [**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
|
||||
|
||||
{{#ref}}
|
||||
BadSuccesor.md
|
||||
{{#endref}}
|
||||
|
||||
## **Права GenericAll на користувача**
|
||||
|
||||
Ця привілегія надає зловмиснику повний контроль над обліковим записом цільового користувача. Після підтвердження прав `GenericAll` за допомогою команди `Get-ObjectAcl`, зловмисник може:
|
||||
@ -40,7 +46,7 @@ Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.
|
||||
|
||||
Якщо у користувача є права `WriteProperty` на всі об'єкти для конкретної групи (наприклад, `Domain Admins`), вони можуть:
|
||||
|
||||
- **Додати Себе до Групи Domain Admins**: Це можна досягти шляхом поєднання команд `net user` та `Add-NetGroupUser`, цей метод дозволяє ескалацію привілеїв у домені.
|
||||
- **Додати Себе до Групи Domain Admins**: Це можна досягти, поєднуючи команди `net user` та `Add-NetGroupUser`, цей метод дозволяє ескалацію привілеїв у домені.
|
||||
```bash
|
||||
net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"; net user spotless /domain
|
||||
```
|
||||
@ -52,7 +58,7 @@ net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domai
|
||||
```
|
||||
## **WriteProperty (Self-Membership)**
|
||||
|
||||
Схожий привілей, це дозволяє зловмисникам безпосередньо додавати себе до груп, змінюючи властивості групи, якщо у них є право `WriteProperty` на ці групи. Підтвердження та виконання цього привілею здійснюється за допомогою:
|
||||
Схоже на привілей, це дозволяє зловмисникам безпосередньо додавати себе до груп, змінюючи властивості групи, якщо у них є право `WriteProperty` на ці групи. Підтвердження та виконання цього привілею здійснюється за допомогою:
|
||||
```bash
|
||||
Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
net group "domain admins" spotless /add /domain
|
||||
@ -72,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
|
||||
@ -104,33 +110,35 @@ $ACE = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $IdentityRe
|
||||
$ADSI.psbase.ObjectSecurity.SetAccessRule($ACE)
|
||||
$ADSI.psbase.commitchanges()
|
||||
```
|
||||
## **Реплікація в домені (DCSync)**
|
||||
## **Replication on the Domain (DCSync)**
|
||||
|
||||
Атака DCSync використовує специфічні дозволи на реплікацію в домені, щоб імітувати Контролер домену та синхронізувати дані, включаючи облікові дані користувачів. Ця потужна техніка вимагає дозволів, таких як `DS-Replication-Get-Changes`, що дозволяє зловмисникам витягувати чутливу інформацію з середовища AD без прямого доступу до Контролера домену. [**Дізнайтеся більше про атаку DCSync тут.**](../dcsync.md)
|
||||
|
||||
## Делегування GPO <a href="#gpo-delegation" id="gpo-delegation"></a>
|
||||
## GPO Delegation <a href="#gpo-delegation" id="gpo-delegation"></a>
|
||||
|
||||
### Делегування GPO
|
||||
### GPO Delegation
|
||||
|
||||
Делегований доступ для управління об'єктами групової політики (GPO) може створювати значні ризики для безпеки. Наприклад, якщо користувачу, такому як `offense\spotless`, делеговані права управління GPO, він може мати привілеї, такі як **WriteProperty**, **WriteDacl** та **WriteOwner**. Ці дозволи можуть бути зловживані зловмисними цілями, як виявлено за допомогою PowerView: `bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
|
||||
|
||||
### Перерахунок дозволів GPO
|
||||
### Enumerate GPO Permissions
|
||||
|
||||
Щоб виявити неправильно налаштовані 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 $_}`
|
||||
**Computers with a Given Policy Applied**: Можливо визначити, до яких комп'ютерів застосовується конкретний GPO, що допомагає зрозуміти обсяг потенційного впливу. `powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}`
|
||||
|
||||
**Політики, застосовані до конкретного комп'ютера**: Щоб побачити, які політики застосовані до певного комп'ютера, можна використовувати команди, такі як `Get-DomainGPO`.
|
||||
**Policies Applied to a Given Computer**: Щоб побачити, які політики застосовуються до конкретного комп'ютера, можна використовувати команди, такі як `Get-DomainGPO`.
|
||||
|
||||
**OU з застосованою політикою**: Визначити організаційні одиниці (OU), на які вплинула конкретна політика, можна за допомогою `Get-DomainOU`.
|
||||
**OUs with a Given Policy Applied**: Визначити організаційні одиниці (OUs), на які впливає конкретна політика, можна за допомогою `Get-DomainOU`.
|
||||
|
||||
### Зловживання GPO - New-GPOImmediateTask
|
||||
Ви також можете використовувати інструмент [**GPOHound**](https://github.com/cogiceo/GPOHound) для перерахунку GPO та виявлення проблем у них.
|
||||
|
||||
### Abuse GPO - New-GPOImmediateTask
|
||||
|
||||
Неправильно налаштовані GPO можуть бути використані для виконання коду, наприклад, шляхом створення термінового запланованого завдання. Це можна зробити, щоб додати користувача до групи локальних адміністраторів на уражених машинах, значно підвищуючи привілеї:
|
||||
```bash
|
||||
New-GPOImmediateTask -TaskName evilTask -Command cmd -CommandArguments "/c net localgroup administrators spotless /add" -GPODisplayName "Misconfigured Policy" -Verbose -Force
|
||||
```
|
||||
### GroupPolicy module - Зловживання GPO
|
||||
### GroupPolicy модуль - Зловживання GPO
|
||||
|
||||
Модуль GroupPolicy, якщо він встановлений, дозволяє створювати та пов'язувати нові GPO, а також встановлювати параметри, такі як значення реєстру для виконання бекдорів на уражених комп'ютерах. Цей метод вимагає оновлення GPO та входу користувача на комп'ютер для виконання:
|
||||
```bash
|
||||
@ -155,11 +163,11 @@ SharpGPOAbuse пропонує метод зловживання існуючи
|
||||
|
||||
### Користувачі та групи
|
||||
|
||||
GPO також дозволяють маніпулювати членством користувачів та груп на цільових системах. Шляхом редагування файлів політики Користувачів та Груп безпосередньо, зловмисники можуть додавати користувачів до привілейованих груп, таких як локальна група `administrators`. Це можливо завдяки делегуванню прав управління GPO, що дозволяє змінювати файли політики, щоб включити нових користувачів або змінити членство груп.
|
||||
GPO також дозволяють маніпулювати членством користувачів та груп на цільових системах. Редагуючи файли політики Користувачів та Груп безпосередньо, зловмисники можуть додавати користувачів до привілейованих груп, таких як локальна група `administrators`. Це можливо завдяки делегуванню прав управління GPO, що дозволяє змінювати файли політики, щоб включити нових користувачів або змінити членство груп.
|
||||
|
||||
XML конфігураційний файл для Користувачів та Груп описує, як ці зміни реалізуються. Додаючи записи до цього файлу, конкретним користувачам можуть бути надані підвищені привілеї на уражених системах. Цей метод пропонує прямий підхід до підвищення привілеїв через маніпуляцію GPO.
|
||||
|
||||
Крім того, можна розглянути додаткові методи виконання коду або підтримки постійності, такі як використання скриптів входу/виходу, модифікація ключів реєстру для автозапуску, встановлення програмного забезпечення через .msi файли або редагування конфігурацій служб. Ці техніки надають різні шляхи для підтримки доступу та контролю цільових систем через зловживання GPO.
|
||||
Більше того, додаткові методи для виконання коду або підтримки постійного доступу, такі як використання скриптів входу/виходу, модифікація ключів реєстру для автозапуску, встановлення програмного забезпечення через .msi файли або редагування конфігурацій служб, також можуть бути розглянуті. Ці техніки надають різні шляхи для підтримки доступу та контролю цільових систем через зловживання GPO.
|
||||
|
||||
## Посилання
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user