Az - Device Registration

Reading time: 5 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Basic Information

Коли пристрій приєднується до AzureAD, у AzureAD створюється новий об'єкт.

При реєстрації пристрою користувачеві пропонується увійти зі своїм обліковим записом (запит на MFA, якщо потрібно), потім запитуються токени для служби реєстрації пристроїв, а потім з'являється запит на остаточне підтвердження.

Потім у пристрої генеруються дві пари ключів RSA: ключ пристрою (публічний ключ), який надсилається до AzureAD, і транспортний ключ (приватний ключ), який зберігається в TPM, якщо це можливо.

Потім у AzureAD створюється об'єкт (не в Intune), і AzureAD повертає пристрою сертифікат, підписаний ним. Ви можете перевірити, що пристрій приєднано до AzureAD та інформацію про сертифікат (наприклад, чи захищений він TPM).

bash
dsregcmd /status

Після реєстрації пристрою Primary Refresh Token запитується модулем LSASS CloudAP і надається пристрою. Разом з PRT також передається ключ сесії, зашифрований так, щоб тільки пристрій міг його розшифрувати (використовуючи відкритий ключ транспортного ключа) і він необхідний для використання PRT.

Для отримання додаткової інформації про те, що таке PRT, перегляньте:

Az - Primary Refresh Token (PRT)

TPM - Довірчий модуль платформи

TPM захищає від витоку ключів з витягування з вимкненого пристрою (якщо захищено PIN-кодом) та від витягування приватних матеріалів з рівня ОС.
Але він не захищає від перехоплення фізичного з'єднання між TPM і ЦП або використання криптографічних матеріалів у TPM, поки система працює з процесу з правами SYSTEM.

Якщо ви переглянете наступну сторінку, ви побачите, що викрадення PRT може бути використано для доступу як користувач, що є чудово, оскільки PRT розташовані на пристроях, тому їх можна вкрасти (або, якщо не вкрадені, зловживати для генерації нових підписних ключів):

Az - Pass the PRT

Реєстрація пристрою з токенами SSO

Зловмисник міг би запитати токен для служби реєстрації пристроїв Microsoft з компрометованого пристрою та зареєструвати його:

bash
# Initialize SSO flow
roadrecon auth prt-init
.\ROADtoken.exe <nonce>

# Request token with PRT with PRT cookie
roadrecon auth -r 01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9 --prt-cookie <cookie>

# Custom pyhton script to register a device (check roadtx)
registerdevice.py

Який надасть вам сертифікат, який ви можете використовувати для запиту PRT у майбутньому. Таким чином, підтримуючи стійкість і обминаючи MFA, оскільки оригінальний токен PRT, використаний для реєстрації нового пристрою, вже мав надані дозволи MFA.

tip

Зверніть увагу, що для виконання цієї атаки вам знадобляться дозволи на реєстрацію нових пристроїв. Також реєстрація пристрою не означає, що пристрій буде дозволено зареєструватися в Intune.

caution

Цю атаку виправили у вересні 2021 року, оскільки ви більше не можете реєструвати нові пристрої, використовуючи токени SSO. Однак все ще можливо легітимно реєструвати пристрої (маючи ім'я користувача, пароль і MFA, якщо потрібно). Перевірте: roadtx.

Перезаписування квитка пристрою

Було можливим запросити квиток пристрою, перезаписати поточний квиток пристрою і під час процесу викрасти PRT (тому немає потреби викрадати його з TPM. Для отримання додаткової інформації перевірте цю доповідь.

caution

Однак це було виправлено.

Перезаписати ключ WHFB

Перевірте оригінальні слайди тут

Резюме атаки:

  • Можливо перезаписати зареєстрований ключ WHFB з пристрою через SSO
  • Це обминає захист TPM, оскільки ключ перехоплюється під час генерації нового ключа
  • Це також забезпечує стійкість

Користувачі можуть змінювати свою власну властивість searchableDeviceKey через Azure AD Graph, однак атакуючий повинен мати пристрій у тенанті (зареєстрований на льоту або викравши сертифікат + ключ з легітимного пристрою) і дійсний токен доступу для AAD Graph.

Тоді можливо згенерувати новий ключ за допомогою:

bash
roadtx genhellokey -d <device id> -k tempkey.key

і потім PATCH інформацію про searchableDeviceKey:

Можливо отримати токен доступу від користувача через фішинг за допомогою коду пристрою і зловживати попередніми кроками, щоб викрасти його доступ. Для отримання додаткової інформації перевірте:

Az - Phishing Primary Refresh Token (Microsoft Entra)

References

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks