Az - PHS - Password Hash Sync
Informazioni di base
Dalla documentazione: La sincronizzazione dell'hash della password è uno dei metodi di accesso utilizzati per realizzare l'identità ibrida. Azure AD Connect sincronizza un hash, dell'hash, della password di un utente da un'istanza di Active Directory locale a un'istanza di Azure AD basata su cloud.
È il metodo più comune utilizzato dalle aziende per sincronizzare un AD locale con Azure AD.
Tutti gli utenti e un hash degli hash delle password vengono sincronizzati dall'AD locale ad Azure AD. Tuttavia, le password in chiaro o gli hash originali non vengono inviati ad Azure AD. Inoltre, i gruppi di sicurezza integrati (come gli amministratori di dominio...) non vengono sincronizzati in Azure AD.
La sincronizzazione degli hash avviene ogni 2 minuti. Tuttavia, per impostazione predefinita, la scadenza della password e la scadenza dell'account non vengono sincronizzate in Azure AD. Quindi, un utente il cui password dell'AD locale è scaduto (non cambiato) può continuare ad accedere alle risorse di Azure utilizzando la vecchia password.
Quando un utente dell'AD locale vuole accedere a una risorsa di Azure, l'autenticazione avviene su Azure AD.
PHS è richiesto per funzionalità come Protezione dell'identità e Servizi del Dominio AAD.
Pivoting
Quando PHS è configurato alcuni account privilegiati vengono automaticamente creati:
L'account
MSOL_<installationID>
viene automaticamente creato nell'AD locale. A questo account viene assegnato un ruolo Directory Synchronization Accounts (vedi documentazione) il che significa che ha permessi di replica (DCSync) nell'AD locale.Viene creato un account
Sync_<nome del server ADConnect locale>_installationID
in Azure AD. Questo account può reimpostare la password di QUALSIASI utente (sincronizzato o solo cloud) in Azure AD.
Le password dei due account privilegiati precedenti sono memorizzate in un server SQL sul server dove è installato Azure AD Connect. Gli amministratori possono estrarre le password di quegli utenti privilegiati in chiaro.
Il database si trova in C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf
.
È possibile estrarre la configurazione da una delle tabelle, essendo una criptata:
SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;
La configurazione criptata è crittografata con DPAPI e contiene le password dell'utente MSOL_*
nell'AD locale e la password di Sync_* in AzureAD. Pertanto, compromettendo queste è possibile ottenere privilegi nell'AD e in AzureAD.
È possibile trovare una panoramica completa su come queste credenziali sono memorizzate e decifrate in questa presentazione.
Trovare il server Azure AD Connect
Se il server su cui è installato Azure AD Connect è connesso al dominio (raccomandato nella documentazione), è possibile trovarlo con:
Abuso di MSOL_*
Puoi anche utilizzare adconnectdump per ottenere queste credenziali.
Abusing Sync_*
Compromettere l'account Sync_*
è possibile reimpostare la password di qualsiasi utente (compresi gli Amministratori Globali)
È anche possibile modificare le password solo degli utenti del cloud (anche se ciò è inaspettato)
È anche possibile estrarre la password di questo utente.
Un'altra opzione sarebbe quella di assegnare permessi privilegiati a un service principal, a cui l'utente Sync ha permessi per fare, e poi accedere a quel service principal come metodo di privesc.
SSO senza soluzione di continuità
È possibile utilizzare SSO senza soluzione di continuità con PHS, che è vulnerabile ad altri abusi. Controllalo in:
pageAz - Seamless SSORiferimenti
Last updated