Az - Device Registration

Support HackTricks

Основна інформація

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

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

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

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

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 з скомпрометованого пристрою та зареєструвати його:

# 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.

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

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

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

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

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

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

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

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

  • Можливо перезаписати зареєстрований ключ WHFB з пристрою через SSO

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

  • Це також забезпечує постійність

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

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

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

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

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

Az - Phishing Primary Refresh Token (Microsoft Entra)

Посилання

Підтримати HackTricks

Last updated