Az - Pass the Certificate
Передача сертифіката (Azure)
На з'єднаних машинах Azure можливо аутентифікуватися з однієї машини на іншу, використовуючи сертифікати, які повинні бути видані Azure AD CA для потрібного користувача (як суб'єкта), коли обидві машини підтримують механізм аутентифікації NegoEx.
У дуже спрощених термінах:
Машина (клієнт), що ініціює з'єднання, потребує сертифікат від Azure AD для користувача.
Клієнт створює заголовок JSON Web Token (JWT), що містить PRT та інші деталі, підписує його за допомогою похідного ключа (використовуючи сеансовий ключ та контекст безпеки) і надсилає його в Azure AD
Azure AD перевіряє підпис JWT за допомогою сеансового ключа клієнта та контексту безпеки, перевіряє валідність PRT та відповідає з сертифікатом.
У цьому сценарії після отримання всієї необхідної інформації для атаки Pass the PRT:
Ім'я користувача
Ідентифікатор орендаря
PRT
Контекст безпеки
Похідний ключ
Можливо запитати сертифікат P2P для користувача за допомогою інструменту PrtToCert:
```bash RequestCert.py [-h] --tenantId TENANTID --prt PRT --userName USERNAME --hexCtx HEXCTX --hexDerivedKey HEXDERIVEDKEY [--passPhrase PASSPHRASE] ``` Сертифікати будуть діяти стільки ж часу, скільки і PRT. Для використання сертифіката ви можете використовувати інструмент Python [**AzureADJoinedMachinePTC**](https://github.com/morRubin/AzureADJoinedMachinePTC), який **аутентифікується** на віддаленій машині, запускає **PSEXEC** і **відкриває CMD** на машині жертви. Це дозволить нам знову використовувати Mimikatz для отримання PRT іншого користувача. ```bash Main.py [-h] --usercert USERCERT --certpass CERTPASS --remoteip REMOTEIP ``` ## Посилання
Для отримання детальнішої інформації про те, як працює Pass the Certificate, перегляньте оригінальний пост https://medium.com/@mor2464/azure-ad-pass-the-certificate-d0c5de624597
Last updated