Az - Cloud Kerberos Trust
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Цей пост є резюме https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/ яке можна перевірити для отримання додаткової інформації про атаку. Ця техніка також коментується в https://www.youtube.com/watch?v=AFay_58QubY.
Коли встановлюється довіра з Azure AD, створюється контролер домену тільки для читання (RODC) в AD. Обліковий запис комп'ютера RODC, названий AzureADKerberos$
. Також є вторинний обліковий запис krbtgt
, названий krbtgt_AzureAD
. Цей обліковий запис містить ключі Kerberos, які використовуються для квитків, що створює Azure AD.
Отже, якщо цей обліковий запис буде скомпрометовано, може бути можливим видавати себе за будь-якого користувача... хоча це не зовсім вірно, оскільки цьому обліковому запису заборонено створювати квитки для будь-якої загальної привілейованої групи AD, такої як Domain Admins, Enterprise Admins, Administrators...
Однак у реальному сценарії будуть привілейовані користувачі, які не входять до цих груп. Тому новий обліковий запис krbtgt, якщо буде скомпрометовано, може бути використаний для видавання себе за них.
Більше того, коли користувач аутентифікується в Windows, використовуючи гібридну ідентичність, Azure AD видасть частковий квиток Kerberos разом з PRT. TGT є частковим, оскільки AzureAD має обмежену інформацію про користувача в локальному AD (таку як ідентифікатор безпеки (SID) та ім'я).
Windows може потім обміняти цей частковий TGT на повний TGT, запитуючи сервісний квиток для сервісу krbtgt
.
Оскільки можуть бути сервіси, які не підтримують аутентифікацію Kerberos, але підтримують NTLM, можливо запитати частковий TGT, підписаний за допомогою вторинного ключа krbtgt
, включаючи поле KERB-KEY-LIST-REQ
в частині PADATA запиту, а потім отримати повний TGT, підписаний первинним ключем krbtgt
, включаючи NT хеш у відповіді.
Коли AzureAD генерує частковий TGT, він використовуватиме деталі, які має про користувача. Отже, якщо Глобальний адміністратор зможе змінити дані, такі як ідентифікатор безпеки та ім'я користувача в AzureAD, при запиті TGT для цього користувача ідентифікатор безпеки буде іншим.
Це неможливо зробити через Microsoft Graph або Azure AD Graph, але можливо використовувати API, який використовує Active Directory Connect для створення та оновлення синхронізованих користувачів, що може бути використано Глобальними адміністраторами для зміни імені SAM та SID будь-якого гібридного користувача, а потім, якщо ми аутентифікуємося, ми отримуємо частковий TGT, що містить змінений SID.
Зверніть увагу, що ми можемо зробити це з AADInternals і оновити синхронізованих користувачів за допомогою команди Set-AADIntAzureADObject.
Успіх атаки та отримання привілеїв Domain Admin залежать від виконання певних передумов:
Можливість змінювати облікові записи через Synchronization API є критично важливою. Це можна досягти, маючи роль Глобального адміністратора або володіючи обліковим записом синхронізації AD Connect. Альтернативно, роль адміністратора гібридної ідентичності також підійде, оскільки вона надає можливість керувати AD Connect і створювати нові облікові записи синхронізації.
Наявність гібридного облікового запису є необхідною. Цей обліковий запис повинен бути готовим до зміни з деталями облікового запису жертви та також повинен бути доступним для аутентифікації.
Ідентифікація цільового облікового запису жертви в Active Directory є необхідною. Хоча атаку можна виконати на будь-якому обліковому записі, який вже синхронізовано, тенант Azure AD не повинен мати реплікованих локальних ідентифікаторів безпеки, що вимагає зміни не синхронізованого облікового запису для отримання квитка.
Крім того, цей обліковий запис повинен мати еквівалентні привілеї адміністратора домену, але не повинен бути членом типових груп адміністраторів AD, щоб уникнути генерації недійсних TGT AzureAD RODC.
Найбільш підходящою ціллю є обліковий запис Active Directory, що використовується службою синхронізації AD Connect. Цей обліковий запис не синхронізується з Azure AD, залишаючи його SID як життєздатну ціль, і він за своєю роллю в синхронізації хешів паролів (за умови, що синхронізація хешів паролів активна) за замовчуванням має еквівалентні привілеї адміністратора домену. Для доменів з експрес-встановленням цей обліковий запис має префікс MSOL_. Для інших випадків обліковий запис можна визначити, перерахувавши всі облікові записи, наділені привілеями реплікації каталогу на об'єкті домену.
Перевірте це в оригінальному пості: https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)