Mouvements latéraux
Dans un contexte hybride, avec de l’On Prem et du Cloud, il est possible de rebondir d’un poste Windows vers un compte Cloud.
Dans un premier temps, il s’agit d’identifier si le poste est rattaché au tenant Azure avec la commande dsregcmd.exe /status
. Si c’est le cas, le résultat sera le suivant :
Il s’agira maintenant d’aller récupérer des identifiants pour retourner dans le contexte Azure.
Identifiants locaux
Il est possible de retrouver un Token d’accès localement au chemin suivant :
C:\Users\$USERNAME\.Azure\accessTokens.json
Pass the PRT (Primary Refresh Token)
Un PRT est un token JWT délivré par Microsoft pour permettre l’authentification SSO pour toutes les applications.
Il contient deux claims spécifiques :
- Device ID : identifie l’appareil sur lequel le PRT a été délivré
- Session key : clé symétrique chiffrée, générée par le service d’authentification Microsoft Entra
Une fois qu’il est délivré, ce jeton est valide pendant 14 jours et renouvelé à chaque fois que l’utilisateur utile les services d’Entra ID.
Il est possible d’identifier la présence d’un PRT avec la commande Dsregcmd.exe /status
. Si un PRT est présent, le retour sera le suivant :
Il est possible d’extraire le PRT de la mémoire lSASS avec Mimikatz :
Attention
Si l’appareil est doté d’un TPM, le PRT ne pourra pas être extrait
La clé de session se trouve dans la valeur KeyValue
, et doit alors être déchiffrée au moyen de la clé maitresse DPAPI.
Deux champs sont à prendre en compte dans le retour de Mimikatz : Context
et Derived Key
Il est alors possible de générer des cookies PRT. Dans le navigateur, il suffit ensuite de clear tous les cookies présents sur le site login.microsoft.com et d’en créer un nouveau avec les informations suivantes:
- Name :
x-ms-RefreshTokenCredential
- Value : valeur en sortie de la commande
Mimikatz
- Path :
/
- HttpOnly :
true
A la réactualisation de la page, nous devrions alors être connecté.