Az - PHS - Password Hash Sync
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)
From the docs: Синхронізація хешів паролів є одним із методів входу, що використовується для досягнення гібридної ідентичності. Azure AD Connect синхронізує хеш, хешу, пароля користувача з локальної інстанції Active Directory до хмарної інстанції Azure AD.
Це найпоширеніший метод, який використовують компанії для синхронізації локального AD з Azure AD.
Всі користувачі та хеш паролів синхронізуються з локального AD до Azure AD. Однак паролі у відкритому тексті або оригінальні хеші не надсилаються до Azure AD. Більше того, вбудовані групи безпеки (як-от адміністратори домену...) не синхронізуються з Azure AD.
Синхронізація хешів відбувається кожні 2 хвилини. Однак за замовчуванням терміни дії паролів та терміни дії облікових записів не синхронізуються в Azure AD. Тому користувач, чий локальний пароль прострочений (не змінений), може продовжувати доступ до ресурсів Azure за допомогою старого пароля.
Коли локальний користувач хоче отримати доступ до ресурсу Azure, автентифікація відбувається в Azure AD.
PHS потрібен для функцій, таких як Захист ідентичності та AAD Domain Services.
Коли PHS налаштовано, деякі привілейовані облікові записи автоматично створюються:
Обліковий запис MSOL_<installationID>
автоматично створюється в локальному AD. Цьому обліковому запису надається роль Облікові записи синхронізації каталогу (див. документацію), що означає, що він має дозволи на реплікацію (DCSync) в локальному AD.
Обліковий запис Sync_<name of on-prem ADConnect Server>_installationID
створюється в Azure AD. Цей обліковий запис може скидати пароль будь-якого користувача (синхронізованого або лише хмарного) в Azure AD.
Паролі двох попередніх привілейованих облікових записів зберігаються в SQL сервері на сервері, де встановлено Azure AD Connect. Адміністратори можуть витягувати паролі цих привілейованих користувачів у відкритому тексті.
База даних розташована в C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf
.
Можливо витягти конфігурацію з однієї з таблиць, одна з яких зашифрована:
SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;
Зашифрована конфігурація зашифрована за допомогою DPAPI і містить паролі користувача MSOL_*
в локальному AD та пароль Sync_* в AzureAD. Тому, компрометуючи ці дані, можна підвищити привілеї до AD та AzureAD.
Ви можете знайти повний огляд того, як ці облікові дані зберігаються та розшифровуються в цій доповіді.
Якщо сервер, на якому встановлено Azure AD connect, приєднаний до домену (рекомендується в документації), його можна знайти за допомогою:
Ви також можете використовувати adconnectdump для отримання цих облікових даних.
Компрометуючи обліковий запис Sync_*
, можливо скинути пароль будь-якого користувача (включаючи глобальних адміністраторів)
Також можливо змінити паролі лише для користувачів хмари (навіть якщо це неочікувано)
Цілком можливо вивантажити пароль цього користувача.
Іншою опцією було б призначити привілейовані дозволи службовому принципу, що Sync користувач має дозволи на це, а потім отримати доступ до цього службового принципу як спосіб підвищення привілеїв.
Можливо використовувати безшовний SSO з PHS, який вразливий до інших зловживань. Перевірте це в:
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)