Az - Seamless SSO
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 Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) автоматично авторизує користувачів, коли вони використовують свої корпоративні пристрої, підключені до вашої корпоративної мережі. Коли ця функція увімкнена, користувачам не потрібно вводити свої паролі для входу в Azure AD, і зазвичай навіть вводити свої імена користувачів. Ця функція забезпечує вашим користувачам легкий доступ до ваших хмарних додатків без необхідності в додаткових компонентів на місці.
В основному Azure AD Seamless SSO авторизує користувачів, коли вони на ПК, приєднаному до локального домену.
Цю функцію підтримують як PHS (Password Hash Sync), так і PTA (Pass-through Authentication).
Desktop SSO використовує Kerberos для аутентифікації. Коли налаштовано, Azure AD Connect створює обліковий запис комп'ютера під назвою AZUREADSSOACC$
в локальному AD. Пароль облікового запису AZUREADSSOACC$
надсилається у відкритому тексті до Azure AD під час налаштування.
Квитки Kerberos шифруються за допомогою NTHash (MD4) пароля, а Azure AD використовує надісланий пароль для розшифровки квитків.
Azure AD надає кінцеву точку (https://autologon.microsoftazuread-sso.com), яка приймає квитки Kerberos. Браузер комп'ютера, приєднаного до домену, пересилає квитки на цю кінцеву точку для SSO.
Пароль користувача AZUREADSSOACC$
ніколи не змінюється. Тому адміністратор домену може скомпрометувати хеш цього облікового запису, а потім використовувати його для створення срібних квитків для підключення до Azure з будь-яким синхронізованим локальним користувачем:
З хешем ви тепер можете генерувати срібні квитки:
Щоб використати срібний квиток, слід виконати наступні кроки:
Запустіть браузер: Потрібно запустити Mozilla Firefox.
Налаштуйте браузер:
Перейдіть до about:config
.
Встановіть параметр для network.negotiate-auth.trusted-uris на вказані значення:
https://aadg.windows.net.nsatc.net
https://autologon.microsoftazuread-sso.com
Доступ до веб-додатку:
Відвідайте веб-додаток, інтегрований з доменом AAD організації. Загальним прикладом є Office 365.
Процес аутентифікації:
На екрані входу введіть ім'я користувача, залишивши поле пароля порожнім.
Щоб продовжити, натисніть TAB або ENTER.
Це не обходить MFA, якщо вона увімкнена
Цей напад також можна виконати без атаки dcsync, щоб бути більш непомітним, як пояснено в цьому блозі. Для цього вам потрібен лише один з наступних:
Золотий квиток: Якщо у вас є ключ KRBTGT, ви можете створити TGT, який вам потрібен для атакованого користувача.
NTLM хеш або AES ключ скомпрометованого користувача: SeamlessPass зв'яжеться з контролером домену з цією інформацією, щоб згенерувати TGT.
NTLM хеш або AES ключ облікового запису AZUREADSSOACC$: З цією інформацією та Ідентифікатором безпеки (SID) користувача, якого ви атакуєте, можливо створити сервісний квиток і аутентифікуватися в хмарі (як виконано в попередньому методі).
Нарешті, з TGT можливо використовувати інструмент SeamlessPass з:
Додаткова інформація про налаштування Firefox для роботи з безшовним SSO може бути знайдена в цьому блозі.
Якщо адміністратори Active Directory мають доступ до Azure AD Connect, вони можуть встановити SID для будь-якого користувача в хмарі. Таким чином, квитки Kerberos можна створити також для користувачів тільки в хмарі. Єдина вимога полягає в тому, що SID є правильним SID.
Зміна SID користувачів-адміністраторів тільки в хмарі тепер блокована Microsoft. Для отримання інформації перевірте https://aadinternals.com/post/on-prem_admin/
Будь-хто, хто може керувати обліковими записами комп'ютерів (AZUREADSSOACC$
) у контейнері або OU, в якому знаходиться цей обліковий запис, може налаштувати обмежену делегацію на основі ресурсів для облікового запису та отримати до нього доступ.
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)