ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

BloodHound CE 内部侦察指南:从低权限立足点到域管理员的攻击路径分析实战

BloodHound CE 内部侦察指南:从低权限立足点到域管理员的攻击路径分析实战 BloodHound CE 内部侦察指南从低权限立足点到域管理员的攻击路径分析实战【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills本文基于开源仓库 Anthropic-Cybersecurity-Skills 中skills/conducting-internal-reconnaissance-with-bloodhound-ce技能文档撰写围绕其完整侦察工作流展开并辅以仓库内配套脚本与参考文档的源码级佐证。读者将掌握用 Docker Compose 部署 BloodHound CE、使用 SharpHound v2 与 BloodHound.py 采集 AD 数据、导入图数据库后通过内置查询与自定义 Cypher 挖掘 ACL 滥用、Kerberoasting、委派滥用等攻击路径最终将路径按可行性与隐蔽性排序并产出可交付的报告。法律声明本技能仅用于授权的安全测试与教育目的。对你不拥有或未经书面许可的系统进行未授权使用属于违法行为可能触犯计算机欺诈相关法律。概述为什么用图论做 AD 侦察BloodHound Community EditionCE是 SpecterOps 开发的现代 Web 化 Active Directory 侦察平台其核心思想是用图论揭示 AD 环境中隐藏的关系与攻击路径。它将安全主体用户、计算机、组、OU、GPO建模为节点把权限、组成员关系、会话、信任关系和 ACL 建模为边从而把这个低权限账号能否到达 Domain Admins这一经典问题转化为一次最短路径查询——这是人工审计极易遗漏的视角。与旧版 BloodHound 相比BloodHound CE 使用 PostgreSQL 后端配合专用图数据库Neo4j提供更优的性能、现代化的 Web UI 与增强的 API 能力详见 映射攻击路径技能 中对容器化技术栈的描述Go API 服务器 PostgreSQL 关系存储 Neo4j 图数据库。数据采集由两类收集器完成SharpHound v2面向 CE 的 .NET 收集器采集本地 AD对象、组成员关系、ACL、会话、本地管理员、信任、GPO、ADCS 证书服务与 LAPS 可读性输出 ZIP 格式的 JSONAzureHound跨平台 Go 二进制通过 Microsoft Graph 与 Azure REST API 采集 Azure AD / Entra ID 数据输出单个 JSON 文件。红队通常的做法是先拿到任意域内低权限立足点再用 BloodHound CE 采集 AD 对象与关系将攻击路径可视化从被攻陷账号一路延伸到 Domain Admin 等高价值目标也可用于验证加固效果——确认已知攻击路径是否已被封堵。何时使用在安全评估中开展 AD 内部侦察本技能的核心场景按事件响应流程处理相关安全事件后的溯源分析执行定期的安全测试或审计活动通过动手测试验证安全控制措施的有效性。前置条件熟悉红队概念与常用工具具备可供安全执行的测试或实验环境Python 3.8 并安装所需依赖neo4j、bloodhound、requests参见 API 参考对目标系统拥有明确的测试授权。目标使用 Docker Compose 部署 BloodHound CE 服务器使用 SharpHound v2 或 BloodHound.py 采集 AD 数据将采集数据导入 BloodHound CE 进行图分析识别从已控主体到 Domain Admins 的最短攻击路径发现基于 ACL 的攻击路径、可 Kerberoast 的账号与委派滥用执行自定义 Cypher 查询进行高级攻击路径分析为参与方文档生成攻击路径报告。MITRE ATTCK 映射本技能对应活动在 MITRE ATTCK 框架中的技术映射如下完整表格见 标准参考技术 ID技术名称战术T1087.002账号发现域账号发现T1069.002权限组发现域组发现T1482域信任发现发现T1615组策略发现发现T1018远程系统发现发现T1033系统所有者/用户发现发现T1016系统网络配置发现发现其中侦察活动的主体可归纳为T1069 权限组发现枚举组间权限以构建攻击图由 T1087账号发现、T1482域信任发现与 T1018远程系统发现支撑。工作流五阶段内部侦察阶段 1BloodHound CE 部署使用 Docker Compose 部署 BloodHound CEcurl -L https://ghst.ly/getbhce -o docker-compose.yml docker compose pull docker compose up -d访问 Web 界面https://localhost:8080使用默认管理员凭据登录密码显示在 Docker 日志中docker compose logs | grep Initial Password立即修改默认管理员密码。实现细节该 Compose 栈实际拉取 PostgreSQL、Neo4j 与 BloodHound API 服务在 映射攻击路径技能 的前置条件小节中可见同一部署命令及其说明。首次登录会生成随机初始密码需在 Web UI 中重置。日志中的初始密码通过docker compose logs bloodhound | grep -i Initial Password提取。阶段 2使用 SharpHound v2 采集数据将 SharpHound v2 传输到已攻陷的 Windows 主机后按场景选择采集模式# 全量采集所有方法 .\SharpHound.exe -c All --outputdirectory C:\Temp # DCOnly 采集仅 LDAP更隐蔽 .\SharpHound.exe -c DCOnly # 会话采集循环映射已登录用户 .\SharpHound.exe -c Session --loop --loopduration 02:00:00 # 从指定域采集 .\SharpHound.exe -c All -d child.domain.local采集模式说明对应 工作流参考 中的隐蔽采集方案模式行为隐蔽性考量All全量采集所有方法覆盖面最全但会对多台主机产生探测流量DCOnly仅通过 LDAP 查询域控不触碰主机无会话/本地管理员数据噪声最低Session采集登录会话配合--loop --loopduration可在时间窗口内被动收集高层级用户的登录关系指定域-d指定目标域多域环境中逐个覆盖所有可到达域隐蔽场景的进阶用法来自 工作流参考# 定向采集指定容器/OU .\SharpHound.exe -c All --searchbase OUServers,DCdomain,DClocal # 会话循环长时间被动枚举 .\SharpHound.exe -c Session --loop --loopduration 04:00:00 --loopinterval 00:05:00备选方案从 Linux 使用 BloodHound.py 采集bloodhound-python -u user -p Password123 -d domain.local -ns 10.10.10.1 -c AllBloodHound.pyPython ingestor支持all、group、localadmin、session、trusts、objectprops、acl等采集方法见 API 参考--zip参数可直接输出 ZIP 压缩结果。将生成的 ZIP 文件外带至分析工作站。阶段 3数据导入与初步分析通过 BloodHound CE Web 界面的File Ingest上传采集数据在界面中将已攻陷账号标记为Owned——这是后续路径查询{owned:true}的种子节点运行内置分析查询到 Domain Admin 的最短路径Shortest Path to Domain Admin可达 DA 的可 Kerberoast 用户Kerberoastable Users with Path to DA可 AS-REP Roast 的用户AS-REP Roastable Users拥有 DCSync 权限的用户Users with DCSync Rights无约束委派的计算机Computers with Unconstrained Delegation阶段 4自定义 Cypher 查询在 BloodHound CE 搜索栏中执行自定义 Cypher覆盖内置查询之外的定制化分析// 从已控主体到 Domain Admins 的最短路径 MATCH pshortestPath((n {owned:true})-[*1..]-(m:Group {name:DOMAIN ADMINSDOMAIN.LOCAL})) RETURN p // 可 Kerberoast 且可达 DA 的用户 MATCH (u:User {hasspn:true}) MATCH pshortestPath((u)-[*1..]-(g:Group {name:DOMAIN ADMINSDOMAIN.LOCAL})) RETURN p // 存在 DA 成员会话的计算机 MATCH (c:Computer)-[:HasSession]-(u:User)-[:MemberOf*1..]-(g:Group {name:DOMAIN ADMINSDOMAIN.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查询要点对应 API 参考 中的关键 Cypher 模式路径查询使用shortestPath 变长关系[*1..]可自由扩展跳跃深度节点属性过滤hasspn是否设置 SPN → Kerberoastable、dontreqpreauth是否免预认证 → AS-REP Roastable、unconstraineddelegation是否无约束委派、haslaps是否启用 LAPS边类型过滤GenericAll|GenericWrite|WriteDacl|WriteOwner|ForceChangePassword聚合 ACL 滥用边DCSync|GetChanges|GetChangesAll聚合 DCSync 权限边。扩展混合路径分析若目标同时包含本地 AD 与其同步的 Entra ID 租户还可执行跨越本地/云边界的混合攻击路径查询例如MATCH p(u:User)-[:SyncedToEntraUser]-(:AZUser)-[:AZHasRole|AZGlobalAdmin*1..]-(r) RETURN p定位本地用户同步至云端持有特权目录角色的账号详见 映射攻击路径技能 的 Step 7。阶段 5攻击路径优先级排序按下述标准对攻击路径评分跳跃数越短优先级越高隐蔽性要求避开高噪声技术如需要触碰主机的 HasSession 边每跳的工具可用性每一步被检测到的可能性。为最高优先级路径制定执行计划确定链条中每一步所需工具为每种技术规划 OPSEC 考量。关键攻击路径类型路径类型描述示例ACL 滥用利用配置错误的 ACL对 DA 组拥有 GenericAllKerberoasting破解服务账号密码SPN 账号 → DAAS-REP Roasting攻击未启用预认证的账号免预认证用户 → 密码破解委派滥用利用无约束/约束委派计算机 → 模拟 DAGPO 滥用修改应用到特权 OU 的 GPOGPO 写入 → 在 DA 上执行代码会话劫持利用已攻陷主机上的 DA 会话管理员会话 → 令牌窃取完整边/路径语义对照可参考 映射攻击路径技能 的 Key Edge / Path Types 表MemberOf嵌套组成员到达 DA、GenericAll/WriteDacl对对象完全/ACL 控制、ForceChangePassword重置他人密码、HasSession用户登录主机 → 窃取令牌、ADCSESC1..ESC8证书服务配置错误等。工具与资源工具用途平台BloodHound CEWeb 化图分析平台DockerSharpHound v2AD 数据采集.NET面向 CEWindowsBloodHound.pyAD 数据采集PythonLinuxAzureHoundAzure AD / Entra ID 数据采集跨平台PlumHound自动化 BloodHound 报告PythonBloodHound Query Library社区 Cypher 查询库Web配套 Python 依赖来自 API 参考库安装用途neo4jpip install neo4jNeo4j 图数据库驱动执行 Cypherbloodhoundpip install bloodhoundPython ingestorAD 数据采集requestspip install requestsBloodHound CE REST API 客户端仓库配套脚本从查询到报告的自动化本技能目录下提供两个可直接用于实战的 Python 脚本分别覆盖自动化侦察查询与离线攻击路径分析报告。自动化侦察agent.pyagent.py 是一个命令行侦察代理既能调用bloodhound-python采集数据也能直连 Neo4j 执行四类核心查询。核心用法# 先采集后分析需提供 AD 凭据与 DC IP python agent.py --collect --domain domain.local --ad-user user \ --ad-pass Password123 --dc-ip 10.10.10.1 \ --neo4j-uri bolt://localhost:7687 --neo4j-user neo4j \ --neo4j-password neo4j密码 --output report.json # 仅分析已导入的数据 python agent.py --neo4j-uri bolt://localhost:7687 \ --neo4j-user neo4j --neo4j-password neo4j密码 --output report.json脚本内部封装了与 SKILL.md 阶段 4 同源的 Cypher 逻辑可从源码层面印证查询实现query_shortest_path_to_da()MATCH pshortestPath((u:User)-[*1..]-(g:Group {name:$group}))额外过滤u.enabled true按跳跃数升序返回前 10 个用户query_kerberoastable_users()WHERE u.hasspn true AND u.enabled true同时返回serviceprincipalnames与admincount按管理员计数降序排序query_unconstrained_delegation()WHERE c.unconstraineddelegation true附带操作系统信息query_as_rep_roastable()WHERE u.dontreqpreauth true AND u.enabled true。collect_bloodhound_data()底层通过subprocess调用bloodhound-python -d domain -u user -p pass -ns dc_ip -c method --zip设置了 300 秒超时并会对FileNotFoundError未安装 bloodhound与超时分别返回结构化错误——这与 SKILL.md 阶段 2 的 Linux 采集命令完全对应且自动附加了--zip参数。离线分析process.pyprocess.py 无需图数据库直接读取 BloodHound 导出的 JSON 数据用户与计算机文件生成优先级报告python process.py bloodhound_users.json [bloodhound_computers.json]脚本会统计用户侧指标总数、启用数、Kerberoastable、AS-REP Roastable、AdminCount、PasswordNotRequired与计算机侧指标无约束/约束委派、LAPS 启用/禁用、不受支持操作系统、域控清单并按固定优先级输出攻击向量清单Kerberoastable 账号 → AS-REP Roastable 账号 → 无约束委派滥用 → ACL 路径 → GPO 修改路径 → 不受支持操作系统利用。analyze_computers()中不受支持操作系统的判定覆盖2003/2008/xp/vista/windows 7关键词可直接用于识别过时主机。两个脚本的输出结构均与 报告模板 中的字段Kerberoastable、AS-REP Roastable、Unconstrained Delegation、DCSync Rights、Unsupported OS对齐便于一键生成交付物。报告与文档化报告模板 提供了标准化的交付骨架包含四个核心区块参与方详情活动名称、目标域、采集日期、BloodHound CE 版本、SharpHound 版本采集摘要用户、计算机、组、GPO、OU、域、信任、会话的计数已识别攻击路径按路径描述、跳跃数、起始/终止节点、风险等级逐条记录高价值发现Kerberoastable、AS-REP Roastable、无约束委派、DCSync 权限、不受支持操作系统修复优先级按 Critical / High / Medium 分级给出修复建议。完整工作流总览部署 → 采集 → 导入 → 分析 → 攻击规划 → 报告可参考 工作流参考 中的结构图。验证标准完成本技能后应逐项核对BloodHound CE 已部署且可访问已从范围内所有域采集 SharpHound v2 数据数据成功导入 BloodHound CE已控主体已在界面中标记为 Owned已识别到 Domain Admin 的最短路径已记录基于 ACL 的攻击路径已列出可 Kerberoast 与 AS-REP Roast 的账号已执行自定义 Cypher 查询进行高级分析攻击路径已按可行性与隐蔽性排序已生成包含所有路径与证据的报告。结语BloodHound CE 把 AD 侦察从逐项枚举升级为图论寻径先用 SharpHound v2Windows或 BloodHound.pyLinux完成低噪声数据采集再借助内置查询与自定义 Cypher 从已控主体出发定位通往 Domain Admins 的最短路径最后依据跳跃数与隐蔽性对路径排序并形成报告。配合本仓库的 agent.py、process.py 与 报告模板一个从立足点到交付物的完整侦察闭环即可在授权环境中落地。请始终牢记仅在拥有明确书面授权的环境中执行此类侦察活动。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表