conducting-internal-reconnaissance-with-bloodhound-ce
使用 BloodHound 社区版(Community Edition)进行内部活动目录(Active Directory)侦察,绘制攻击路径图,识别权限提升链,并发现域环境中的错误配置。
Best use case
conducting-internal-reconnaissance-with-bloodhound-ce is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
使用 BloodHound 社区版(Community Edition)进行内部活动目录(Active Directory)侦察,绘制攻击路径图,识别权限提升链,并发现域环境中的错误配置。
Teams using conducting-internal-reconnaissance-with-bloodhound-ce 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-internal-reconnaissance-with-bloodhound-ce/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How conducting-internal-reconnaissance-with-bloodhound-ce Compares
| Feature / Agent | conducting-internal-reconnaissance-with-bloodhound-ce | 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?
使用 BloodHound 社区版(Community Edition)进行内部活动目录(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
# 使用 BloodHound CE 进行内部侦察
## 概述
BloodHound 社区版(CE)是由 SpecterOps 开发的现代化基于 Web 的活动目录侦察平台,使用图论来揭示 AD 环境中隐藏的关系和攻击路径。与传统 BloodHound 应用不同,BloodHound CE 使用带有专用图数据库的 PostgreSQL 后端,提供更好的性能、现代化的 Web UI 和增强的 API 能力。红队使用 BloodHound CE 收集 AD 对象、ACL、会话、组成员关系和信任关系,然后可视化从低权限账户到高价值目标(如域管理员)的攻击路径。SharpHound 收集器(CE 版使用 v2)从活动目录收集数据,而 AzureHound 则从 Azure AD / Entra ID 环境收集数据。
## 目标
- 使用 Docker Compose 部署 BloodHound CE 服务器
- 使用 SharpHound v2 或 BloodHound.py 收集 AD 数据
- 将收集的数据导入 BloodHound CE 进行图分析
- 识别从已控制主体到域管理员的最短攻击路径
- 发现基于 ACL 的攻击路径、Kerberoastable 账户和委派滥用
- 执行自定义 Cypher 查询进行高级攻击路径分析
- 生成攻击路径报告用于演练记录
## MITRE ATT&CK 映射
- **T1087.002** - 账户发现:域账户
- **T1069.002** - 权限组发现:域组
- **T1482** - 域信任发现
- **T1615** - 组策略发现
- **T1018** - 远程系统发现
- **T1033** - 系统所有者/用户发现
- **T1016** - 系统网络配置发现
## 实施步骤
### 阶段一:BloodHound CE 部署
1. 使用 Docker Compose 部署 BloodHound CE:
```bash
curl -L https://ghst.ly/getbhce -o docker-compose.yml
docker compose pull
docker compose up -d
```
2. 访问 Web 界面:https://localhost:8080
3. 使用默认管理员凭据登录(显示在 Docker 日志中):
```bash
docker compose logs | grep "Initial Password"
```
4. 立即修改默认管理员密码
### 阶段二:使用 SharpHound v2 收集数据
1. 将 SharpHound v2 传输到已控制的 Windows 主机:
```powershell
# 执行全量收集
.\SharpHound.exe -c All --outputdirectory C:\Temp
# 仅 DC 收集(仅 LDAP,更隐蔽)
.\SharpHound.exe -c DCOnly
# 会话收集,用于映射已登录用户
.\SharpHound.exe -c Session --loop --loopduration 02:00:00
# 从特定域收集
.\SharpHound.exe -c All -d child.domain.local
```
2. 替代方案:从 Linux 使用 BloodHound.py:
```bash
bloodhound-python -u user -p 'Password123' -d domain.local -ns 10.10.10.1 -c All
```
3. 将生成的 ZIP 文件导出到分析工作站
### 阶段三:数据导入与初步分析
1. 通过 BloodHound CE Web 界面上传收集的数据(文件摄入)
2. 在界面中将已控制的账户标记为"Owned"
3. 运行内置分析查询:
- 到域管理员的最短路径
- 具有到 DA 路径的 Kerberoastable 用户
- AS-REP Roastable 用户
- 具有 DCSync 权限的用户
- 具有非约束委派的计算机
### 阶段四:自定义 Cypher 查询
1. 在 BloodHound CE 搜索栏中执行自定义 Cypher 查询:
```cypher
// 查找从已控制主体到域管理员的最短路径
MATCH p=shortestPath((n {owned:true})-[*1..]->(m:Group {name:"DOMAIN ADMINS@DOMAIN.LOCAL"}))
RETURN p
// 查找具有到 DA 路径的 Kerberoastable 用户
MATCH (u:User {hasspn:true})
MATCH p=shortestPath((u)-[*1..]->(g:Group {name:"DOMAIN ADMINS@DOMAIN.LOCAL"}))
RETURN p
// 查找具有 DA 成员会话的计算机
MATCH (c:Computer)-[:HasSession]->(u:User)-[:MemberOf*1..]->(g:Group {name:"DOMAIN ADMINS@DOMAIN.LOCAL"})
RETURN c.name, u.name
// 查找基于 ACL 的攻击路径(GenericAll, WriteDACL, GenericWrite)
MATCH p=(u:User)-[:GenericAll|GenericWrite|WriteDacl|WriteOwner|ForceChangePassword*1..]->(t)
WHERE u.owned = true
RETURN p
// 查找可以 DCSync 的用户
MATCH (u)-[:MemberOf*0..]->()-[:DCSync|GetChanges|GetChangesAll*1..]->(d:Domain)
RETURN u.name, d.name
// 查找有 LAPS 但非管理员可读的计算机
MATCH (c:Computer {haslaps:true})
MATCH p=(u:User)-[:ReadLAPSPassword]->(c)
RETURN p
```
### 阶段五:攻击路径优先级排序
1. 按以下标准对已识别的攻击路径评分:
- 跳数(越少 = 优先级越高)
- 隐蔽性要求(避免嘈杂的技术)
- 每一跳的工具可用性
- 每个步骤的检测可能性
2. 为优先级最高的路径制定执行计划
3. 识别攻击链中每个步骤所需的工具
4. 为每种技术规划 OPSEC 注意事项
## 工具与资源
| 工具 | 用途 | 平台 |
|------|---------|----------|
| BloodHound CE | 基于 Web 的图分析平台 | Docker |
| SharpHound v2 | AD 数据收集(.NET,用于 CE) | Windows |
| BloodHound.py | AD 数据收集(Python) | Linux |
| AzureHound | Azure AD / Entra ID 数据收集 | 跨平台 |
| PlumHound | 自动化 BloodHound 报告 | Python |
| BloodHound 查询库 | 社区 Cypher 查询存储库 | Web |
## 关键攻击路径类型
| 路径类型 | 描述 | 示例 |
|-----------|-------------|---------|
| ACL 滥用 | 利用错误配置的 ACL | DA 组上的 GenericAll |
| Kerberoasting | 破解服务账户密码 | SPN 账户 → DA |
| AS-REP Roasting | 攻击不需要预认证的账户 | 无预认证用户 → 密码破解 |
| 委派滥用 | 利用非约束/约束委派 | 计算机 → 模拟 DA |
| GPO 滥用 | 修改应用于特权 OU 的 GPO | GPO 写入 → DA 上代码执行 |
| 会话劫持 | 利用已控制主机上的 DA 会话 | 管理员会话 → 令牌窃取 |
## 验证标准
- [ ] BloodHound CE 已部署并可访问
- [ ] 已从范围内所有域收集 SharpHound v2 数据
- [ ] 数据已成功导入 BloodHound CE
- [ ] 已控制的主体在界面中已标记
- [ ] 已识别到域管理员的最短路径
- [ ] 已记录基于 ACL 的攻击路径
- [ ] 已列出 Kerberoastable 和 AS-REP Roastable 账户
- [ ] 已执行自定义 Cypher 查询进行高级分析
- [ ] 已按可行性和隐蔽性对攻击路径进行优先级排序
- [ ] 已生成包含所有已识别路径和证据的报告Related Skills
performing-active-directory-bloodhound-analysis
使用 BloodHound 和 SharpHound 枚举活动目录(Active Directory)关系,从已控制的用户识别到域管理员的攻击路径。
exploiting-active-directory-with-bloodhound
BloodHound 是基于图论的活动目录侦察工具,使用图论揭示 AD 环境中隐藏的和意外的关系。红队使用 BloodHound 识别从已控制账户到域管理员等高价值目标的攻击路径。
conducting-wireless-network-penetration-test
执行授权的无线网络渗透测试,通过测试弱加密协议、强制门户绕过、邪恶双胞胎攻击、WPA2/WPA3 握手捕获、流氓接入点检测和客户端攻击,评估 WiFi 基础设施的安全性。
conducting-spearphishing-simulation-campaign
鱼叉式钓鱼(Spearphishing)模拟是红队用于获取初始访问权限的定向社会工程学攻击向量。与广泛的钓鱼活动不同,鱼叉式钓鱼使用 OSINT 情报精心制作高度个性化的消息,针对特定个人。
conducting-social-engineering-pretext-call
规划并执行授权的语音钓鱼(vishing)借口电话,以评估员工对社会工程学(Social Engineering)的易感性,并评估安全意识控制措施的有效性。
conducting-social-engineering-penetration-test
设计并执行社会工程学渗透测试,包括钓鱼、语音钓鱼、短信钓鱼和物理借口活动,以衡量人员安全韧性并识别培训差距。
conducting-post-incident-lessons-learned
主持结构化的事件后审查,以识别根本原因、记录有效和无效的措施,并提出可操作的改进建议以提升未来的事件响应能力。
conducting-phishing-incident-response
通过分析举报的邮件、提取指标、评估凭据受攻陷情况、在全组织范围隔离恶意邮件并修复受影响账号来响应网络钓鱼事件。涵盖邮件头分析、URL/附件沙箱检测和邮箱范围清除操作。适用于网络钓鱼响应、邮件事件、凭据钓鱼、鱼叉式网络钓鱼调查或钓鱼修复相关请求。
conducting-pass-the-ticket-attack
票据传递(Pass-the-Ticket,PtT)是一种横向移动技术,使用窃取的 Kerberos 票据(TGT 或 TGS)在不知道用户密码的情况下向服务进行认证。通过从已控制的主机内存中提取 Kerberos 票据,攻击者可以将这些票据注入自己的会话以模拟票据所有者。
conducting-network-penetration-test
对授权目标环境执行全面网络渗透测试,通过主机发现、端口扫描、服务枚举、漏洞识别和受控漏洞利用,评估网络基础设施的安全态势。测试人员遵循 PTES 方法论,从侦察到后渗透和报告全流程执行。
conducting-mobile-application-penetration-test
对 Android 和 iOS 应用执行移动应用渗透测试,使用 Frida、Objection 和 MobSF 识别不安全的数据存储、证书固定绕过、API 漏洞、二进制保护缺陷和运行时操控问题。
conducting-mobile-app-penetration-test
遵循 OWASP 移动应用安全测试指南(MASTG)对 iOS 和 Android 移动应用执行渗透测试,识别数据存储、网络通信、认证、密码学和平台专属安全控制中的漏洞。测试人员对应用二进制文件进行静态分析、运行时动态分析和 API 安全测试,以评估完整的移动攻击面。