Az - Реєстрація пристрою
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.
Основна інформація
Коли пристрій приєднується до AzureAD, у AzureAD створюється новий об’єкт.
Під час реєстрації пристрою користувача просять увійти у свій обліковий запис (за потреби з MFA), далі запитуються токени для служби реєстрації пристроїв і наприкінці з’являється запит на підтвердження.
Потім на пристрої генеруються два RSA ключові пари: ключ пристрою (публічний ключ), який відправляється в AzureAD, та транспортний ключ (приватний ключ), який зберігається в TPM, якщо це можливо.
Потім в AzureAD (не в Intune) створюється об’єкт, і AzureAD повертає пристрою сертифікат, підписаний ним. Ви можете перевірити, що пристрій приєднаний до AzureAD та інформацію про сертифікат (наприклад, чи захищений він TPM).:
dsregcmd /status
After the device registration a Primary Refresh Token is requested by the LSASS CloudAP module and given to the device. With the PRT is also delivered the session key encrypted so only the device can decrypt it (using the public key of the transport key) and it’s needed to use the PRT.
For more information about what is a PRT check:
Az - Primary Refresh Token (PRT)
TPM — модуль довіреної платформи
The TPM protects against key extraction from a powered down device (if protected by PIN) and from extracting the private material from the OS layer.
But it doesn’t protect against sniffing the physical connection between the TPM and CPU or using the cryptographic material in the TPM while the system is running from a process with SYSTEM rights.
If you check the following page you will see that stealing the PRT can be used to access like a the user, which is great because the PRT is located devices, so it can be stolen from them (or if not stolen abused to generate new signing keys):
Az - Primary Refresh Token (PRT)
Registering a device with SSO tokens
It would be possible for an attacker to request a token for the Microsoft device registration service from the compromised device and register it:
# 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
Який дасть вам сертифікат, який ви зможете використати для запиту PRTs у майбутньому. Отже, це забезпечує персистентність і обхід MFA, оскільки оригінальний PRT токен, використаний для реєстрації нового пристрою, вже мав надані права MFA.
Tip
Зауважте, що для виконання цієї атаки вам знадобляться права на реєстрацію нових пристроїв. Також реєстрація пристрою не означає, що пристрій буде дозволено зареєструватися в Intune.
Caution
Цю атаку виправили у вересні 2021 року — тепер ви більше не можете реєструвати нові пристрої, використовуючи SSO токени. Однак все ще можливо легітимно реєструвати пристрої (маючи username, password та MFA, якщо потрібно). Див.: roadtx.
Перезапис квитка пристрою
Було можливо запитати device ticket, перезаписати поточний на пристрої, і під час процесу вкрасти PRT (тобто немає потреби вкрадати його з TPM). Для детальнішої інформації див. цю доповідь.
.png)
Caution
Однак це було виправлено.
Перезаписати ключ WHFB
Перегляньте оригінальні слайди тут
Короткий опис атаки:
- Можливо перезаписати зареєстрований ключ WHFB з пристрою через SSO
- Це обминає захист TPM, оскільки ключ перехоплюється під час генерації нового ключа
- Це також забезпечує персистентність
.png)
Користувачі можуть змінювати власну властивість searchableDeviceKey через Azure AD Graph, однак атакуючий повинен мати пристрій у tenant (зареєстрований на ходу або маючи вкрадений cert + key з легітимного пристрою) та дійсний access token для AAD Graph.
Тоді можливо згенерувати новий ключ за допомогою:
roadtx genhellokey -d <device id> -k tempkey.key
а потім PATCH інформації searchableDeviceKey:
.png)
Можна отримати access token від користувача через device code phishing і скористатися попередніми кроками, щоб вкрасти його доступ. Для додаткової інформації дивіться:
Az - Primary Refresh Token (PRT)
.png)
Посилання
- 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.
HackTricks Cloud

