L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · 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

Documentation de la 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 enregistrées