Az - Pass the Certificate
Passez le certificat (Azure)
Dans les machines jointes à Azure, il est possible de s'authentifier d'une machine à une autre en utilisant des certificats qui doivent être émis par Azure AD CA pour l'utilisateur requis (en tant que sujet) lorsque les deux machines prennent en charge le mécanisme d'authentification NegoEx.
En termes super simplifiés :
La machine (client) initiant la connexion a besoin d'un certificat d'Azure AD pour un utilisateur.
Le client crée un en-tête de jeton Web JSON (JWT) contenant PRT et d'autres détails, le signe en utilisant la clé dérivée (en utilisant la clé de session et le contexte de sécurité) et l'envoie à Azure AD.
Azure AD vérifie la signature JWT en utilisant la clé de session client et le contexte de sécurité, vérifie la validité de PRT et répond avec le certificat.
Dans ce scénario et après avoir récupéré toutes les informations nécessaires pour une attaque Pass the PRT :
Nom d'utilisateur
ID du locataire
PRT
Contexte de sécurité
Clé dérivée
Il est possible de demander un certificat P2P pour l'utilisateur avec l'outil PrtToCert** :**
Les certificats auront la même durée que le PRT. Pour utiliser le certificat, vous pouvez utiliser l'outil python AzureADJoinedMachinePTC qui va authentifier sur la machine distante, exécuter PSEXEC et ouvrir un CMD sur la machine victime. Cela nous permettra d'utiliser à nouveau Mimikatz pour obtenir le PRT d'un autre utilisateur.
Références
Pour plus de détails sur le fonctionnement de Pass the Certificate, consultez l'article original https://medium.com/@mor2464/azure-ad-pass-the-certificate-d0c5de624597
Last updated