Az - Cloud Kerberos Trust
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Questo post è un riassunto di https://dirkjanm.io/obtaining-domain-admin-from-azure-ad-via-cloud-kerberos-trust/ che può essere consultato per ulteriori informazioni sullâattacco. Questa tecnica è anche commentata in https://www.youtube.com/watch?v=AFay_58QubY.
Panoramica della Relazione di Fiducia Kerberos
Cloud Kerberos Trust (Entra ID -> AD) â Questa funzionalitĂ (parte di Windows Hello for Business) stabilisce una fiducia unidirezionale in cui lâAD on-prem si fida di Entra ID per emettere ticket Kerberos per lâAD. Abilitandola si crea un oggetto computer AzureADKerberos$ in AD (che appare come un Domain Controller in sola lettura) e un account krbtgt_AzureAD collegato (un KRBTGT secondario). Entra ID detiene le chiavi per questi account e può emettere TGT Kerberos âparzialiâ per gli utenti AD. I domain controller AD onoreranno questi ticket, ma con restrizioni simili a quelle di un RODC: per impostazione predefinita, i gruppi ad alta privilegio (Domain Admins, Enterprise Admins, ecc.) sono negati e gli utenti ordinari sono autorizzati. Questo impedisce a Entra ID di autenticare gli amministratori di dominio tramite la fiducia in condizioni normali. Tuttavia, come vedremo, un attaccante con privilegi sufficienti in Entra ID può abusare di questo design di fiducia.
Pivoting da Entra ID a On-Prem AD
Scenario: Lâorganizzazione target ha Cloud Kerberos Trust abilitato per lâautenticazione senza password. Un attaccante ha ottenuto privilegi di Global Administrator in Entra ID (Azure AD) ma non controlla ancora lâAD on-prem. Lâattaccante ha anche un accesso alla rete a un Domain Controller (tramite VPN o una VM Azure in rete ibrida). Utilizzando la fiducia cloud, lâattaccante può sfruttare il controllo di Azure AD per ottenere un accesso a livello di Domain Admin in AD.
Prerequisiti:
-
Cloud Kerberos Trust è configurato nellâambiente ibrido (indicatore: esiste un account RODC
AzureADKerberos$in AD). -
Lâattaccante ha diritti di Global Admin (o Hybrid Identity Admin) nel tenant di Entra ID (questi ruoli possono utilizzare lâAPI di sincronizzazione AD Connect per modificare gli utenti di Azure AD).
-
Almeno un account utente ibrido (esiste sia in AD che in AAD) su cui lâattaccante può autenticarsi. Questo potrebbe essere ottenuto conoscendo o reimpostando le sue credenziali o assegnando un metodo senza password (ad es. un Temporary Access Pass) per generare un Primary Refresh Token (PRT) per esso.
-
Un account target AD on-prem con privilegi elevati che non è nella policy di ânegazioneâ predefinita del RODC. In pratica, un ottimo obiettivo è lâaccount di sincronizzazione AD Connect (spesso chiamato MSOL_*), che ha diritti DCSync (replicazione) in AD ma di solito non è membro dei gruppi di amministrazione integrati. Questo account di solito non è sincronizzato con Entra ID, rendendo il suo SID disponibile per impersonare senza conflitto.
Passi dellâAttacco:
- Ottenere Accesso allâAPI di Sincronizzazione Azure AD: Utilizzando lâaccount Global Admin, acquisire un token di accesso per lâAPI di Provisioning (sync) di Azure AD. Questo può essere fatto con strumenti come ROADtools o AADInternals. Ad esempio, con ROADtools (roadtx):
# Using roadtx to get an Azure AD Graph token (no MFA)
roadtx gettokens -u <GlobalAdminUPN> -p <Password> --resource aadgraph
(In alternativa, Connect-AADInt di AADInternals può essere utilizzato per autenticarsi come Global Admin.)
- Modifica gli attributi On-Prem di un utente ibrido: Sfrutta lâAPI di sincronizzazione di Azure AD per impostare lâIdentificatore di Sicurezza (SID) onPremises e il SAMAccountName onPremises di un utente ibrido scelto per corrispondere allâaccount AD di destinazione. Questo informa efficacemente Azure AD che lâutente cloud corrisponde allâaccount on-prem che vogliamo impersonare. Utilizzando il toolkit open-source ROADtools Hybrid:
# Example: modify a hybrid user to impersonate the MSOL account
python3 modifyuser.py -u <GlobalAdminUPN> -p <Password>\
--sourceanchor <ImmutableID_of_User>\
--sid <TargetAD_SID> --sam <TargetAD_SAMName>
Lâ
sourceAnchor(ID immutabile) dellâutente è necessario per identificare lâoggetto Azure AD da modificare. Lo strumento imposta il SID on-prem e il nome account SAM dellâutente ibrido ai valori del target (ad esempio, il SID e il SAM dellâaccount MSOL_xxxx). Azure AD normalmente non consente di modificare questi attributi tramite Graph (sono di sola lettura), ma lâAPI del servizio di sincronizzazione lo consente e gli Amministratori Globali possono invocare questa funzionalitĂ di sincronizzazione.
- Ottenere un TGT parziale da Azure AD: Dopo la modifica, autenticati come utente ibrido su Azure AD (ad esempio, ottenendo un PRT su un dispositivo o utilizzando le loro credenziali). Quando lâutente accede (soprattutto su un dispositivo Windows unito al dominio o a Entra), Azure AD emetterĂ un TGT Kerberos parziale (TGTAD) per quellâaccount perchĂŠ il Cloud Kerberos Trust è abilitato. Questo TGT parziale è crittografato con la chiave AzureADKerberos$ RODC e include il SID target che abbiamo impostato. Possiamo simulare questo richiedendo un PRT per lâutente tramite ROADtools:
roadtx getprt -u <HybridUserUPN> -p <Password> -d <DeviceID_or_Cert>
Questo genera un file .prt contenente il TGT parziale e la chiave di sessione. Se lâaccount era solo cloud password, Azure AD include comunque un TGT_AD nella risposta PRT.
- Scambiare il TGT parziale per un TGT completo (su AD): Il TGT parziale può ora essere presentato al Domain Controller on-prem per ottenere un TGT completo per lâaccount target. Facciamo questo eseguendo una richiesta TGS per il servizio
krbtgt(il servizio TGT principale del dominio) â essenzialmente aggiornando il biglietto a un TGT normale con un PAC completo. Sono disponibili strumenti per automatizzare questo scambio. Ad esempio, utilizzando lo script di ROADtools Hybrid:
# Use the partial TGT from the PRT file to get a full TGT and NTLM hash
python3 partialtofulltgt.py -p roadtx.prt -o full_tgt.ccache --extract-hash
Questo script (o equivalenti di Impacket) contatterĂ il Domain Controller e recupererĂ un TGT valido per lâaccount AD target, inclusa lâhash NTLM dellâaccount se viene utilizzata lâestensione Kerberos speciale. Lâestensione KERB-KEY-LIST-REQ è inclusa automaticamente per chiedere al DC di restituire lâhash NTLM dellâaccount target nella risposta crittografata. Il risultato è una cache di credenziali (full_tgt.ccache) per lâaccount target o lâhash della password NTLM recuperato.
- Impersonare il Target e Elevare a Domain Admin: Ora lâattaccante controlla effettivamente lâaccount AD target. Ad esempio, se il target era lâaccount AD Connect MSOL, ha diritti di replica sulla directory. Lâattaccante può eseguire un attacco DCSync utilizzando le credenziali di quellâaccount o il TGT Kerberos per estrarre gli hash delle password da AD (incluso lâaccount di dominio KRBTGT). Ad esempio:
# Using impacket's secretsdump to DCSync as the MSOL account (using NTLM hash)
secretsdump.py 'AD_DOMAIN/<TargetSAM>$@<DC_IP>' -hashes :<NTLM_hash> LOCAL
Questo estrae tutti gli hash delle password degli utenti AD, fornendo allâattaccante lâhash KRBTGT (permettendo loro di forgiare biglietti Kerberos di dominio a piacimento) e di fatto privilegi di Domain Admin su AD. Se lâaccount target fosse un altro utente privilegiato, lâattaccante potrebbe utilizzare il TGT completo per accedere a qualsiasi risorsa di dominio come quellâutente.
- Pulizia: Facoltativamente, lâattaccante può ripristinare il
onPremisesSAMAccountNamee il SID originali dellâutente Azure AD modificato tramite la stessa API o semplicemente eliminare qualsiasi utente temporaneo creato. In molti casi, il successivo ciclo di sincronizzazione di Azure AD Connect ripristinerĂ automaticamente le modifiche non autorizzate sugli attributi sincronizzati. (Tuttavia, a questo punto il danno è fatto â lâattaccante ha privilegi DA.)
Warning
Abusando del meccanismo di fiducia e sincronizzazione del cloud, un Global Admin di Azure AD può impersonare quasi qualsiasi account AD non esplicitamente protetto dalla politica RODC, anche se quellâaccount non è mai stato sincronizzato con il cloud. In una configurazione predefinita, questo colma una fiducia completa dalla compromissione di Azure AD alla compromissione di AD on-prem.
Riferimenti
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
HackTricks Cloud

