Elévation de privilèges via PAM (Privileged Account Management) en PowerShell

Les articles publiés sur ce blog, ont pour but de partager des connaissances/concepts techniques et sont tous réalisés dans un environnement de test. Par conséquent, les auteurs dégagent toute responsabilité, de quelque ordre que ce soit, quant aux dommages directs, indirects ou consécutifs résultant de l’utilisation des informations contenus dans ceux-ci.

Introduction

La réalisation des actions indiquées dans cet article, nécessite que PAM soit configuré et installé comme décrit dans l’article sur l’installation de PAM.

Rappel du contexte

Relation d’approbation entre une forêt d’administration (red.lab) et une forêt de « production » (corp.lab) ayant les caractéristiques suivantes :

  • Type : Forêt
  • Direction : red.lab approuvée par corp.lab
  • Authentification : sélective

L ‘exercice consiste à autoriser un compte de red.lab à devenir domain admins sur corp.lab.

Les demandes d’élévation de privilèges nécessitent l’installation du module PowerShell MIMPAM présent dans l’ISO de MIM 2016 SP1 (Drive>\Add-ins and extensions\x64\ Add-ins and extensions.msi). Lors de l’installation, il faudra :

  • Choisir l’extension PAM Client
  • indiquer l’URL de l’API :
    • PAM Server Address : mimportal.red.lab
    • Port: 5725

 

Configuration de l’élévation de privilèges dans PAM

L’élévation de privilèges temporaire à la demande dans PAM nécessite la configuration des objets suivants dans FIMService :

  • PAM User : compte utilisateur/candidat à l’éligibilité autorisé à faire une demande d’élévation de privilèges.
  • PAM Group : groupe de sécurité permettant d’accéder à la ressource.
  • PAM Role : Contient le(s) candidat(s) éligible(s) à l’élévation de privilèges (groupe de sécurité). Cet objet fait le lien entre le(s) candidat(s) et le PAM Group.

Le compte qui va créer le PAM User, Group et role doit être administrateur du portail MIM et avoir la permission Allow To Authenticate sur corp.lab. Dans le contexte de l’article, nous utilisons le compte d’installation de PAM.

 

Création d’un PAM User

Depuis le serveur MIMPAM, ouvrez un prompt PowerShell runas admin et tapez les cmdlet suivantes :

Import-Module MIMPAM

Import-Module ActiveDirectory

New-PAMUser -SourceDomain red.lab -SourceAccountName VentDuNord -PrivOnly

Le switch PrivOnly, indique d’utiliser un compte existant dans red.lab

Afin de valider que le compte a bien été créé, tapez :

Get-PAMUser

Text

Description automatically generated

Vous pouvez aussi, vérifier la création du nouveau PAM User dans le portail MIM

Graphical user interface, application

Description automatically generated

Création d’un PAM Group

Pour créer un PAM Group, ouvrez un prompt PowerShell en runas admin et tapez :

Import-Module MIMPAM

Import-Module ActiveDirectory

New-PAMGroup -SourceGroupName “Domain admins” -SourceDomain corp.lab -SourceDC dc-corp.corp.lab

Graphical user interface, text

Description automatically generated

Afin de valider la création du PAM Group, lancez adsiedit.msc, et sélectionnez la partition de configuration (Services, Shadow Principal Configuration)

Graphical user interface, application

Description automatically generated

Vous pouvez aussi vérifier la création du nouveau PAM Group dans le portail MIM

Création d’un PAM Rôle

Pour créer un PAM Role, tapez dans un prompt powershell runas admin:

Import-Module MIMPAM

Import-Module ActiveDirectory

$pg=Get-PAMGroup -PrivDisplayName “CORP.Domain admins”

$sj=Get-PAMUser -PrivDisplayName Ventdunord

New-PAMRole -DisplayName “CORP\Domain Admins” -Privileges $pg -Candidates $sj -TTL “00:45:00”

A computer screen capture

Description automatically generated with medium confidence

Le switch TTL, en secondes, indique la durée de l’élévation de privilèges (45 min dans notre exemple) par défaut la valeur est d’1 heure.

Afin de valider la création du PAM Role, tapez :

Get-PAMRole -DisplayName “CORP\Domain Admins”

A picture containing background pattern

Description automatically generated

Vous pouvez aussi vérifier la création du nouveau PAM Role dans le portail MIM

Graphical user interface, application

Description automatically generated
Graphical user interface, application

Description automatically generated

Demande d’élévation de privilèges

Comme nous pouvons le voir le compte red\VentDuNord ne peut pas ouvrir de session sur le contrôleur de domaine de corp.lab :

Graphical user interface, text, application, email

Description automatically generated
Graphical user interface, text, application, email

Description automatically generated
Graphical user interface, application

Description automatically generated

Activation du PAM Role

Pour activer le PAM Role :

  • Loguez-vous sur une machine avec le compte éligible (red\VentDuNord)
  • Ouvrez un prompt powershell runas admin:

$req= Get-PAMRoleForRequest -DisplayName “CORP\Domain Admins”

New-PAMRequest -Role $req

Text

Description automatically generated
Graphical user interface, text

Description automatically generated
Graphical user interface, application, Teams

Description automatically generated

En tant qu’administrateur du domaine, red\VentDuNord est en mesure d’ouvrir une session sur le contrôleur de domaine de corp.lab.

Explication/Description du background

Comme nous pouvons le voir ci-dessous, le compte red\VentDuNord est vu comme étant membre du groupe CORP\Domain Admins et pourtant, dans la console ADUC (Active Directory User and Computers), il n’apparaît pas comme membre du groupe domain admins, d’autant plus que le groupe domain admins est d’étendue groupe global (donc ne peut contenir que des objets de son domaine) :

Graphical user interface, text

Description automatically generated

Vous vous rappelez du Shadow Principal et de son SID créé dans red.lab, au moment de la création du PAM Group?

Hé bien, c’est lui qui rentre en jeu. En fait, lors de l’élévation de privilèges le compte red\VentDuNord a été rajouté en tant que membre du Shadow Principal red\CORP.Domain admins pour une durée de 45 minutes:

Graphical user interface, text, application, email

Description automatically generated

Comme nous l’avons vu dans les rubriques précédentes, le SID du Shadow Principal CORP.Domain admins correspond au SID du groupe CORP\Domain admins. Aussi, si vous avez lu la rubrique sur la configuration de la relation d’approbation entre red.lab et corp.lab, nous avons activé le fait que les SID History traverse la trust (enablesidhistory:yes).

Finalement, on comprend que l’ajout du compte red\VentDuNord dans le Shadow Principal red\CORP.Domain admins, dont le SID correspond à celui du groupe CORP\dom admins, est ajouté au SID History du jeton Kerberos de red\VentDuNord. Ce qui explique comment red\VentDuNord peut devenir domain admins et se loguer sur le contrôleur de domaine de corp.lab sans être membre explicite du groupe domin admins, ni avoir la permission Allow To Authenticate (nécessaire dans le cas d’une trust avec authentification sélective).

Pour rappel, le role domain admins de corp.lab n’est actif/présent dans le jeton kerberos de red\VentDuNord que pendant la durée du TTL (dans notre cas 45 minutes)

Le détail des actions est accessible dans les Search Requests sur le portail MIM.

Table

Description automatically generated

A ciao & have fun !!!

Leave a Reply

Your email address will not be published. Required fields are marked *