Abusing Active Directory ACLs/ACEs
Reading time: 5 minutes
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 github.
Overview
I Delegated Managed Service AccountsâŻ(dMSAs) sono un nuovo tipo di principale AD introdotto con Windows ServerâŻ2025. Sono progettati per sostituire gli account di servizio legacy consentendo una âmigrazioneâ con un clic che copia automaticamente i Service Principal Names (SPNs), le appartenenze ai gruppi, le impostazioni di delega e persino le chiavi crittografiche dell'account precedente nel nuovo dMSA, offrendo alle applicazioni un passaggio senza soluzione di continuitĂ ed eliminando il rischio di Kerberoasting.
I ricercatori di Akamai hanno scoperto che un singolo attributo â msDSâManagedAccountPrecededByLink
â indica al KDC quale account legacy un dMSA âsostituisceâ. Se un attaccante può scrivere quell'attributo (e attivare msDSâDelegatedMSAState
 ââŻ2), il KDC costruirĂ felicemente un PAC che eredita ogni SID della vittima scelta, consentendo effettivamente al dMSA di impersonare qualsiasi utente, inclusi gli Amministratori di Dominio.
What exactly is a dMSA?
- Basato sulla tecnologia gMSA ma memorizzato come la nuova classe AD
msDSâDelegatedManagedServiceAccount
. - Supporta una migrazione su richiesta: chiamando
StartâADServiceAccountMigration
si collega il dMSA all'account legacy, si concede all'account legacy l'accesso in scrittura amsDSâGroupMSAMembership
e si attivamsDSâDelegatedMSAState
âŻ=âŻ1. - Dopo
CompleteâADServiceAccountMigration
, l'account superato viene disabilitato e il dMSA diventa completamente funzionale; qualsiasi host che precedentemente utilizzava l'account legacy è automaticamente autorizzato a prelevare la password del dMSA. - Durante l'autenticazione, il KDC incorpora un suggerimento KERBâSUPERSEDEDâBYâUSER in modo che i client Windows 11/24H2 riprovino in modo trasparente con il dMSA.
##Â Requirements to attack
- Almeno un WindowsâŻServerâŻ2025 DC affinchĂŠ la classe LDAP del dMSA e la logica KDC esistano.
- Qualsiasi diritto di creazione di oggetti o scrittura di attributi su un OU (qualsiasi OU) â ad esempio,
Create msDSâDelegatedManagedServiceAccount
o semplicemente Create All Child Objects. Akamai ha scoperto che il 91âŻ% dei tenant nel mondo reale concede tali permessi âbenigniâ sugli OU a non amministratori. - CapacitĂ di eseguire strumenti (PowerShell/Rubeus) da qualsiasi host unito al dominio per richiedere ticket Kerberos. Non è richiesto alcun controllo sull'utente vittima; l'attacco non tocca mai direttamente l'account target.
Stepâbyâstep: BadSuccessor*privilege escalation
- Trova o crea un dMSA che controlli
NewâADServiceAccount Attacker_dMSA `
âDNSHostName ad.lab `
âPath "OU=temp,DC=lab,DC=local"
PoichĂŠ hai creato l'oggetto all'interno di un OU a cui puoi scrivere, possiedi automaticamente tutti i suoi attributi.
- Simula una âmigrazione completataâ in due scritture LDAP:
- Imposta
msDSâManagedAccountPrecededByLink = DN
di qualsiasi vittima (ad esempioCN=Administrator,CN=Users,DC=lab,DC=local
). - Imposta
msDSâDelegatedMSAState = 2
(migrazione completata).
Strumenti come SetâADComputer, ldapmodify, o anche ADSI Edit funzionano; non sono necessari diritti di amministratore di dominio.
- Richiedi un TGT per il dMSA â Rubeus supporta il flag
/dmsa
:
Rubeus.exe asktgs /targetuser:attacker_dmsa$ /service:krbtgt/aka.test /dmsa /opsec /nowrap /ptt /ticket:<Machine TGT>
Il PAC restituito ora contiene il SID 500 (Amministratore) piĂš i gruppi Amministratori di Dominio/Amministratori di Impresa.
Gather all the users passwords
Durante le migrazioni legittime, il KDC deve consentire al nuovo dMSA di decrittografare i ticket emessi all'account precedente prima del passaggio. Per evitare di interrompere le sessioni attive, inserisce sia le chiavi correnti che le chiavi precedenti all'interno di un nuovo blob ASN.1 chiamato KERBâDMSAâKEYâPACKAGE
.
PoichĂŠ la nostra falsa migrazione afferma che il dMSA sostituisce la vittima, il KDC copia diligentemente la chiave RC4âHMAC della vittima nella lista delle chiavi precedenti â anche se il dMSA non ha mai avuto una password âprecedenteâ. Quella chiave RC4 non è salata, quindi è effettivamente l'hash NT della vittima, dando all'attaccante la capacitĂ di cracking offline o âpassâtheâhashâ.
Pertanto, il collegamento di massa di migliaia di utenti consente a un attaccante di estrarre hash âsu larga scalaâ, trasformando BadSuccessor in un primitivo sia di escalation dei privilegi che di compromissione delle credenziali.
Tools
- https://github.com/akamai/BadSuccessor
- https://github.com/logangoins/SharpSuccessor
- https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1
References
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 github.