Sécurité : Protéger les comptes Administrateur local avec LAPS

I. Présentation de Local Administrator Password Solution

Attention : LAPS (Legacy) est désormais remplacé par Windows LAPS, qui fonctionne sur le même principe mais qui apporte des fonctionnalités supplémentaires (dont le chiffrement du mot de passe et le stockage du mot de passe dans Azure Active Directory). Pour en savoir plus sur la configuration de Windows LAPS pour l'Active Directory, suivez ce tutoriel Windows LAPS. Autrement dit, Windows LAPS doit être utilisé en priorité vis-à-vis de LAPS (Legacy).

La sécurité de vos postes de travail Windows doit être régulièrement au cœur de vos préoccupations, notamment le compte Administrateur local, qui représente une porte d’entrée importante sur votre machine. La portée d’un compte administrateur local est limitée puisqu’il a des autorisations uniquement sur la machine en elle-même.

logo-laps1Néanmoins, il peut s’avérer intéressant de sécuriser le compte Administrateur local de vos postes de travail, par exemple en renommant ce compte, ou encore avec un mot de passe complexe, qui sera bien souvent identique sur la majorité des machines (pour simplifier l'administration, et notamment si on déploie les machines via des images modèles).

Pour répondre à ce besoin de sécurité, Microsoft met à disposition un outil gratuit nommé « Local Administrator Password Solution » que l’on appellera « LAPS » qui permet de gérer automatiquement le mot de passe du compte « Administrateur » local de toutes les machines de votre domaine. Avec LAPS, le mot de passe est :

- Unique sur chaque poste de travail géré
- Généré aléatoirement
- Stocké de manière sécurisée dans l’annuaire Active Directory

L’intérêt est que cette solution s’intègre parfaitement dans un annuaire Active Directory déjà en place, et il n’est pas nécessaire d’installer et de gérer une solution tierce. Pour fonctionner, LAPS s’appuie sur les stratégies de groupe, deux attributs dans l’annuaire et quelques DLL.

Pour fonctionner l’application nécessite d’être installée les deux parties : les postes clients et sur au moins un contrôleur de domaine. Ce qui permettra de générer un nouveau mot de passe sur une machine lorsqu’il est expiré et le stocker dans l’annuaire Active Directory directement au niveau de l’objet ordinateur concerné, au sein d’un attribut spécifique.

Le contrôle de domaine doit être au minimum sous Windows Server 2003 SP1 et les postes clients au minimum sous Windows Vista. Pour les outils d'administration, PowerShell 2.0 au minimum et le .NET Framework 4.0.

Télécharger LAPS

II. LAPS - Installation sur le contrôleur de domaine

On commence par installer LAPS sur un contrôleur de domaine. Ce contrôleur de domaine doit être « Maître de Schéma » car il y a une mise à jour du schéma à faire à la suite de l’installation.
L’installation est très simple, suivez l’assistant jusqu’à l’étape de sélection des composants...

laps1

Étant donné que l’on se trouve sur le contrôleur de domaine, il est nécessaire d’installer les outils de gestion (Management Tools).

- Fat Client UI : Une interface qui permet de visualiser les mots de passe et options de façon graphique
- PowerShell module : Indispensable pour intégrer LAPS dans son infrastructure (AdmPwd.PS)
- GPO Editor Template : Intégration de paramètres GPO pour LAPS, via un fichier ADMX

Poursuivez la suite de l’installation, qui est classique et sans option particulière.

laps2

Avant de poursuivre la configuration du serveur, on va faire un saut sur la configuration des postes clients.

III. LAPS - Installation du client

« Local Administrator Password Solution » se présente sous la forme d’un package MSI, ce qui permet de le déployer facilement sur diverses machines via GPO, sinon on exécute l’installation en locale.

Pour procéder à une installation silencieuse (adaptez le chemin vers le fichier MSI) :

msiexec /i C:\LAPS.x64.msi /quiet

Si le fichier MSI se situe sur un partage, ça marche aussi bien entendu (intéressant pour scripter). Par exemple :

msiexec /i \\serveur\partage\LAPS.x64.msi /quiet

L’installation par défaut n’intègre pas les outils de gestion, ce qui permet de réaliser l’installation en mode silencieux. Dans la liste des programmes, LAPS apparaît bien suite à l’installation :

laps3

Pour le client, c’est tout il n’y a rien à faire d’autres. Enfin si, vous pouvez vérifier que le compte Administrateur local est bien actif sur la machine, au cas où.

IV. LAPS - Préparation du schéma Active Directory

Pour le bon fonctionnement de LAPS, le schéma de l’annuaire Active Directory doit être modifié afin d’ajouter deux nouveaux attributs :

- ms-MCS-AdmPwd : Stocke le mot de passe en clair
- ms-MCS-AdmPwdExpirationTime : Stocke la date d’expiration du mot de passe

Pour réaliser l’opération, il suffit d’exécuter deux commandes, la première pour charger le module PowerShell, la seconde pour déclencher la modification :

Import-Module AdmPwd.PS
Update-AdmPwdADSchema

Ce qui donnera le résultat suivant :

laps7

S’il y a un RODC dans votre infrastructure, prenez en considération cet article du TechNet pour intégrer les nouveaux attributs dessus : RODC LAPS

V. Les permissions – ACLs

Nous allons voir une série d’ajustement à effectuer au niveau des permissions pour que LAPS fonctionne et que ce soit sécurisé. Dans cet exemple, on appliquera les droits sur une OU nommée « Informatique » et qui contient un poste de travail nommé « WORK01 », faisant office de poste de travail de test pour ce tutoriel.

L’objectif sera de donner les droits au groupe « Admins du domaine » pour qu’il puisse avoir accès à la consultation des mots de passe, ainsi qu’à la modification notamment de la date d’expiration.

La procédure n’est pas généralisée pour tout l’annuaire, à chaque fois vous verrez que l’on cible une unité d’organisation en particulier. Ceci permet de gérer les autorisations finement, selon le niveau de l’OU dans l’arborescence.

A. Retirer les autorisations étendues

Certains groupes et utilisateurs sont en mesures de disposer d’autorisations étendues au sein de l’annuaire, ce qui permet de consulter la valeur de certains attributs, notamment ceux ajouté par LAPS.

Pour gérer ces droits, ouvrez la console ADSI avec le module « Contexte d’attribution de noms par défaut ». On effectue un clic droit sur l’OU « Informatique » et on accède aux propriétés.

laps8

Sélectionnez dans la liste l’utilisateur ou le groupe qui ne doit pas être capable de visualiser les mots de passe, et retirer l’autorisation « Tous les droits étendus » (si elle est active). Cette permission permet de lire la valeur de l’attribut ms-MCS-AdmPwd et les paramètres confidentiels.

A l’inverse donnez cette autorisation au groupe ou à l’utilisateur qui doit être capable de consulter cet attribut. Je précise que les « Admins du domaine » ont par défaut cette autorisation.

laps9

Après avoir effectué vos différents changements, validez et passez sur une console PowerShell.

Pour visualiser qui dispose des droits étendus sur une unité d’organisation, le module PowerShell de LAPS intègre une commande adaptée. Il suffit d’ajouter le nom de l’OU à la suite du paramètre « Identity ».

Find-AdmPwdExtendedRights -Identity informatique | ft ExtendedRightHolders

laps10

Cette première phase est terminée, passons à la seconde !

B. Donner les droits d’écriture aux machines

Les machines doivent être en mesure de mettre à jour les attributs ms-MCS-AdmPwdExpirationTime et ms-MCS-AdmPwd dans l’annuaire Active Directory, notamment pour indiquer la date d’expiration à venir et de mettre à jour les mots de passe.

Il y a un commandlet PowerShell tout simple pour cela, où il suffit d’indiquer le nom de l’OU cible :

Set-AdmPwdComputerSelfPermission -OrgUnit Informatique

laps11

Répétez cette opération pour chaque unité d’organisation concernée.

C. Autoriser la visualisation du mot de passe

Maintenant, on va donner l’autorisation à un groupe, en l’occurrence « Admins du domaine » de visualiser les mots de passe des ordinateurs administrés et situés dans l’OU « Informatique ».

Set-AdmPwdReadPasswordPermission -OrgUnit Informatique -AllowedPrincipals "Admins du domaine" | ft Name, DistinguishedName, Status

laps12

D. Réinitialisation du mot de passe

Les utilisateurs sont susceptibles de modifier la date d’expiration d’un mot de passe sur un objet ordinateur spécifique, notamment pour forcer la réinitialisation du mot de passe. De ce fait, une autorisation d’écriture doit être ajoutée sur l’attribut « ms-MCS-AdmPwdExpirationTime ».

Pour définir cette autorisation, on fait à nouveau appel au PowerShell et plus particulièrement au commandlet « Set-AdmPwdResetPasswordPermission ». Deux paramètres seront à définir :

- L’unité d’organisation cible (qui contient les ordinateurs administrés via LAPS)
- L’utilisateur ou le groupe auquel il faut donner l’autorisation

Set-AdmPwdResetPasswordPermission -OrgUnit Informatique -AllowedPrincipals "Admins du domaine"

Il est important de préciser que lorsque le mot de passe est transféré entre la machine cliente et le contrôleur de domaine, il est protégé grâce au chiffrement Kerberos. Au niveau de l’annuaire, l’accès à l’attribut qui contient les mots de passe et géré par ACL.

Passons maintenant à la mise en place d’une stratégie de groupe qui permet de configurer LAPS sur les postes clients.

VI. Configurer la GPO « LAPS »

Désormais on va s’intéresser à la création de la GPO, puisque je vous rappelle que LAPS ajoute un fichier ADMX sur le serveur, ce qui ajoutera forcément de nouveaux paramètres. Ouvrez la console d’édition des stratégies de groupe et créez ou modifiez une stratégie de groupe (GPO).

laps13

Grâce au template ADMX ajouté lors de l’installation de LAPS, une nouvelle catégorie est disponible dans les paramètres liés à l’ordinateur. Elle s’appelle tout simplement « LAPS ».

laps14

Au menu, rien de monstrueux mais tout de même 4 paramètres à notre disposition :

- Password Settings : Définir la complexité du mot de passe, sa longueur et sa durée de vie

- Name of administrator account to manage : Définir un compte administrateur à configurer autre que le compte Administrateur intégré à Windows. En effet, le compte Administrateur BUILT-IN est automatiquement détecté, grâce au SID (Identifiant de sécurité unique) même s’il est renommé.

- Do not allow password expiration longer than required by policy : Ne pas autoriser une expiration du mot de passe plus longue que le permet la stratégie

- Enable local admin password management : Activer ou désactiver la gestion du mot de passe administrateur avec LAPS.

laps15

On commence par définir une stratégie quant à la complexité des mots de passe. Il suffit d’éditer et de configurer le paramètre « Password Settings ».

Avec la stratégie indiquée sur la copie d’écran ci-dessous, on obtient des mots de passe très complexes, comme « 6F5g@FRlb)1KE. »

laps16

Il convient également d’activer le paramètre « Enable local admin password management » sinon LAPS ne sera pas actif et ne gérera pas les mots de passe.

laps17

Les deux autres paramètres sont optionnels. Il ne reste plus qu’à effectuer une mise à jour de la stratégie de groupe sur les postes clients ciblés (gpupdate).

VII. Visualiser un mot de passe

Un point crucial de l’utilisation de cet outil : la visualisation des mots de passe. Connecté en tant qu’administrateur du domaine sur mon contrôleur de domaine, j’accède aux propriétés de mon poste client « WORK01 » après avoir passé la console en mode avancé (ceci permet de visualiser des onglets supplémentaires).

Dans l’onglet « Editeur d’attributs », on obtient la liste de tous les attributs de cet objet ordinateur, et on trouvera nos deux attributs LAPS. Comme on peut le voir dans la copie d’écran ci-dessous, le mot de passe apparaît en clair, et la date d’expiration est indiquée en timestamp. D’ailleurs, pour convertir le timestamp en valeur compréhensible il existe des convertisseurs en ligne, comme : EpochConverter

laps18

Lors de l’installation sur le serveur, on a installé divers outils de gestion dont « LAPS UI ». Cet outil très intéressant est plus efficace que la lecture des données dans l’annuaire.

Après l’avoir démarré, il suffit d’indiquer un nom d’ordinateur dans le champ « ComputerName » de cliquer sur « Search », et le mot de passe apparaîtra en clair ainsi que la date d’expiration directement traduite !

Intéressant aussi, la possibilité de définir une nouvelle date d’expiration voir même une réinitialisation immédiate en laissant vide, et en cliquant sur « Set ».

laps19

Ce tutoriel sur l’outil « Local Administrator Password Solution » touche à sa fin. J’estime que cet outil apporte un vrai plus en matière de sécurité avec cette gestion intelligente des mots de passe. De plus, il est simple à mettre en œuvre et s’appuie sur des fonctions natives de l’Active Directory et supportées intégralement par les postes clients.

Que pensez-vous de Local Administrator Password Solution, cet outil gratuit proposé par Microsoft ?

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5471.Voir tous les posts

28 thoughts on “Sécurité : Protéger les comptes Administrateur local avec LAPS

  • Bonjour,

    J’ai voulu mettre en place cet utilitaire fort sympathique au sein de ma petite entreprise un peu etendue , une 50aine de postes assez éloigné , donc pas le temps de passer sur chaques postes mais j’ai rencontré un probleme dont je ne trouve pas la solution .

    une fois LAPS installé sur le DC , lorsque que je lance les commandes power shell suivantes

    Import-Module AdmPwd.PS
    pas de soucis mais lorsque je lance
    Update-AdmPwdADSchema
    j’ai une erreur PS C:\> Update-AdmPwdADSchema
    Update-AdmPwdADSchema : Une erreur de fonctionnement s’est produite.
    Au caractère Ligne:1 : 1
    + Update-AdmPwdADSchema
    + ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Update-AdmPwdADSchema], DirectoryOperationException
    + FullyQualifiedErrorId : System.DirectoryServices.Protocols.DirectoryOperationException,AdmPwd.PS.UpdateADSchema

    Je suis sous 2008R2 , avec PSV4 , Net Framework 4.5.2 , je suis l’administrateur du schema ainsi que celui du domaine , j’ai commencé par utiliser le compte nominatif que j’ai ajouté aux admins du schemas avant d’essayer le compte admin par defaut .

    Je lance bien le power shell en tant qu’admin .

    Je ne vois pas quoi dire d’autre .

    Des idées ?

    cordialement Mr Hell

    Répondre
    • Bonjour,

      Votre configuration semble répondre au prérequis de LAPS, l’erreur est surprenante. Le serveur depuis lequel vous exécutez la commande dispose bien du rôle FSMO de maître de schéma ? Sinon, est-ce qu’il s’agit d’un serveur sous architecture Itanium (incompatible) ?

      Enfin, sur la page de téléchargement de LAPS lorsque l’on clic sur le bouton pour télécharger il est possible d’obtenir des docs techniques à propos de LAPS notamment avec des détails sur les prérequis (LAPS_Datasheet.docx, LAPS_OperationsGuide.docx, APS_TechnicalSpecification.docx).

      Si besoin, n’hésitez pas à venir au sein de notre forum 🙂
      Bon courage !
      Florian

      Répondre
  • Avec IT-CONNECT on en apprend tous les jours.

    Encore un très bon article pour se coucher moins bête ce soir…

    Merci Florian!

    Répondre
  • bonjour
    est ce qu’il y a une solution pour unifier le mot de passe local des administrateurs pour les machines clientes
    et merci

    Répondre
    • +1 comment paramétrer un mot de passe identique sur tous les postes client?

      Répondre
      • Bonjour,

        Pour paramétrer un mot de passe identique sur tous les postes clients, il n’y a pas d’intérêt à utiliser cette solution. Ceci est déjà intégré à Windows Server dans les GPO d’origine 😉

        Bon courage !
        Florian

        Répondre
        • Bonjour,
          Quelle est cette gpo pour attribuer/changer le mot de passe d’un compte local sur tout un parc ?
          Il me semble que c’etait possible avant par GPP mais désactivé depuis suite à des vulnérabilités.

          Répondre
      • Bonjour,

        Ce n’est pas l’objectif de cet outil.
        Si vous voulez unifiez le mot de passe local des comptes administrateur, il faut rester sur une méthode classique : à savoir l’utilisation des GPOs.

        Répondre
  • Une fois que le mot de passe administrateur a été dévoilé/utilisé, est-il possible d’automatiser que celui-ci soit remplacé par un nouveau?

    Comment gérer les situations où un poste n’est plus dans le domaine et a besoin d’être sortie puis réinscrit dans le domaine?

    Répondre
  • Bonjour,

    est-ce que l’un de vous a testé LAPS avec des DC installés en Windows Server 2016 ?

    J’ai essayé dans différents environnements et j’ai toujours la même erreur lors de la mise à jour du schéma :

    Update-AdmPwdADSchema : The path is not of a legal form.
    At line:1 char:1
    + Update-AdmPwdADSchema
    + ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Update-AdmPwdADSchema], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException,AdmPwd.PS.UpdateADSchema

    La tentative est faite sur le FSMO SchemaMaster dans une console Powershell ouverte en administrateur.

    Je ne trouve pas d’infos sur le net à ce sujet.

    Merci de votre aide.

    Julien

    Répondre
  • Bonjour à tous,

    Tout d’abord, Merci pour ce cours sur LAPS et pour le site de manière générale 🙂

    J’ai été confronté à cette erreur :

    Update-AdmPwdADSchema : An operation error occurred.
    At line:1 char:1
    + Update-AdmPwdADSchema
    + ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Update-AdmPwdADSchema], DirectoryOperationException
    + FullyQualifiedErrorId : System.DirectoryServices.Protocols.DirectoryOperationException,AdmPwd.PS.UpdateADSchema

    Et j’ai trouvé la solution (non sans mal :))
    Lors de l’installation de LAPS sur mon SRV2016 j’avais installé le composant AdmPwd GPO Extension.
    Il m’était alors impossible d’étendre le schéma.

    J’ai modifié l’install de LAPSx64 en désélectionnant ce composant, et là pouf, schéma étendu !

    En espérant que cela va vous aider 🙂

    Cordialement,
    John

    Répondre
  • Bonjour,

    Avant tout je vous remercie pour ce beau travail,

    De mon coté j’ai mis en place cette solution, par contre j’ai eu problème le mot de passe administrateur du domaine a été changé.

    Est ce que cela est normale

    Cordialement,

    Répondre
  • Bonjour,

    Super tuto, merci.

    Par contre, une fois l’installation de LAPS sur le contrôleur, le dossier de stratégies LAPS est introuvable…

    Quelqu’un a une idée ?

    Merci par avance.

    Répondre
  • En retards dsl ton admx est présent sur le serveur, et ton dossier est présent dans sysvol policydefinition
    il suffit de recopier ton policydefinition présent dans c:\windows\ dans \\srvdc\sysvol\NOMDEDOMAINE\Policies

    Répondre
  • Bonjour,

    Excellent tuto! en ce qui me concerne dans attribute editor, je retrouve pas les 2 attributs lier a laps dans mon objet computer

    sinon coté install tout a été ok

    cdt,

    Répondre
  • Merci pour ce tuto complet et utile.
    Petite remarque, par défaut LAPS n’ajoute pas de nouveaux paramètres dans la console d’édition des GPO’s.
    Par défaut le fichier .admx de LAPS se trouve dans C:\Windows\PolicyDefinitions
    Il faut juste recopier sur le contrôleur de domaine
    AdmPwd.adms dans sysvol\{Votre Domaine}\Policies\PolicyDefinitions\
    et
    AdmPwd.adml dans sysvol\{Votre Domaine}\Policies\PolicyDefinitions\en-us

    En espérant que cela puisse servir à d’autres.

    Répondre
    • Super Tuto. Merci Christophe pour ton complément d’informartion.
      tout fonctionne Bien.

      Répondre
  • Bonjour et Merci pour ce tuto,

    Les GPO sont bien crées, le folder LAPS apparaît bien dans l’éditeur de GPO, Mais lorsque je vais dans l’éditeur d’attributs du PC Lcient, je ne vois aucune information au niveau de ms-mcs-AdmPwd et de ms-Mcs-AdmPwdExpirationTime.
    Pourtant tout s’est bien déroulé correctement au niveau de l’installation.
    J’ai effectué le Gpupdate /force.

    J’ai également une question, ne serait-il pas mieux de désactiver les comptes admin locaux avec une GPO ?

    Merci pour votre aide.

    Répondre
  • Bonjour ! Merci pour ce tuto. Ca fonctionne pour moi, mais juste un détail qui me manque. J’arrive bien a voir le mot de passe des PC clients via une commande powershell, mais dans le client UI. Il me renvoi uniquement la date d’expiration, mais pas le mot de passe. Si quelqu’un sait d’où ca pourrait venir…

    Merci !

    Répondre
    • Bonjour,
      Il faut exécuter le client UI « en tant qu’administrateur » pour voir le mot de passe.
      Cordialement.

      Répondre
  • Bonjour,
    Petites questions sur LAPS :
    Sur un poste utilisateur avec 2 comptes administrateurs du postes :
    – Un compte local qui n’est pas dans le domaine et qui est admin du pc
    – Un compte du domaine de l’utilisateur et qui est admin du pc
    Que va faire LAPS sur ces pcs, il va changer le mot de passe que du compte local ou des 2 ?

    Est ce que c’est risqué de te tester LAPS dans un environnement de pro, est ce qu’il y a des risques ?

    Et merci pour le tuto 😉
    Merci pour votre retour.

    Répondre
    • Bonjour,

      Seul le premier compte local qui n’est pas dans le domaine et qui est admin du PC (le compte « administrateur » local natif sur tous les windows) sera impacté par LAPS, les comptes de domaine ne rentrent pas dans le spectre de LAPS.

      Faaqzi

      Répondre
  • Madame Monsieur
    III. LAPS – Installation du client
    msiexec /i C :\LAPS.x64.msi /quiet => espace à enlever entre « C » et « : »
    Commande Corrigé :
    msiexec /i C:\LAPS.x64.msi /quiet

    Répondre
  • Bonjour,

    Est-il possible de renommer le compte admin local ?

    Si oui comment faire ?

    Par avance merci.

    Cordialement

    Répondre
  • Bonjour,
    Déjà merci pour le tutoriel qui est très bien fait.
    J’ai mis en place la solution, cependant aujourd’hui mon manager demande de mettre en place un portail web (IIS ou Apache) pour permettre au technicien de visualiser les mots de passe.
    Il ne souhaite pas utiliser le client fournit dans la solution Microsoft LAPS

    Merci de vos retours

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.