Az - PHS - Password Hash Sync
Información Básica
Desde la documentación: La sincronización de hash de contraseña es uno de los métodos de inicio de sesión utilizados para lograr la identidad híbrida. Azure AD Connect sincroniza un hash, del hash, de la contraseña de un usuario desde una instancia de Active Directory local a una instancia de Azure AD basada en la nube.
Es el método más común utilizado por las empresas para sincronizar un AD local con Azure AD.
Todos los usuarios y un hash de los hashes de las contraseñas se sincronizan desde el local a Azure AD. Sin embargo, las contraseñas en texto claro o los hashes originales no se envían a Azure AD. Además, los grupos de seguridad integrados (como administradores de dominio...) no se sincronizan con Azure AD.
La sincronización de hashes ocurre cada 2 minutos. Sin embargo, de forma predeterminada, la caducidad de la contraseña y la caducidad de la cuenta no se sincronizan en Azure AD. Por lo tanto, un usuario cuya contraseña local haya caducado (no cambiada) puede seguir accediendo a los recursos de Azure utilizando la contraseña antigua.
Cuando un usuario local desea acceder a un recurso de Azure, la autenticación se realiza en Azure AD.
PHS es necesario para funciones como Protección de Identidad y Servicios de Dominio de AAD.
Pivotaje
Cuando se configura PHS, algunas cuentas privilegiadas se crean automáticamente:
La cuenta
MSOL_<installationID>
se crea automáticamente en el AD local. A esta cuenta se le asigna un rol de Cuentas de Sincronización de Directorio (ver documentación) lo que significa que tiene permisos de replicación (DCSync) en el AD local.Se crea una cuenta
Sync_<nombre del servidor ADConnect local>_installationID
en Azure AD. Esta cuenta puede restablecer la contraseña de CUALQUIER usuario (sincronizado o solo en la nube) en Azure AD.
Las contraseñas de las dos cuentas privilegiadas anteriores se almacenan en un servidor SQL en el servidor donde está instalado Azure AD Connect. Los administradores pueden extraer las contraseñas de esos usuarios privilegiados en texto claro.
La base de datos se encuentra en C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf
.
Es posible extraer la configuración de una de las tablas, siendo una de ellas encriptada:
SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;
La configuración encriptada está cifrada con DPAPI y contiene las contraseñas del usuario MSOL_*
en el AD local y la contraseña de Sync_* en AzureAD. Por lo tanto, comprometiendo estas es posible escalar privilegios al AD y a AzureAD.
Puedes encontrar una visión general completa de cómo se almacenan y descifran estas credenciales en esta charla.
Encontrar el servidor de Azure AD Connect
Si el servidor donde está instalado Azure AD Connect está unido al dominio (recomendado en la documentación), es posible encontrarlo con:
Abusando de MSOL_*
También puedes usar adconnectdump para obtener estas credenciales.
Abusando de Sync_*
Al comprometer la cuenta Sync_*
es posible restablecer la contraseña de cualquier usuario (incluidos los Administradores Globales)
También es posible modificar las contraseñas de solo los usuarios de la nube (aunque sea inesperado)
También es posible extraer la contraseña de este usuario.
Otra opción sería asignar permisos privilegiados a un principal de servicio, lo cual el usuario de Sync tiene permisos para hacer, y luego acceder a ese principal de servicio como una forma de escalada de privilegios.
Inicio de sesión único sin interrupciones
Es posible utilizar el inicio de sesión único sin interrupciones con PHS, lo cual es vulnerable a otros abusos. Verifique en:
pageAz - Seamless SSOReferencias
Última actualización