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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Basic Information
Коли пристрій приєднується до 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 - Primary Refresh Token (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.
tip
Зверніть увагу, що для виконання цієї атаки вам знадобляться дозволи на реєстрацію нових пристроїв. Також реєстрація пристрою не означає, що пристрій буде дозволено зареєструватися в Intune.
caution
Цю атаку виправили у вересні 2021 року, оскільки ви більше не можете реєструвати нові пристрої, використовуючи токени SSO. Однак все ще можливо легітимно реєструвати пристрої (маючи ім'я користувача, пароль і MFA, якщо потрібно). Перевірте: roadtx.
Перезапис квитка пристрою
Було можливим запросити квиток пристрою, перезаписати поточний квиток пристрою і під час процесу викрасти PRT (тому немає потреби викрадати його з TPM. Для отримання додаткової інформації перевірте цю доповідь.
.png)
caution
Однак це було виправлено.
Перезаписати ключ WHFB
Перевірте оригінальні слайди тут
Резюме атаки:
- Можливо перезаписати зареєстрований ключ WHFB з пристрою через SSO
- Це обходить захист TPM, оскільки ключ перехоплюється під час генерації нового ключа
- Це також забезпечує постійність
.png)
Користувачі можуть змінювати свою власну властивість searchableDeviceKey через Azure AD Graph, однак атакуючий повинен мати пристрій у тенанті (зареєстрований на льоту або викравши сертифікат + ключ з легітимного пристрою) і дійсний токен доступу для AAD Graph.
Тоді можливо згенерувати новий ключ за допомогою:
roadtx genhellokey -d <device id> -k tempkey.key
і потім PATCH інформацію про searchableDeviceKey:
.png)
Можливо отримати токен доступу від користувача через device code phishing і зловживати попередніми кроками, щоб викрасти його доступ. Для отримання додаткової інформації перевірте:
Az - Primary Refresh Token (PRT)
.png)
References
- https://youtu.be/BduCn8cLV1A
- https://www.youtube.com/watch?v=x609c-MUZ_g
- https://www.youtube.com/watch?v=AFay_58QubY
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.