Windows LAPS
Windows LAPS, c’est le nom du nouveau produit de Microsoft qui prend la suite de LAPS (legacy) et qui apporte un certain nombre de nouveautés. À commencer par le fait que Windows LAPS est intégré à Windows, contrairement à LAPS qui est un agent à déployer.
Versions de Windows compatibles avec Windows LAPS
- Windows 11 21H2 et Windows 11 22H2 (Pro, Education, Enterprise)
- Windows 10 (Pro, Education, Enterprise)
- Windows Server 2022 (y compris en mode Core)
- Windows Server 2019
Configuration de Windows LAPS
Depuis le serveur en PowerShell en tant qu’administrateur on vérifie la présence de LAPS
Get-Command -Module LAPS
- Mise à jour le schéma Active Directory (faire une sauvegarde avant )
Import-Module LAPS Update-LapsADSchema -Verbose
A partir de la console “Utilisateurs et ordinateurs Active Directory“, vous devriez voir 6 nouveaux attributs dans l’onglet “Editeur d’attributs” de n’importe quel objet “ordinateur” de votre annuaire :
Avec Windows LAPS, il y a un nouvel onglet nommé “LAPS” qui a fait son apparition. Il permet obtenir des informations sur le compte administrateur géré d’un ordinateur (nom du compte, mot de passe, expiration, etc.).
Attribuer les droits d’écriture aux machines
Quand une machine va devoir effectuer une rotation du mot de passe du compte administrateur géré par Windows LAPS, elle devra sauvegarder ce mot de passe dans l’Active Directory. De ce fait, la machine doit pouvoir écrire/modifier son objet correspondant dans l’Active Directory.
La commande ci-dessous donne cette autorisation sur l’unité d’organisation “PC” (au sein de laquelle il y a mes postes de travail). Même si ce n’est pas obligatoire, je vous recommande de préciser le DistinguishedName de l’OU ciblée pour éviter les erreurs (notamment si vous avez plusieurs OUs avec le même nom).
Set-LapsADComputerSelfPermission -Identity "OU=PC,DC=it-connect,DC=local"
Cette commande retourne ce résultat :
Configurer la GPO Windows LAPS
La suite consiste à configurer Windows LAPS à partir d’une stratégie de groupe.
Importer les modèles d’administration (ADMX) de Windows LAPS (c’est nécessaire s’il y a déjà un magasin central sur votre domaine, car Windows n’ira pas lire le magasin local). Ce processus n’est pas automatique. Sur le contrôleur de domaine, vous devez récupérer deux fichiers :
- C:\Windows\PolicyDefinitions\LAPS.admx qui correspond aux modèles d’administration de Windows LAPS
- C:\Windows\PolicyDefinitions\fr-FR\LAPS.adml qui correspond au fichier de langue FR du fichier ADMX
Ces fichiers sont à déposer dans le magasin central de votre partage SYSVOL (“PolicyDefinitions“) : à la racine pour le fichier ADMX et dans le répertoire “fr-FR” pour le fichier de langue.
-Créer une GPO qui contient des paramètres de configuration ordinateur. elle est liée à l’unité d’organisation qui contient les ordinateurs “PC” :
Configuration ordinateur > Stratégies > Modèles d'administration > Système > LAPS
J’insiste sur le fait que les paramètres de Windows LAPS se situent bien à cet endroit (sous “Système”). L’autre conteneur “LAPS” situé au même niveau que “Système” dans l’arborescence correspond au LAPS Legacy.
- Configurer le répertoire de sauvegarde de mot de passe
Commencez par configurer le paramètre “Configurer le répertoire de sauvegarde de mot de passe” qui est indispensable pour activer Windows LAPS sur la machine. Vous devez passer ce paramètre sur l’état “Activé” et choisir “Active Directory“.
- Paramètres du mot de passe
Le second paramètre à configurer se nomme “Paramètres du mot de passe” et il permet de personnaliser la complexité du mot de passe pour le compte administrateur géré par Windows LAPS. Vous devez activer ce paramètre et définir la politique de mot de passe. Pour avoir un mot de passe fort, je vous recommande de choisir :
-
- Complexité du mot de passe : Lettres majuscules + lettres minuscules + chiffres + spéciaux
- Longueur du mot de passe : 16 caractères
- Âge du mot de passe (jours) : 30 (soit par défaut)
- Configurer la taille de l’historique des mots de passe chiffrés
Ce paramètre est facultatif, mais il me semble intéressant puisqu’il permet d’activer l’historique des mots de passe. En le passant sur l’état “Activé” et en mettant la taille de l’historique à “1“, on s’assure de pouvoir lire le mot de passe actuel et le mot de passe précédent. S’il y a un “bug” et que le mot de passe est mis à jour dans l’AD, mais pas sur le poste (sait-on jamais…), on ne perd pas l’accès, car on peut toujours lire le précédent mot de passe.
- Activer le chiffrement du mot de passe
Le quatrième paramètre à activer se nomme “Activer le chiffrement du mot de passe“, même si c’est le comportement par défaut, il vaut mieux le forcer. Comme son nom l’indique, il permet de dire si oui ou non, le mot de passe stocké dans l’Active Directory doit être chiffré.
- Nom du compte administrateur à gérer
Par défaut, Windows LAPS va gérer le compte “Administrateur” natif et intégré à Windows. Ce n’est pas nécessaire de lui préciser, il le fera de lui-même (il peut identifier ce compte grâce au SID qui est déjà connu). Si l’on souhaite gérer un autre compte avec un nom personnalisé, il est indispensable d’activer le paramètre “Nom du compte administrateur à gérer” et de préciser le nom du compte administrateur que vous souhaitez gérer avec LAPS.
Au final, notre stratégie de groupe est configurée de cette façon :
La stratégie de groupe est prête, il ne reste plus qu’à faire une actualisation des GPO sur un poste, ici “PC-01”, afin de tester.
gpupdate /force
Au redémarrage, la machine “PC-01” va appliquer la stratégie de groupe, changer le mot de passe du compte administrateur géré par Windows LAPS et le stocker dans l’annuaire. Dans le cas où vous avez besoin de forcer la machine à appliquer la politique LAPS, vous pouvez exécuter cette commande PowerShell (en local) :
Invoke-LapsPolicyProcessing
VI. Récupérer le mot de passe généré par Windows LAPS
L’affichage d’un mot de passe s’effectue avec PowerShell ou les consoles d’administration de l’Active Directory.
Avec PowerShell, la commande “Get-LapsADPassword” du module LAPS permet de récupérer les informations sur le mot de passe actuel du compte administrateur géré d’une machine Windows. Dans l’exemple ci-dessous, on récupère le mot de passe du compte de la machine “PC-01” :
Get-LapsADPassword "PC-01" -AsPlainText
Ces informations sont aussi visibles dans l’onglet “LAPS” de l’objet ordinateur en question à partir des consoles d’administration de l’Active Directory.
Maintenant que le mot de passe du compte est en notre possession, il ne reste plus qu’à tenter une connexion pour valider le bon fonctionnement. Que ce soit en local devant la machine, ou en Bureau à distance.
Du côté de ce poste client, il y a aussi des journaux Windows LAPS qui sont accessibles dans l’Observateur d’événements à cet emplacement :
Journaux des applications et des services > Microsoft > Windows > LAPS > Operational
Ces journaux sont assez complets puisque l’on a des informations sur la stratégie appliquée, à chaque fois que le mot de passe est mis à jour (ID 10020), le contrôleur de domaine sur lequel LAPS s’est connecté, etc…
VII. Forcer la réinitialisation du mot de passe Windows LAPS
Pour forcer la réinitialisation d’un mot de passe manuellement, on peut utiliser une console d’administration Active Directory afin de cliquer sur le bouton “Expirer maintenant” qui se situe dans l’onglet “LAPS” de l’ordinateur en question. Sinon, on peut aussi utiliser la commande PowerShell qu’il faut exécuter sur la machine cible, en local :
Reset-LapsPassword
Une fois la rotation effectuée, il est intéressant de constater que l’on peut encore consulter le précédent mot de passe. Ceci est possible grâce à la configuration du paramètre “Configurer la taille de l’historique des mots de passe chiffrés” dans la GPO, avec la valeur “1“. Ainsi, on a toujours accès au précédent mot de passe.
Avec PowerShell, on peut consulter l’historique des mots de passe de cette façon :
Get-LapsADPassword "PC-01" -AsPlainText -IncludeHistory
Pour jouer sur la rotation automatique du mot de passe, il y a aussi le paramètre “Actions de post-authentification” qui peut être configuré dans la GPO.
VIII. Windows LAPS : qui peut lire et déchiffrer les mots de passe ?
Avec Windows LAPS, il y a deux niveaux d’autorisations sur la nouvelle fonction de chiffrement des mots de passe. Pour qu’un administrateur des postes de travail puisse lire et déchiffrer les mots de passe stockés dans l’annuaire Active Directory, il doit :
- Avoir les droits de lire les attributs de l’ordinateur dans l’annuaire AD, ce qui est accordé avec la commande Set-AdmPwdReadPasswordPermission
- Avoir les droits de déchiffrer le mot de passe en faisant partie de la liste des “AuthorizedDecryptor“, à savoir par défaut uniquement les membres du groupe “Admins du domaine“
Si l’on part du principe que les membres d’un groupe de sécurité spécifique (pour le T2, par exemple) doivent pouvoir accéder aux mots de passe, comment faire ?
Dans cet exemple, l’objectif sera de donner cette permission au groupe “IT-CONNECT\GDL-LAPS-Pwd-Read” de mon annuaire AD.
Set-LapsADReadPasswordPermission -Identity "OU=PC,DC=it-connect,DC=local" -AllowedPrincipals "IT-Connect\GDL-LAPS-Pwd-Read"
Attention : veillez à bien utiliser la nouvelle commande, et non “Set-AdmPwdReadPasswordPermission” qui sert à gérer les permissions du LAPS Legacy. Ne faites pas comme moi qui ait perdu du temps sur cette bêtise ! 😉
Après avoir accordé cette autorisation, on espère pouvoir accéder aux mots de passe, mais non ! Si l’on clique sur l’onglet “LAPS” d’un objet ordinateur avec un compte membre du groupe “GDL-LAPS-Pwd-Read“, on obtient le message suivant : “Le mot de passe du compte est chiffré, mais vous n’êtes pas autorisé à le déchiffrer“.
En PowerShell, le résultat serait le même. D’ailleurs, si l’on regarde le résultat de Get-LapsADPassword, on voit une information intéressante : “AuthorizedDecryptor : IT-Connect\Admins du domaine“. Par défaut, seuls les administrateurs du domaine ont le droit de lire et déchiffrer les mots de passe !
Pour ajuster cette permission, il est nécessaire de modifier la GPO une nouvelle fois. Toujours au même endroit, c’est le paramètre “Configurer les déchiffreurs de mot de passe autorisés” qui doit être activé et configuré. Pour la configuration, indiquez le nom du groupe à autoriser en précisant son SID ou son nom avec le domaine en préfixe. Dans mon cas, ce sera “IT-CONNECT\GDL-LAPS-Pwd-Read“.
Remarque : pour le moment, il ne semble pas possible d’ajouter plusieurs groupes dans ce paramètre, donc si besoin, créez un groupe de sécurité et dans ce groupe ajoutez d’autres groupes.
Validez… Actualisez la GPO sur le poste client. Si on essaie de lire le mot de passe avec un compte qui n’est pas membre du groupe “IT-CONNECT\GDL-LAPS-Pwd-Read“, il y a le statut “Unauthorized“, mais la valeur AuthorizedDecryptor a bien évoluée !
Une fois que le compte est ajouté à ce groupe, il peut lire le mot de passe :
En plus de l’autorisation de lecture du mot de passe, si vous souhaitez permettre à ce groupe ou un autre groupe de forcer la réinitialisation d’un mot de passe, vous devez utiliser la commande “Set-LapsADResetPasswordPermission” sur le même principe. Car, actuellement, le groupe “IT-CONNECT\GDL-LAPS-Pwd-Read” peut lire les mots de passe mais pas forcer la réinitialisation, ce qui en soit n’est pas plus mal.
IX. Suivre le déploiement de Windows LAPS
Comment suivre le déploiement de Windows LAPS ? Pour répondre à cette question, je vous propose d’utiliser un script PowerShell ! Ce script est proposé par l’excellent Loïc Veirman (MSSEC) et il est accessible sur son GitHub :
Suite à l’exécution de ce script, vous obtenez un rapport HTML (et un fichier CSV) qui vous donne un état des lieux. Ces fichiers seront générés au même endroit que le script. Voici un exemple :
Ainsi, vous pouvez savoir quelles sont les machines avec Windows LAPS, LAPS legacy, ou les deux, ou aucun des deux. Vous pouvez tout à fait exécuter ce script dans une tâche planifiée qui s’exécutera tous les jours pour avoir un suivi dans le temps.
Post Comment