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

Shape, calendar, arrow

Description automatically generatedLes 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 décrites dans cet article, nécessite que PAM soit configuré et installé comme indiqué 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.

DNS

Vérifiez/Créez un enregistrement DNS ayant les caractéristiques suivantes :

NOM

TYPE

ADDRESSE IP

DESCRIPTION

URL d’accès au pam sample

 Ex : rolerequest.red.lab

A

IP du serveur MIM

Accès au portail d’élévation de privilèges

Cet enregistrement correspond à l’URL du portail PAM sample.

Configuration Active Directory

Afin de forcer le portail pam sample à faire du kerberos, il est nécessaire d’ajouter le SPN rolerequest.red.lab sur le compte qui exécute l’appPool PAMRestApiAppPool (configuré lors de l’installation de PAM)

Lancez un prompt powershell runas admin et tapez :

Setspn -S http/rolerequest.red.lab red\svc_mimsp

Configuration du portail PAM Sample

Le portail PAM Sample est un portail web, disponible sur github, qui permet de réaliser des élévations de privilèges de façon plus ergonomique.

Téléchargez le PAM Sample et copiez le sur le serveur PAM.

Loguez-vous sur le serveur PAM et décompressez l’archive précédemment téléchargée

Rendez-vous dans le répertoire C:\Program Files\Microsoft Forefront Identity Manager\2010

Créez le répertoire Privileged Access Management Portal

Copiez le contenu du répertoire src du pam sample dans celui nouvellement créé

Création du site web

Dans cette section, nous allons créé le site web du portail pam sample.

Sur le serveur PAM, ouvrez un prompt powershell runas admin et tapez les cmdlet suivants :

New-WebSite -Name “PAM SAMPLE Portal” -Port 8090 -PhysicalPath “C:\Program Files\Microsoft Forefront Identity Manager\2010\Privileged Access Management Portal\”

A picture containing text, font, software, screenshot

Description automatically generated

Configuration de la REST API PAM

Ici nous allons configurer le pam sample pour rediriger les requêtes d’élévation de privilèges vers la PAM API.

Editez le fichier web.config présent dans C:\Program Files\Microsoft Forefront Identity Manager\2010\Privileged Access Management REST API

Ajoutez les lignes suivantes entre les balises security et handlers :

<httpProtocol>

<customHeaders>

<add name=”Access-Control-Allow-Credentials” value=”true” />

<add name=”Access-Control-Allow-Headers” value=”content-type” />

<add name=”Access-Control-Allow-Origin” value=”http://rolerequest.red.lab:8090″ />

</customHeaders>

</httpProtocol>

A screenshot of a computer code

Description automatically generated with medium confidence

Configuration du portail pam sample

Editez le fichier C:\Program Files\Microsoft Forefront Identity Manager\2010\Privileged Access Management Portal\js\utils.js

A picture containing text, screenshot, line, font

Description automatically generated

Ouvrez un prompt cmd runas admin et tapez :

IISreset /STOP

C:\Windows\System32\inetsrv\appcmd.exe unlock config /section:windowsAuthentication -commit:apphost

iisreset /START

A picture containing text, screenshot, font

Description automatically generated

Lancez votre navigateur web depuis le serveur PAM et accédez à l’URL : http://rolerequest.red.lab:8086/api/pamresources/pamroles

Si vous recevez le message d’erreur suivant :

A screenshot of a computer error

Description automatically generated with medium confidence

Il faut modifier le mode d’authentification. Pour ce faire, lancez IIS Manager (Windows + R inetmgr)

Dans la section Management, sélectionnez Feature Delegation

A screenshot of a computer

Description automatically generated

Faites un clic droit sur Authenitcation – Windows et sélectionnez Read/Write

A screenshot of a computer

Description automatically generated

Portail MIM

Loguez-vous sur le portail MIM (mimportal.red.lab/IdentityManagement) avec un compte membre du set Administrators ou avec le compte utilisé lors de l’installation du portail MIM.

Cliquez sur Administration

Cliquez sur Schema Management

Graphical user interface, application

Description automatically generated

Cliquez sur All Attributes

Graphical user interface, application, Word

Description automatically generated

Cliquez sur New

System name : PresentInAD

Display Name : PresentInAD

Data Type : Boolean

Description : Différencie les objets synchronisés depuis l’AD de ceux créés dans le portail

Cliquez sur Finish

Cliquez sur Submit

Graphical user interface, text, application, email

Description automatically generated

Cliquez sur All bindings

A picture containing graphical user interface

Description automatically generated

Cliquez sur New

Resource Type : Group

Attribute Type : PresentInAD

Cliquez sur Finish

Cliquez sur Submit

Graphical user interface, text, application, email

Description automatically generated

Refaites un bind sur la ressource de type User pour l’attribut PresentInAD

Cliquez sur New

Resource Type : User

Attribute Type : PresentInAD

Cliquez sur Finish

Cliquez sur Submit

Suivez les étapes précédentes pour créer l’attribut :

  • Nom Attribut : MIMImportFilter
  • Type : Boolean
  • Description : Filtre les groupes synchronisés depuis l’AD pour ne pas les réimportés dans le MetaVerse
  • Binding : Group

Configuration du moteur de synchronisation (FIMSync)

Nous allons utiliser le moteur de synchro FIMSync afin que le(s) compte(s) puisse(ent) être candidat(s) pour l’élévation de privilèges.

Loguez-vous sur le serveur MIM/PAM avec un compte membre du groupe FIMSyncAdmins

Lancez

Ajout d’attibuts custom dans le MetaVerse

Cliquez sur Metaverse Designer

Dans la section object types, sélectionnez person

Graphical user interface

Description automatically generated

Dans la rubrique Actions (en bas à droite), cliquez sur Add Attribute

Cliquez sur New attribute…

Attribute name : domainFQDN

Attribute type : string (indexable)

Graphical user interface, application

Description automatically generated

Cliquez sur New attribute…

Attribute name : msidmPamLinkedUser

Attribute type : Reference (DN)

Graphical user interface, text, application

Description automatically generated

Création Management Agent

Dans le menu Actions (à droite de la fenêtre), cliquez sur Create

Graphical user interface, text, application

Description automatically generated

Création/Configuration du Management Agent FIMService

Create Management Agent

Management agent for : FIM Service Management Agent

Name: MA FIMService Portal

Graphical user interface, text, application, email

Description automatically generated

Connect to Database

Server : MIM-PAM\MIMPAM

Database : FIMService

FIM Service base address : http://mimportal.red.lab:5725

User name: svc_FIMServiceMA

Password: <Password>

Domain: RED

Select Object Types

Cochez toutes les cases

Graphical user interface, application

Description automatically generated

Select Attributes

Cochez (en haut à droite)

Décochez les attributs suivants :

DisplayedOwner

Filter

msidmDeferredEvaluation

msidmPamPrivOnlyGroup

msidmPamSourceSid

msidmPamUsesSIDHistory

Owner

Temporal

Graphical user interface, text, application

Description automatically generated

Configure Connector Filter

Sélectionnez Group

Filter Type : Declared

Cliquez sur New

Data source attribute: MIMImportFilter

Operator: Equals

Value: true

Click Add Condition

Graphical user interface

Description automatically generated

Sélectionnez Person

Filter Type : Declared

Cliquez sur New

Data source attribute: DisplayName

Operator: Starts with

Value: Built-in

Click Add Condition

OK

New

Data source attribute: AccountName

Operator: Starts with

Value: svc_

Click Add Condition

OK

New

Data source attribute: AccountName

Operator: Starts with

Value: GMSA_

Click Add Condition

OK

Configure Object Type Mappings

Select Group

Add Mapping

Metaverse object type: Group

OK

Select Person

Add Mapping

Metaverse object type: person

OK

Graphical user interface, application

Description automatically generated

Configure Attrubte Flow

Modifiez uniquement l’attribute flow des types d’objets Group et Person comme indiqué dans les screenshots ci-dessous :

Group

Table

Description automatically generated

Person

A screenshot of a computer

Description automatically generated with medium confidence

Soyez vigilent concernant la direction des flèches

Configure Deprovisioning

Sélectionnez Stage a delete on the object for the next export run

Graphical user interface, text, application, email

Description automatically generated

Configure Extensions

Cliquez sur Finish

Graphical user interface, text, application, email

Description automatically generated

Création/Configuration du Management Agent RED.LAB

Create Management Agent

Management agent for : Active Directory Services

Name: MA ADDS RED.LAB

Graphical user interface, text, application, email

Description automatically generated

Connect to Active Directory Forest

Forest name: red.lab

User name: svc_MIMMARED

Password: <Password>

Domain: RED

Graphical user interface, text, application

Description automatically generated

Configure Directory Partitions

Cochez

Cliquez sur

Sélectionnez les OU que vous souhaitez synchroniser

Graphical user interface, text, application

Description automatically generated

Le compte de service RED\svc_MIMMARED doit avoir la permission Replicating Directory Changes sur le domaine corp.lab.

Configure Provisioning Hierarchy

Dans la section Distinguished Name Component, sélectionnez ou

Dans la section Directory ObjectClass, sélectionnez organizationalUnit

Cliquez sur New

Graphical user interface, application

Description automatically generated

Select Object Types

Cochez container, domainDNS, group, organizationalUnit et user

Graphical user interface, text, application

Description automatically generated

Select Attributes

Cochez les Attrbuts suivants :

accountExpires

cn

displayName

member

msDS-PhoneticDisplayName

name

objectSid

ou

sAMAccountName

userAccountControl

userPrincipalName

Graphical user interface, text

Description automatically generated with medium confidence

Configure Connector Filter

Laissez la configuration par défaut

Graphical user interface, application

Description automatically generated

Configure Join and Projection Rules

Sélectionnez Group

New Projection Rule…

Projection type: Declared

Metaverse object type: group

OK

Graphical user interface, application

Description automatically generated

Sélectionnez user

New Projection Rule…

Projection type: Declared

Metaverse object type: user

OK

Graphical user interface, application

Description automatically generated

Configure Attribute Flow

Laissez la configuration par défaut

Graphical user interface, application

Description automatically generated

Configure Deprovisioning

Sélectionnez Make them disconnectors

Graphical user interface, text, application, email

Description automatically generated

Configure Extensions

Cliquez sur Finish

Graphical user interface, text, application, email

Description automatically generated

Configuration de la Sync Rule

Loguez-vous sur le portail MIM avec le compte d’installation du portail MIM

Cliquez sur Administration -> Synchronization Rules

Graphical user interface, text, application

Description automatically generated

Cliquez sur New

Onglet General

Display Name : #SR-InBound MA RED.LAB > MV – USERS – Admins

Description: SyncRule InBound MA RED.LAB > MV – USERS – Admins

Data Flow Direction : Inbound

Graphical user interface, text, application, email

Description automatically generated

Afin de différencier les objets custom des objets built-in du portail, nous préconisons d’avoir une convention de nommage claire et de respecter celle-ci rigoureusement.

Onglet Scope

Metaver Resource Type : person

External System : MA ADDS RED.LAB

External System Resource Type: user

Inbound System Scoping Filter

SAMAccountName not starts with Built-in

SAMAccountName not starts with svc_

SAMAccount not starts with gmsa

Screens screenshot of a computer

Description automatically generated with medium confidence

Onglet Relationship

Relationship Criteria

Cn = cn

Décochez Create Resource inFIM

A screenshot of a computer

Description automatically generated

Inbound Attribute Flow

Pour configurer l’attribute flow, cliquez sur A picture containing graphical user interface

Description automatically generated  :

Onglet Source (Attribut ADDS)

Graphical user interface, text, application

Description automatically generated

Onglet Destination (Attribut MV)

Graphical user interface, text, application, email

Description automatically generated

Inbound Attribute Flow

Graphical user interface, text, application, email

Description automatically generated

Pour l’attribute flow des attributs domain et domainFQDN, dans l’onglet source, il faut sélectionner constant value de type string

Cliquez sur Finish et Submit

Création/Configuration des run profiles

Les run profiles sont des process (staging, synchronisation, export) permettant de déterminer l’état des objets à synchroniser/exporter (source de données) et comment les intégrer dans le MetaVerse. Un management agent doit contenir au minimum 1 run profile.

Les run profiles doivent être créés pour chacun des management agents

Dans le menu Actions (à droite de la fenêtre), cliquez sur Configure Run Profiles -> New Profile…

Full Import

Profile Name

Name : FI

Graphical user interface, application

Description automatically generated

Configure Step

Type : Full Import (Stage Only)

Graphical user interface, text, application, email

Description automatically generated

Management Agent Configuration

Partition: dc,red, dc=lab

Graphical user interface, text

Description automatically generated

Full Synchronization

Profile Name

Name: FS

Configure Step

Type: Full Synchronization

Graphical user interface, text, application, email

Description automatically generated

Management Agent Configuration

Partition: dc,red, dc=lab

Graphical user interface, text

Description automatically generated

Delta Import

Profile Name

Name: DI

Graphical user interface, application

Description automatically generated

Configure Step

Type: Delta Import (Stage Only)

Graphical user interface, text, application, email

Description automatically generated

Management Agent Configuration

Partition: dc,red, dc=lab

Graphical user interface, text

Description automatically generated

Delta Synchronization

Profile Name

Name: DS

Graphical user interface, application

Description automatically generated

Configure Step

Type: Delta Synchronization

Graphical user interface, text, application, email

Description automatically generated

Management Agent Configuration

Partition: dc,red, dc=lab

Graphical user interface, text

Description automatically generated

Export

Profile Name

Name: EX

Graphical user interface, text, application

Description automatically generated

Configure Step

Type: Export

Graphical user interface, text, application

Description automatically generated

Management Agent Configuration

Partition: dc,red, dc=lab

Graphical user interface, text

Description automatically generated

Synchronization des comptes

La 1ère execution d’un run profile est toujours en full

Faites un clic droit sur le MA MA FIMService Portal

Cliquez sur

Sélectionnez FI (Full Import) pour importer les Synchnoization rules du portail dans le connector space

Faites un clic droit sur le MA MA ADDS RED.LAB

Cliquez sur

Sélectionnez FI (Full Import) pour importer les objets utilisateurs et groupes de l’Active Directory dans le connector space

Les FI (Full Import) peuvent être exécutés en même temps contrairement aux Full Sync

Faites un clic droit sur le MA MA FIMService Portal

Cliquez sur

Sélectionnez FS (Full Sync) pour importer les Synchnoization rules du portail dans le MetaVerse

Faites un clic droit sur le MA MA ADDS RED.LAB

Cliquez sur

Sélectionnez FI (Full Import) pour importer les objets utilisateurs et groupes de l’Active Directory dans le MetaVerse

Faites un clic droit sur le MA MA FIMService Portal

Cliquez sur

Sélectionnez EX (Export) pour exporter les objets dans le portail

Faites un clic droit sur le MA MA FIMService Portal

Cliquez sur

Sélectionnez DI (Delta Import) pour valider l’export précédemment réalisé

Validez/Vérifiez que le(s) compte(s) utilisateurs sont bien présents dans le portail.

Configuration de l’éligibilité au PAM Role CORP\domain admins

Dans cette section, nous allons travailler sur le compte red\ventDuNord_da afin de rendre celui-ci éligible au PAM Role CORP\Domain Admins.

Loguez-vous sur le portail MIM et cliquez sur le menu Users

Sélectionnez le compte VentDuNord_da et cliquez sur

Sélectionnez l’onglet Extended Attributes et cochez la case PresentInAD

A screenshot of a computer

Description automatically generated with medium confidence

Cliquez sur OK puis Submit

Cliquez sur le menu PAM Roles

Cliquez sur CORP\Domain Admins (PAM Role lié au PAM Group CORP.Domain Admins)

La création des PAM Group & PAM Role est décrite dans l’article Elévation de privilèges via PAM (Privileged Account Management) en PowerShell

Onglet Candidates

Cliquez sur puis cliquez sur

Sélectionnez VentDuNord_da

A screenshot of a computer

Description automatically generated with medium confidence

Cliquez sur OK, puis Submit.

Elévation de privilèges via le portail pam sample

N’oubliez pas de rajouter l’URL dans les sites de confiance d’internet Explorer pour éviter d’être prompté

Comme on peut le voir, le compte RED\VentDuNord_da n’est membre d’aucun groupe à privilèges

A screenshot of a computer

Description automatically generated

Ouvrez une session sur une machine du domaine red.lab avec le compte red\VentDuNord_da

Accédez à l’URL http://rolerequest.red.lab:8090

Sur le portail pam sample, cliquez sur Activate

Pour effectuer l’élévation de privilèges cliquez sur le bouton

A picture containing text, font, line, screenshot

Description automatically generated
A picture containing text, screenshot, font, number

Description automatically generated

Cliquez sur le bouton

Confirmation que le privilège a été octroyé

A screenshot of a computer

Description automatically generated with low confidence

Afin de valider que le privilège a bien été affecté, vous pouvez vérifier :

  • que le compte est bien membre du shadow principal correspondant au PAM Group CORP domain admins
A screenshot of a computer

Description automatically generated
  • Dans le portail MIM, allez dans les search request
A picture containing text, screenshot, software, font

Description automatically generated
A screenshot of a computer

Description automatically generated with medium confidence

Remarques

Les comptes à privilèges étant des comptes extrêmement sensibles et par conséquent appliquent des règles de sécurité relativement drastiques ( PSO, complexité des mots de passe, Authentication policy, etc…). L’une des mesure de sécurité phare est de rajouter les comptes dans le groupe protected users. Si le compte à privilèges est membre de ce groupe, l’élévation de privilèges via le portail PAM sample, ne sera pas possible. En effet, un des paramètres de sécurité du groupe protected users est d’interdire la délégation kerberos pour ses membres. Par conséquent, il faudra faire vos élévations de privilèges en powershell (Elévation de privilèges via PAM (Privileged Account Management) en PowerShell).

A ciao & have fun !!!

Leave a Reply

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