Microsoft LAPS : gestion des mots de passe des administrateurs locaux

Présentation du problème

Suite à une compromission d’une machine, les attaquants vont chercher à rebondir sur d’autres machines pour élever leurs privilèges ou atteindre les informations qu’ils souhaitent.

Dans le cadre des domaines Windows, une technique de rebond consiste à exploiter le compte administrateur local dont le mot de passe est bien souvent identique sur les machines. Ce mot de passe peut être obtenu facilement s’il est déployé par GPO (cf. CVE-2014-1812 / MS14-025 / KB2962486), sinon les attaquants peuvent en obtenir l’empreinte (hash) et l’utiliser directement pour s’authentifier sur d’autres machines (technique du Pass-The-Hash).

Notre retour d’expérience lors des tests d’intrusions réalisés par Intrinsec chez nos clients montre que cette technique de rebond est très souvent réalisable. Nous continuons d’ailleurs à découvrir des mots de passe dans les GPO : bien que cette fonctionnalité a été retirée par Microsoft, il faut nettoyer manuellement la politique pour bien retirer le mot de passe.

Afin de résoudre ce problème répandu, Microsoft a publié le 1er mai 2015 l’outil Local Administrator Password Solution (LAPS) dans le MSA3062591 / KB3062591.

Cette solution est gratuite, se base sur l’infrastructure existante (domaine Active Directory) et permet l’administration des postes (ex. : administrateurs ou support).

 

Conseils de déploiement

Pour les instructions générales de déploiement, nous vous recommandons de suivre le guide fourni par Microsoft dont le fichier s’appelle « LAPS_OperationsGuide.docx ».

Les machines sur lesquelles LAPS est déployé génèrent un mot de passe aléatoire et le stocke dans leur compte de machine dans la base Active Directory :
LAPS (2)Il est donc important que l’accès à l’attribut ms-Mcs-AdmPwd soit restreint par exemple aux administrateurs des postes de travail ou au support. Pour cela deux commandes PowerShell sont disponibles :

  • Set-AdmPwdReadPasswordPermission : accès en lecture au mot de passe
  • Set-AdmPwdResetPasswordPermission : accès en écriture pour le réinitialiser

 

Il est à noter que si l’autorisation « droits étendus » est activée sur l’OU pour certains groupes, ce qui n’est pas la valeur par défaut, ces groupes auront aussi accès aux mots de passe. Ce sujet est évoqué dans le guide d’installation « LAPS_OperationsGuide.docx » au chapitre 2.2.1.

La commande PowerShell Find-AdmPwdExtendedRights permet de voir les groupes concernés. En voici un exemple (volontairement vulnérable) :
LAPS (3)LAPS (4)

Du point de vue pentester

NetSPI a publié un article pour présenter LAPS et partager un script PowerShell de récupération des mots de passe mal protégés : Running LAPS Around Cleartext Passwords. Le script filtre automatiquement les comptes machines actifs et indique si LAPS est utilisé (présence de l’attribut d’expiration) et le mot de passe s’il est lisible.

Il est possible d’atteindre un résultat similaire avec un simple client LDAP (ici LDAP Browser) et une requête :
LAPS (5)La transmission des mots de passe des machines vers l’AD se fait par LDAP avec les options de chiffrement et de signature activées (source : https://code.msdn.microsoft.com/windowsdesktop/Solution-for-management-of-ae44e789/sourcecode?fileId=131854&pathId=606758226).

Connexion LDAP à l’AD :
LAPS (6)Envoi du mot de passe pour stockage :

LAPS (7)

Exemples

Début de configuration en PowerShell sur l’AD :
LAPS (8)

  1. Liste des commandes disponibles
  2. Mise à jour du schéma AD pour les nouveaux attributs
  3. Vérification de la restriction de l’autorisation « droits étendus »
  4. Autorisation des machines à enregistrer leur mot de passe

 

Attention à bien configurer la GPO en activant et configurant LAPS :
LAPS (9)

Obtention d’un mot de passe par un administrateur en PowerShell et en client lourd :
LAPS (10)LAPS (1)

Notes

  • Microsoft avait initialement publié un script PowerShell simple dans sa KB2962486 pour attribuer un mot de passe différent sur chaque machine. Cette solution a l’inconvénient de stocker les mots de passe dans un fichier texte ce qui n’est pas recommandé et ne permet pas le partage au sein d’une équipe d’administration.
  • LAPS existe depuis environ 2012 sous le nom AdmPwd. Il vient seulement d’être publié et supporté officiellement par Microsoft.

 

— Clément Notin