Photo by Sam Pak / Unsplash
Effacer un mot de passe mis en cache sur un RODC

Effacer un mot de passe mis en cache sur un RODC

Published on 04 Jan 2020

Bastien Perez
Bastien Perez

Clap

Mise en cache du mot de passe sur RODC

La FAQ sur le Technet indique :

There is no mechanism to erase passwords after they are cached on an RODC. If you want to clear a password that is stored on an RODC, an administrator should reset the password in the hub site[…]
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc754956(v=ws.10)

Si vous souhaitez effacer un mot de passe stocké sur un contrôleur de domaine en lecture seule (ROD – Read Only Domain Controller – RODC), la méthode est donc de réinitialiser le mot de passe du compte utilisateur souhaité. Cette opération doit être effectuée sur un contrôleur de domaine non RODC. Ainsi, le mot de passe mis en cache sur le RODC ne sera plus valide pour accéder aux ressources. Mais continuez la lecture de cet article si vous souhaitez le supprimer manuellement…

Le mot de passe reste valide pour l’authentification jusqu’au prochain cycle de réplication, date à laquelle la valeur stockée pour ce mot de passe sur le RODC devient NULL. Suite à cette suppression, deux cas :

  • la stratégie de mot de passe (PRP – Password Replication Policy) n’a pas été modifiée – l’utilisateur est toujours présent dans la msDS-RevealedList. Le nouveau mot de passe sera mis en cache uniquement après authentification par l’utilisateur (ou si le nouveau mot de passe est prérempli par un administrateur)
  • la stratégie de mot de passe a été modifiée pour exclure l’utilisateur de la msDS-RevealedList – le mot de passe reste vide sur le RODC

Forcer la suppression du mot de passe en cache via LDAP

Cependant, si vous êtes sur cet article, c’est pour forcer cette suppression. En effet, Il peut arriver des cas où on ne peut/ne veut pas réinitialiser le mot de passe, par exemple pour le compte d’un VIP (PDG, etc.).

L’opération de modification LDAP RODCPurgeAccount positionnera la valeur NULL sur les mots de passe des Security Principle (utilisateur ou ordinateur) stockés sur le RODC.

Pour réaliser ce RODCPurgeAccount sans devoir modifier le mot de passe, voici la méthode :

  1. Ouvrir ldp.exe sur un DC en écriture et se connecter sur le RODC en port 636 (LDAPS). Si le LDAPS n’est pas activé, utiliser le port 389 mais garedez en tête que la communication sera en clair sur le réseau, ce qui peut mener à un vol d’identifiants de votre utilisateur en cas de Man In the Middle. La bonne pratique est donc toujours d’utilises le LDAPS
  2. Réaliser un bind sur le serveur avec un compte Admin du domain. Sélectionner Modify (operation) :
DN: [vide]
Edit Entry Attribute: RODCPurgeAccount
Values: [DistinguishedName]

Cliquer sur Replace > Enter > Run.

Il est aussi possible de le faire en PowerShell :

$NTDSPDCEmulator = ([ADSI]'').fsmoroleowner[0]
$PDCEmulator = ([ADSI]"LDAP://$NTDSPDCEmulator").Parent
$PDC = ([ADSI]$PDCEmulator).DnsHostName

# Distinguished Name of the user
$userDN = "CN=xxxx,DC=yyy,DC=zzz"

Invoke-Command -ScriptBlock {
	$temp = [io.path]::GetTempFileName()
	
    Set-Content -Path $temp -Value @"
dn: $userDN
changetype: modify
replace: RODCPurgeAccount
RODCPurgeAccount: Null
"@

    ldifde -i -f $temp
    
	Remove-Item -Force $temp
} -ComputerName $PDC

Comments

banner-Bastien Perez
Bastien Perez

Freelance Microsoft 365 - Active Directory - Modern Workplace

France