Az - Pass the Certificate
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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 JSON Web Token (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 du client et le contexte de sécurité, vérifie la validité du 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 de 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 dureront aussi longtemps que le PRT. Pour utiliser le certificat, vous pouvez utiliser l'outil python AzureADJoinedMachinePTC qui va s'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.
Pour plus de détails sur le fonctionnement de Pass the Certificate, consultez le post original https://medium.com/@mor2464/azure-ad-pass-the-certificate-d0c5de624597
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)