AD no almacena solo un tipo de hash. Cuando cambia su contraseña, el DC recibe la versión en texto plano de la contraseña, verifica su complejidad y luego genera y almacena MD4, MD5, PBKDF2 (4096 * SHA1) y varios otros tipos de hash. Es porque cada mecanismo de autenticación (NTLM, Kerberos, Digest, ...) usa una función hash diferente y AD necesita admitirlos a todos.
Los valores hash de la contraseña se almacenan en estos atributos AD: unicodePwd, dBCSPwd, lmPwdHistory, ntPwdHistory y supplementalCredentials. Por razones de seguridad, no puede leerlos a través de LDAP o ADSI. Pero he encontrado recientemente una forma de recuperarlos y ha creado una PowerShell cmdlet que puede hacer eso:
Get-ADReplAccount -SamAccountName John -Domain Contoso -Server LON-DC1
También hay una manera poco documentada para empujar hash MD4 (También conocido como NT hashes) a la estación de trabajo o AD a través del legado SAMR protocol . Como no hay comandos incorporados que expongan esta funcionalidad, he creado PowerShell cmdlets para hacer eso también.
Para generar un hash NT, puede utilizar este comando PowerShell:
$hash = ConvertTo-NTHash (Read-Host -AsSecureString)
Y, por último, este comando empuja el hash NT para AD:
Set-SamAccountPasswordHash -SamAccountName john -Domain ADATUM -NTHash $hash -Server dc1.adatum.com
Estos comandos se pueden utilizar para migrar contraseñas entre cuentas locales y de dominio o entre AD y Samba. Pero tenga cuidado, la autenticación Kerberos-AES y WDigest no funcionará con esta cuenta, solo NTLM y Kerberos-RC4.