{"id":6685,"date":"2025-05-27T16:47:40","date_gmt":"2025-05-27T21:47:40","guid":{"rendered":"https:\/\/cyberassurancenow.com\/?p=6685"},"modified":"2025-06-25T12:17:50","modified_gmt":"2025-06-25T17:17:50","slug":"badsuccessor-the-default-privilege-escalation-in-windows-server-2025-you-should-be-scared-of","status":"publish","type":"post","link":"https:\/\/cyberassurancenow.com\/index.php\/2025\/05\/27\/badsuccessor-the-default-privilege-escalation-in-windows-server-2025-you-should-be-scared-of\/","title":{"rendered":"BadSuccessor: Default Privilege Risk in Server 2025"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text css=&#8221;&#8221;]<\/p>\n<h3>The Default Privilege Escalation in Windows Server 2025 You Should Be Scared Of<\/h3>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]Imagine giving someone the keys to your house just because they said they were the new owner. That\u2019s essentially what Windows Server 2025 is doing \u2014 and it\u2019s called BadSuccessor.[\/vc_column_text][vc_empty_space height=&#8221;40px&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<h4>Summary<\/h4>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]BadSuccessor is a newly discovered privilege escalation vulnerability in Windows Server 2025 that allows attackers to fully impersonate any Active Directory user \u2014 including Domain Admins \u2014 without modifying the original account. It exploits a misdesign in the dMSA (delegated Managed Service Account) feature and works in default configurations.[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]<strong>Impact:<\/strong> Total domain compromise<br \/>\n<strong>Complexity:<\/strong> Low<br \/>\n<strong>Affected:<\/strong> Likely most orgs (91% in tested environments)<br \/>\n<strong>Patch:<\/strong> Not yet available[\/vc_column_text][vc_empty_space height=&#8221;40px&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<h4>Where It All Began: dMSA and the Idea of Migration<\/h4>\n<p>[\/vc_column_text][vc_column_text css=&#8221;&#8221;]Windows Server 2025 introduced delegated Managed Service Accounts to ease migration pains. When a dMSA replaces a legacy service account, it should inherit everything \u2014 permissions, SPNs, delegations, group memberships \u2014 to act like a seamless successor.[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]This inheritance relies on one key attribute:<br \/>\nmsDS-ManagedAccountPrecededByLink[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]When this attribute is set, the KDC (Key Distribution Center) blindly assumes the dMSA is the rightful successor and issues Privilege Attribute Certificates (PACs) containing all the original account\u2019s rights \u2014 no verification needed.[\/vc_column_text][vc_empty_space height=&#8221;40px&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<h4>Where It All Began: dMSA and the Idea of Migration<\/h4>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]Attackers don\u2019t need to perform a real migration. They can simulate one by setting two attributes:[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]1. msDS-ManagedAccountPrecededByLink \u2192 DN of target user (e.g. Administrator)<br \/>\n2. msDS-DelegatedMSAState \u2192 2 (signals migration is complete)[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]From that point forward, when the dMSA authenticates, it receives a PAC with the target\u2019s SID and group memberships, effectively impersonating them on the network.[\/vc_column_text][vc_empty_space height=&#8221;40px&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<h4>Real-World Abuse: From Unprivileged to Domain Admin<\/h4>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]There are two main paths an attacker might take:[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]1. Hijack an existing dMSA<br \/>\n&#8211; Modify msDS-ManagedAccountPrecededByLink to point to a privileged user<br \/>\n&#8211; Set msDS-DelegatedMSAState to 2<br \/>\n&#8211; Authenticate as the dMSA and assume all target privileges[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]2. Create a new dMSA<br \/>\n&#8211; If a user has create permissions on any OU, they can:<br \/>\n\u2022 Use PowerShell to create a dMSA in that OU<br \/>\n\u2022 Gain full control over it<br \/>\n\u2022 Configure the two attributes<br \/>\n\u2022 Request a TGT for the dMSA using tools like Rubeus[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]Boom: The attacker becomes a Domain Admin, with no touch to the original account.[\/vc_column_text][vc_empty_space height=&#8221;40px&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<h4>What Makes BadSuccessor So Dangerous?<\/h4>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<ul>\n<li>No access required to the target user account<\/li>\n<li>No LDAP writes to the target user<\/li>\n<li>No group membership changes<\/li>\n<li>No logs indicating a privilege escalation<\/li>\n<\/ul>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]The exploit lives entirely in the dMSA object. As long as the KDC sees the msDS-ManagedAccountPrecededByLink, it delivers a PAC with all inherited rights.[\/vc_column_text][vc_empty_space height=&#8221;40px&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<h4>Bonus: Credential Leakage<\/h4>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]There\u2019s more.[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]When a TGT is issued to a dMSA, it contains a structure called KERB-DMSA-KEY-PACKAGE, which includes:<br \/>\n&#8211; current-keys<br \/>\n&#8211; previous-keys[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]Surprisingly, the previous-keys can sometimes contain the RC4 key of the impersonated account \u2014 which means that the attacker might also recover the NTLM hash of the target account.[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]They get your permissions AND your password hash.[\/vc_column_text][vc_empty_space height=&#8221;40px&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<h4>What You Can Do<\/h4>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]Until Microsoft ships a patch, you are responsible for mitigating this risk. Here are immediate steps you should take:[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]<strong>Audit:<\/strong><br \/>\n&#8211; Search your domain for any dMSAs (objectClass=msDS-GroupManagedServiceAccount)<br \/>\n&#8211; Check which users\/groups have write access to dMSAs<br \/>\n&#8211; Monitor changes to msDS-ManagedAccountPrecededByLink and msDS-DelegatedMSAState[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]<strong>Restrict:<\/strong><br \/>\n&#8211; Limit creation of dMSAs to trusted admin OUs only<br \/>\n&#8211; Avoid delegating Create all child objects or Create msDS-DelegatedManagedServiceAccount to untrusted users<br \/>\n&#8211; Deny WriteProperty on msDS-ManagedAccountPrecededByLink where possible[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]<strong>Detect:<\/strong><br \/>\n&#8211; Look for anomalous PACs with mismatched SIDs during logon<br \/>\n&#8211; Monitor TGT requests for dMSAs and unexpected group memberships<br \/>\n&#8211; Use tools like Wireshark or Rubeus to inspect PACs when necessary[\/vc_column_text][vc_empty_space height=&#8221;40px&#8221;][vc_column_text css=&#8221;&#8221;]<\/p>\n<h4>What You Can Do<\/h4>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]BadSuccessor is a perfect example of how convenience can backfire when security isn\u2019t baked into the design. The assumption that a migration must be legitimate \u2014 without validation \u2014 opened the door for one of the most stealthy and devastating privilege escalation attacks in recent memory.[\/vc_column_text][vc_empty_space height=&#8221;10px&#8221;][vc_column_text css=&#8221;&#8221;]If you manage an AD environment \u2014 especially one testing or planning for Windows Server 2025 \u2014 this should be at the top of your priority list.[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Imagine giving someone the keys to your house just because they said they were the new owner. That\u2019s essentially what Windows Server 2025 is doing \u2014 and it\u2019s called BadSuccessor.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[],"class_list":["post-6685","post","type-post","status-publish","format-standard","hentry","category-cybersecurity"],"_links":{"self":[{"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/posts\/6685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/comments?post=6685"}],"version-history":[{"count":11,"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/posts\/6685\/revisions"}],"predecessor-version":[{"id":6696,"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/posts\/6685\/revisions\/6696"}],"wp:attachment":[{"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/media?parent=6685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/categories?post=6685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyberassurancenow.com\/index.php\/wp-json\/wp\/v2\/tags?post=6685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}