performing-active-directory-vulnerability-assessment

使用 PingCastle、BloodHound 和 Purple Knight 评估 Active Directory 安全态势,识别错误配置、权限提升路径和攻击向量。

9 stars

Best use case

performing-active-directory-vulnerability-assessment is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

使用 PingCastle、BloodHound 和 Purple Knight 评估 Active Directory 安全态势,识别错误配置、权限提升路径和攻击向量。

Teams using performing-active-directory-vulnerability-assessment 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/performing-active-directory-vulnerability-assessment/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/performing-active-directory-vulnerability-assessment/SKILL.md"

Manual Installation

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

How performing-active-directory-vulnerability-assessment Compares

Feature / Agentperforming-active-directory-vulnerability-assessmentStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

使用 PingCastle、BloodHound 和 Purple Knight 评估 Active Directory 安全态势,识别错误配置、权限提升路径和攻击向量。

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 漏洞评估(Performing Active Directory Vulnerability Assessment)

## 概述

Active Directory(AD)是大多数企业环境中的主要身份和访问管理系统(Identity and Access Management),也是关键的攻击目标。本技能涵盖使用 PingCastle 进行健康检查、BloodHound 进行攻击路径分析、Purple Knight 进行安全态势评分的全面 AD 安全评估。这些工具可识别错误配置、过度权限、Kerberos 弱点和横向移动机会。

## 前置条件

- 已加入域的工作站或具有域管理员访问权限以执行扫描
- PingCastle(https://github.com/netwrix/pingcastle)
- 带 SharpHound 采集器的 BloodHound 社区版(Community Edition)
- Semperis 出品的 Purple Knight(免费社区工具)
- Python 3.9+(用于分析脚本)
- .NET Framework 4.7+(Windows 上运行 PingCastle 所需)

## 工具 1:PingCastle 健康检查

### 安装与执行
```powershell
# 下载 PingCastle
Invoke-WebRequest -Uri "https://github.com/netwrix/pingcastle/releases/latest/download/PingCastle.zip" `
  -OutFile "PingCastle.zip"
Expand-Archive PingCastle.zip -DestinationPath C:\Tools\PingCastle

# 对当前域执行健康检查
cd C:\Tools\PingCastle
.\PingCastle.exe --healthcheck

# 对指定域执行健康检查
.\PingCastle.exe --healthcheck --server dc01.corp.local --user CORP\scanner_account --password P@ssw0rd

# 以扫描器模式运行,用于多个域
.\PingCastle.exe --scanner --scannerlp

# 生成综合报告
.\PingCastle.exe --healthcheck --level Full
```

### PingCastle 评分分类

| 分类 | 描述 | 风险领域 |
|----------|------------|------------|
| **StaleObjects(陈旧对象)** | 不活跃账户、旧密码、已淘汰操作系统 | 幽灵账户、已过期凭据 |
| **PrivilegiedGroup(特权账户)** | 过多管理员权限、嵌套组 | Domain Admin 泛滥、SID 历史记录 |
| **Trust(信任关系)** | 林和域信任配置 | 可传递信任滥用、SID 过滤 |
| **Anomaly(异常)** | 安全设置偏差 | GPO 错误配置、架构问题 |

### PingCastle 关键检查项
```
# PingCastle 报告中需重点审查的关键项目:
- 具有"密码永不过期"标志的账户
- 禁用 Kerberos 预身份验证的账户(AS-REP 可烘焙账户)
- 具有 Kerberos 委派的账户(非约束/约束委派)
- 运行不受支持操作系统版本的域控制器
- AdminSDHolder 权限修改
- 特权组中的账户(Domain Admins、Enterprise Admins、Schema Admins)
- 禁用 SID 过滤的信任关系
- 允许权限提升的 GPO 漏洞
```

## 工具 2:BloodHound 攻击路径分析

### SharpHound 数据采集
```powershell
# 下载 SharpHound 采集器
# https://github.com/SpecterOps/BloodHound/tree/main/packages/csharp/SharpHound

# 运行 SharpHound 采集(所有方法)
.\SharpHound.exe --collectionmethods All --domain corp.local --zipfilename bloodhound_data.zip

# 隐蔽采集(最小噪音)
.\SharpHound.exe --collectionmethods Session,LoggedOn --domain corp.local --stealth

# 使用指定域控制器进行采集
.\SharpHound.exe --collectionmethods All --domain corp.local --domaincontroller dc01.corp.local

# 通过 PowerShell 运行
Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All -Domain corp.local -OutputDirectory C:\BH_Data
```

### BloodHound CE 部署
```bash
# 使用 Docker 部署 BloodHound 社区版
curl -L https://ghst.ly/getbhce -o docker-compose.yml
docker compose up -d

# 在 http://localhost:8080 访问 BloodHound CE
# 默认凭据显示在 docker compose 日志中

# 通过 Web UI 或 API 上传 SharpHound 数据
curl -X POST "http://localhost:8080/api/v2/file-upload/start" \
  -H "Authorization: Bearer $BH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"fileName": "bloodhound_data.zip"}'
```

### BloodHound 关键 Cypher 查询
```cypher
# 查找到 Domain Admin 的最短路径
MATCH p=shortestPath((u:User)-[*1..]->(g:Group {name:"DOMAIN ADMINS@CORP.LOCAL"}))
WHERE u.name <> "ADMINISTRATOR@CORP.LOCAL"
RETURN p

# 查找具有管理员权限的 Kerberoastable 账户
MATCH (u:User {hasspn:true})-[:MemberOf*1..]->(g:Group)
WHERE g.name CONTAINS "ADMIN"
RETURN u.name, u.serviceprincipalnames

# 查找 Domain Admin 已登录的计算机
MATCH (c:Computer)-[:HasSession]->(u:User)-[:MemberOf*1..]->(g:Group {name:"DOMAIN ADMINS@CORP.LOCAL"})
RETURN c.name, u.name

# 查找 AS-REP 可烘焙账户
MATCH (u:User {dontreqpreauth:true})
RETURN u.name, u.description

# 查找非约束委派主机
MATCH (c:Computer {unconstraineddelegation:true})
WHERE NOT c.name CONTAINS "DC"
RETURN c.name

# 查找 GPO 滥用路径
MATCH p=(u:User)-[:GenericAll|GenericWrite|WriteOwner|WriteDacl]->(g:GPO)
RETURN p
```

## 工具 3:Purple Knight 评估

```powershell
# 从 https://www.purple-knight.com/ 下载 Purple Knight
# 以域管理员或具有适当读取权限的账户运行

.\PurpleKnight.exe

# Purple Knight 跨以下类别检查 130+ 个安全指标:
# - 账户安全(密码策略、特权账户)
# - AD 基础设施(复制、DNS、LDAP 签名)
# - 组策略(GPO 权限、安全设置)
# - Kerberos 安全(委派、加密类型、SPN)
# - AD 委派(AdminSDHolder、OU 权限)
```

### Purple Knight 评分等级
| 评分范围 | 等级 | 所需行动 |
|------------|--------|----------------|
| 90-100 | 优秀 | 维持当前安全态势 |
| 75-89 | 良好 | 处理高风险发现 |
| 60-74 | 一般 | 制定修复优先级计划 |
| 40-59 | 较差 | 立即修复所需 |
| 0-39 | 严重 | 需要紧急响应 |

## 常见 AD 漏洞

### 1. Kerberoasting 暴露
```powershell
# 查找分配给用户账户的 SPN(Kerberoasting 目标)
Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName |
  Select-Object Name, ServicePrincipalName, PasswordLastSet, Enabled
```

### 2. AS-REP Roasting 暴露
```powershell
# 查找禁用预身份验证的账户
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} -Properties DoesNotRequirePreAuth |
  Select-Object Name, DoesNotRequirePreAuth, Enabled
```

### 3. LLMNR/NBT-NS 中毒风险
```powershell
# 检查是否通过 GPO 禁用了 LLMNR
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name EnableMulticast -ErrorAction SilentlyContinue
```

### 4. 过度特权组成员关系
```powershell
# 统计关键组中的成员数量
$groups = @("Domain Admins", "Enterprise Admins", "Schema Admins", "Account Operators", "Backup Operators")
foreach ($group in $groups) {
    $count = (Get-ADGroupMember -Identity $group -Recursive).Count
    Write-Output "$group : $count members"
}
```

## 修复优先级

| 发现项 | 风险 | 修复措施 |
|---------|------|-------------|
| Kerberoastable 管理员账户 | 严重 | 移除 SPN 或使用 MSA/gMSA |
| 非域控制器上的非约束委派 | 严重 | 切换为约束委派/RBCD |
| 管理员账户密码永不过期 | 高 | 启用密码轮换策略 |
| AS-REP 可烘焙账户 | 高 | 启用 Kerberos 预身份验证 |
| AdminSDHolder 修改 | 高 | 审计并恢复默认 ACL |
| 陈旧计算机账户(超过 90 天) | 中 | 禁用并移至隔离 OU |
| 未强制执行 LDAP 签名 | 中 | 通过 GPO 在所有 DC 上启用 |

## 参考资料

- [PingCastle GitHub](https://github.com/netwrix/pingcastle)
- [BloodHound CE](https://github.com/SpecterOps/BloodHound)
- [Purple Knight](https://www.purple-knight.com/)
- [MITRE ATT&CK - Active Directory](https://attack.mitre.org/techniques/T1484/)
- [Microsoft AD 安全最佳实践](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/best-practices-for-securing-active-directory)

Related Skills

testing-api-for-mass-assignment-vulnerability

9
from killvxk/cybersecurity-skills-zh

测试 API 是否存在批量赋值(mass assignment,自动绑定)漏洞——攻击者可在 API 请求中附加额外参数,从而修改本不应被访问的对象属性。测试人员识别可写端点,向请求体注入未公开字段(role、isAdmin、price、balance),验证服务器是否在未过滤的情况下将这些字段绑定到数据模型。属于 OWASP API3:2023 Broken Object Property Level Authorization 范畴。适用于批量赋值测试、参数绑定滥用、自动绑定漏洞或 API 过度发布(over-posting)相关请求。

performing-yara-rule-development-for-detection

9
from killvxk/cybersecurity-skills-zh

通过识别可执行文件中的唯一字节模式、字符串和行为指标,开发精准的 YARA 恶意软件检测规则,同时将误报率降至最低。

performing-wireless-security-assessment-with-kismet

9
from killvxk/cybersecurity-skills-zh

使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。

performing-wireless-network-penetration-test

9
from killvxk/cybersecurity-skills-zh

执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。

performing-windows-artifact-analysis-with-eric-zimmerman-tools

9
from killvxk/cybersecurity-skills-zh

使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。

performing-wifi-password-cracking-with-aircrack

9
from killvxk/cybersecurity-skills-zh

在授权无线安全评估中捕获 WPA/WPA2 握手包,并使用 aircrack-ng、hashcat 和字典攻击进行离线密码破解, 以评估密码短语强度和无线网络安全状况。

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-web-application-vulnerability-triage

9
from killvxk/cybersecurity-skills-zh

使用 OWASP 风险评级方法论对 DAST/SAST 扫描器的 Web 应用程序漏洞发现进行分类,区分真阳性和假阳性,并确定修复优先级。

performing-web-application-scanning-with-nikto

9
from killvxk/cybersecurity-skills-zh

Nikto 是一款开源 Web 服务器和 Web 应用程序扫描器,可针对超过 7,000 个潜在危险文件/程序进行测试,检查超过 1,250 个服务器的过期版本,并识别超过 270 个服务器的版本特定问题。

performing-web-application-penetration-test

9
from killvxk/cybersecurity-skills-zh

遵循 OWASP Web 安全测试指南(WSTG)方法论,对 Web 应用程序执行系统化安全测试,识别认证、授权、 输入验证、会话管理和业务逻辑中的漏洞。测试人员以 Burp Suite 作为主要拦截代理,结合手动测试技术 发现自动化扫描器遗漏的缺陷。适用于 Web 应用渗透测试、OWASP 测试、应用安全评估或 Web 漏洞测试等请求场景。

performing-web-application-firewall-bypass

9
from killvxk/cybersecurity-skills-zh

使用编码技术、HTTP 方法操控、参数污染和载荷混淆绕过 Web 应用防火墙保护,将 SQL 注入、XSS 及其他攻击载荷穿透 WAF 检测规则。