인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
생산성 및 협업 · SKILL.md

conducting-internal-reconnaissance-with-bloodhound-ce

conducting-internal-reconnaissance-with-bloodhound-ce

使用 BloodHound 社区版(Community Edition)进行内部活动目录(Active Directory)侦察,绘制攻击路径图,识别权限提升链,并发现域环境中的错误配置。

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: conducting-internal-reconnaissance-with-bloodhound-ce description: 使用 BloodHound 社区版(Community Edition)进行内部活动目录(Active Directory)侦察,绘制攻击路径图,识别权限提升链,并发现域环境中的错误配置。 domain: cybersecurity subdomain: red-teaming tags: [red-team, reconnaissance, bloodhound, active-directory, attack-paths, privilege-escalation, graph-analysis] version: "1.0" author: mahipal license: Apache-2.0

使用 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:
    curl -L https://ghst.ly/getbhce -o docker-compose.yml
    docker compose pull
    docker compose up -d
    
  2. 访问 Web 界面:https://localhost:8080
  3. 使用默认管理员凭据登录(显示在 Docker 日志中):
    docker compose logs | grep "Initial Password"
    
  4. 立即修改默认管理员密码

阶段二:使用 SharpHound v2 收集数据

  1. 将 SharpHound v2 传输到已控制的 Windows 主机:
    # 执行全量收集
    .\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:
    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 查询:
    // 查找从已控制主体到域管理员的最短路径
    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 v2AD 数据收集(.NET,用于 CE)Windows
BloodHound.pyAD 数据收集(Python)Linux
AzureHoundAzure AD / Entra ID 数据收集跨平台
PlumHound自动化 BloodHound 报告Python
BloodHound 查询库社区 Cypher 查询存储库Web

关键攻击路径类型

路径类型描述示例
ACL 滥用利用错误配置的 ACLDA 组上的 GenericAll
Kerberoasting破解服务账户密码SPN 账户 → DA
AS-REP Roasting攻击不需要预认证的账户无预认证用户 → 密码破解
委派滥用利用非约束/约束委派计算机 → 模拟 DA
GPO 滥用修改应用于特权 OU 的 GPOGPO 写入 → DA 上代码执行
会话劫持利用已控制主机上的 DA 会话管理员会话 → 令牌窃取

验证标准

  • BloodHound CE 已部署并可访问
  • 已从范围内所有域收集 SharpHound v2 数据
  • 数据已成功导入 BloodHound CE
  • 已控制的主体在界面中已标记
  • 已识别到域管理员的最短路径
  • 已记录基于 ACL 的攻击路径
  • 已列出 Kerberoastable 和 AS-REP Roastable 账户
  • 已执行自定义 Cypher 查询进行高级分析
  • 已按可行性和隐蔽性对攻击路径进行优先级排序
  • 已生成包含所有已识别路径和证据的报告
저장한 Skills