Passer au contenu
Français
  • Il n'y a aucune suggestion car le champ de recherche est vide.

Comment traiter la mauvaise configuration P-ProtectedUsers

1. Qu'est-ce qu'est le groupe Protected Users? 

Le groupe “Protected Users” (introduit avec Windows Server 2012 R2) est un groupe spécifique conçu pour renforcer la sécurité des comptes à privilèges, notamment :

  • les administrateurs de domaine

  • les comptes de service sensibles

  • les comptes à haut niveau d’accès

Quand un utilisateur appartient à ce groupe, certaines protections sont automatiquement activées :

  •  Aucun mot de passe NTLM n’est mis en cache localement

  • Aucune délégation Kerberos (même "constrained") n’est autorisée

  • Les tickets Kerberos expirent après 4 heures maximum

  • Aucun mot de passe ou jeton n’est stocké dans la mémoire LSASS

  • Protection contre le “pass-the-hash” et “pass-the-ticket”

Le scan d'Active Directory vérifie si tous les utilisateurs privilégiés sont présents au sein de ce groupe. 

2. Comment corriger cette mauvaise configuration ? 

Pour corriger cette mauvaise configuration, il est nécessaire de mettre l'ensemble des comptes utilisateurs et les comptes de service privilégiés dans ce groupe. Il n'est pas nécessaire d'y inclure les comptes de service de type GMSA. 

Le groupe Protected Users est accessible via le chemin suivant : CN=Protected Users,CN=Users,DC=yourdomain,DC=com

Les quatre groupes vérifiés par Pingcastle sont :
 

  • Administrateurs du domaine
  • Administrateurs de l'entreprise
  • Administrateurs du schéma
  • Administrateurs

3. Vérifier l'existence de cette configuration 

Afin de vérifier la bonne application du groupe, veuillez exécuter le script sur l'ensemble des groupes privilégiés : 

# 1. Define the privileged group and the Protected Users group

$PrivilegedGroup = "Domain Admins"

$ProtectedGroup = "Protected Users"

# 2. Get members of the privileged group

$PrivilegedMembers = Get-ADGroupMember -Identity $PrivilegedGroup | Select-Object Name

# 3. Filter members who are NOT in the Protected Users group

Write-Host "Checking members of '$PrivilegedGroup' who are NOT in '$ProtectedGroup':"

foreach ($Member in $PrivilegedMembers) {

    # Check if the member is a member of Protected Users

    $isProtected = Get-ADUser -Identity $Member.Name -Properties MemberOf |

                   Select-Object -ExpandProperty MemberOf |

                   Where-Object { $_ -like "*$ProtectedGroup*" }

    if (-not $isProtected) {

        Write-Warning "$($Member.Name) is in '$PrivilegedGroup' but NOT in '$ProtectedGroup'."

    }

}