【免费下载链接】DecepticonAutonomous Hacking Agent for Red Team项目地址https://gitcode.com/gh_mirrors/de/Decepticon点击查看免费下载导读本文围绕 Decepticon 红队自动化框架中的bloodhound-query技能展开讲解在托管演练Hosted engagement与独立 OSS 运行时两种场景下如何对已授权的 AD 采集数据进行 BloodHound 图分析从 SharpHound ZIP 上传、领域概览与数据质量检查到对象画像、暴露面检索、最短攻击路径与有界 Cypher 查询再到 GUI 联动验证与证据落库。读完本文你将掌握bloodhound_mcp_*与bhce_*两套工具面的完整调用序列、它们之间的隔离边界以及如何避免空图即安全的误判。技能定位何时加载bloodhound-querybloodhound-query技能文件位于 packages/decepticon/decepticon/skills/standard/ad/bloodhound-query/SKILL.md其 frontmatter 明确了加载条件name: bloodhound-query description: Analyze authorized AD collection data in BloodHound CE with the active runtimes supported tools and mirrored GUI. metadata: subdomain: active-directory when_to_use: bloodhound collection upload object profile exposure shortest path cypher active directory mitre_attack: - T1087.002 # Account Discovery: Domain Account - T1018 # Remote System Discovery - T1482 # Domain Trust Discovery从when_to_use关键词collection upload/object profile/exposure/shortest path/cypher可以看出该技能聚焦的是采集数据之后的图分析阶段而不是采集本身。它与同目录下的 bloodhound-bhce/SKILL.md 形成分工后者负责运行时选择与采集前者负责上传后的查询与分析。父技能 ad/SKILL.md 的技能目录将其定位为 Authorized collection upload, coverage, object and path analysis并明确要求发现一个主机名并不会自动填充 BloodHound 图必须先有已授权领域的采集路径。第一原则收集 ≠ 分析空图 ≠ 安全技能开头即给出最关键的判定规则BloodHound analyzes collected AD data; discovering a domain or opening its viewer does not populate the graph. Work only with the authorized domain and an existing collection path. Report missing collection access rather than claiming an empty graph proves safety.这包含三层约束发现领域或打开查看器不产生数据——BloodHound 的图来自采集器SharpHound / AzureHound / BloodHound.py的输出只有上传并成功摄取后图才会被填充只对已授权领域、且存在采集路径的数据工作——超出授权范围的查询是越界行为空图必须报告为缺少采集访问而不是证明安全——这是评估结论上的关键红线缺失的数据不能当作负面证据使用。这与 ad/SKILL.md 工作流第 2 步一致A discovered hostname alone does not populate BloodHound. Inspect collection coverage before interpreting absent results.Hosted engagementbloodhound_mcp_*工具面在托管演练中Decepticon 为演练提供演练隔离engagement-isolated的 BloodHound CE 伴生实例独立 GUI 一组bloodhound_mcp_*工具。完整流程分四步。步骤 1上传已有采集包如果/workspace下已存在兼容的 SharpHound ZIP直接调用上传工具bloodhound_mcp_upload_collection(path...)路径必须指向/workspace下已授权的采集包必须核对返回的终端状态terminal status为Complete出现PartiallyComplete/Failed/Cancelled时要如实上报部分或失败的摄取结果不能当作成功处理。这一轮询至终端状态的语义与源码实现一致在 tools/ad/bh_tools.py 中bhce_ingest_zip运行 BHCE v9.2.2 官方的三步上传流程POST /api/v2/file-upload/start→POST /api/v2/file-upload/{job_id}→POST /api/v2/file-upload/{job_id}/end随后以 2 秒间隔轮询GET /api/v2/file-upload/{job_id}直到命中_TERMINAL_STATUSES {Complete, Failed, Cancelled, PartiallyComplete}或 600 秒超时见bh_tools.py中的_UPLOAD_POLL_INTERVAL_SECONDS/_UPLOAD_POLL_TIMEOUT_SECONDS。对应单元测试 tests/unit/ad/test_bh_tools.py 的test_bhce_ingest_zip_runs_three_step_and_polls_until_terminal验证了三步各恰好一次 至少两次轮询的行为契约。步骤 2无采集包时的授权采集若/workspace中没有现成 ZIP技能给出两条路径通过已授权立足点foothold采集并将 ZIP 传回/workspace当存在可达且已授权的 DC、且/workspace有 Kerberos 缓存时调用bloodhound_mcp_collect_domain(domain..., dc..., username..., cache...)参数匹配规则参数要求domain与授权领域一致dc已授权的作用域内 DCusername/cache使用/workspace中已有的 Kerberos 缓存对应的凭据采集模式有明确的分级约束默认从DCOnly开始——只采集域级对象覆盖面最小、噪音最低Default与Session模式必须显式提供计算机白名单computer allowlist否则不得使用严禁以 MCP 参数形式传递密码或哈希——凭据只能以缓存文件形式存在于/workspace。步骤 3上传完成后的分析序列上传成功后工具调用顺序应遵循由总到分、语义工具优先的原则数据质量与概览先行bloodhound_mcp_data_quality—— 检查采集覆盖度判断缺边是真实不存在还是采集不完整这是空图误判的第一道防线bloodhound_mcp_domain_overview—— 获取领域级对象统计。定向对象检索bloodhound_mcp_find_objects—— 按名称/属性搜索对象bloodhound_mcp_object_profile—— 查看单个主体的完整画像成员关系、ACL、会话等。有界问题分析bloodhound_mcp_exposure_finder—— 暴露面检索用于谁对什么有路径类问题bloodhound_mcp_shortest_path—— 最短路径查询用于从 A 到 B 的最短可达路径。Cypher 兜底bloodhound_mcp_cypher_query——仅当上述语义工具无法回答某个只读问题时才使用使用时必须约束返回行数bound returned rows与路径深度path depth防止无界查询拖垮伴生实例。技能强调语义工具优先、Cypher 兜底的分层与 dcsync/SKILL.md 的用法一致——它同样要求用bloodhound_mcp_exposure_finder/bloodhound_mcp_object_profile识别复制权限持有者仅在针对特定主体时才用有界的只读bloodhound_mcp_cypher_query且必须先做数据质量检查再解读无暴露结果。步骤 4GUI 联动验证与结果记录GUI 联动状态在声称操作员能在界面上看到某对象/路径之前必须先检查GUI follow 状态follow status——只有返回的联动状态才能证明远程查看器确实移动到了目标对象打开查看器本身不算证据证据区分候选图路径candidate graph path≠ 已由独立证据证明的动作action proven by independent evidence二者不可混同结果落库确认后的结果必须通过当前演练的finding 与 OPPLAN 工具记录图查询结果本身既不能授权对目标的操作也不能证明入侵成功与 ad/SKILL.md 工作流第 4 步一致。隔离边界托管图 ≠ 独立实例托管 MCP 图与任何独立 BloodHound 实例物理隔离技能明确禁止在托管分析中调用bhce_*工具指向独立 OSS 实例bh_ingest_zip已弃用的自研摄取工具bh_cypher本机cypher-shell这条边界的底层依据来自架构决策 docs/adr/0005-bloodhound-via-bhce-rest-client.mdBHCE 的dawgs驱动独占其 Neo4j schema因此仓库为 BHCE 单独部署decepticon-bhce-neo4j与decepticon-bhce-api容器指向独立的bloodhoundPostgres 库与 Decepticon 自身的 KGStore 图web/cloud/AD 融合图物理分离。混用两套实例的数据会导致把 A 实例的采集当成当前演练的 B 实例数据的伪证据。Standalone OSS runtimebhce_*工具面当托管 MCP 工具缺失、但注册了独立的bhce_*工具时技能给出三个工具的完整用法工具用途bhce_status检查本地 BHCE 实例健康版本 认证主体bhce_ingest_zip摄取兼容的 SharpHound ZIP官方三步上传流程bhce_cypher有界只读 Cypher 查询关键约束先确认工具已注册再使用——不要假设某个固定版本或 schema 存在以实际实例上报的能力为准bloodhound-bhce/SKILL.md 同样强调 Do not assume a fixed BloodHound version or schema; use the actual instances reported capabilities绝不允许把另一个实例的数据当作当前演练的采集数据bhce_cypher只用于有界只读查询。源码视角bhce_*如何工作bhce_*工具面实现在 tools/ad/bh_tools.py其底层是手写的 BHCE v9.2.2 REST 客户端 tools/ad/bhce_client.py。客户端通过环境变量构造BHCE_URL/BHCE_TOKEN_ID/BHCE_TOKEN_KEY/BHCE_TIMEOUT默认 30 秒并实现 BHCE 官方的HMAC 三级签名链OperationKey HMAC_SHA256(token_secret, METHOD || URI_PATH) # URI 含查询串 DateKey HMAC_SHA256(OperationKey, RFC3339[:13]) # 截断到小时 BodyKey HMAC_SHA256(DateKey, body_bytes) # 空 body 也执行第三次 HMAC Signature base64(BodyKey)随请求携带三个认证头Authorization: bhesignature TOKEN_ID、RequestDate: 完整 RFC3339、Signature: base64。两个值得注意的细节签名输入中的日期截断到小时、而请求头携带完整时间客户端刻意匹配 BHCE服务端的签名行为服务端将 query 字符串纳入RequestURI参与签名而其 Go 客户端只签 path——因为决定请求接受与否的是服务端。服务器时钟偏差窗口为 ±1 小时ADR-0005 中明确指出文档页面上2 小时的说法不准确。签名兼容性由 tests/unit/ad/test_bhce_client.py 固定测试向量来自对 BHCEcmd/api/src/api/signature.go的逐字crypto/hmac复现而非用自研算法自证从而保证与官方服务端验证器字节级兼容。为什么不是bh_ingest_zipADR-0005 的弃用脉络技能的禁止bh_ingest_zip要求背后是一次明确的架构迁移。docs/adr/0005-bloodhound-via-bhce-rest-client.md 记录了决策不再用自研 Python/Cypher 重实现 BloodHound CE 的PostProcessedRelationshipsESC1/3/4/6/9/13、GoldenCert、DCSync、TrustedForNTAuth 等改为直连官方 BHCE REST API——上游每发布一个新 ESC 类型、边重命名或 Properties 键变更自研管线都要一轮 RFC 正则 狗粮验证成本不可持续。因此旧工具面bh_ingest_zip、bh_ingest_json、dcsync_check、delegation_audit、gpo_audit、adcs_audit、adcs_post_process进入弃用通道在 tools/ad/tools.py 中它们每次调用都会触发DeprecationWarning提示改用bhce_status/bhce_cypher/bhce_ingest_zip保留一个次要周期后迁入decepticon.compat再下一周期移除。唯一保留的自研工具是kerberos_classify——BHCE 没有对应的本地哈希/票据解析器。从源码结构看旧摄取管线tools/ad/bloodhound.py仍保留了完整的 BloodHound 5.x JSON → KGStore 映射能力ingest_bloodhound_zip/merge_bloodhound_json包括 PrimaryGroupSID 合成、会话方向保留、ContainedBy 翻转、信任关系四向拆分等五项陷阱修复但它服务的是 KGStore 融合图与 BHCE 托管图是两条不同的数据通道——这也再次印证了技能中托管图与独立实例数据不得混用的隔离要求。端到端实战序列对照速查以下是将上述规则串成一次完整分析的最小序列托管演练场景# 1. 已有采集包 → 上传并核验 bloodhound_mcp_upload_collection(path/workspace/bh.zip) # 必须返回 terminal status Complete # 2. 无采集包且授权 DC 可达、有 Kerberos 缓存 → 分级采集 bloodhound_mcp_collect_domain(domaincorp.local, dcdc01.corp.local, usernamesvc_audit, cache/workspace/krb.ccache) # 仅 DCOnly 起步 # 3. 质量与概览 bloodhound_mcp_data_quality bloodhound_mcp_domain_overview # 4. 定向对象与画像 bloodhound_mcp_find_objects(querysvc_*) bloodhound_mcp_object_profile(object_id...) # 5. 有界问题 bloodhound_mcp_exposure_finder(start..., target...) bloodhound_mcp_shortest_path(start..., target..., max_depth5) # 6. 兜底语义工具答不了才用 Cypher务必有界 bloodhound_mcp_cypher_query(queryMATCH (n)-[:GetChanges|GetChangesAll]-(:Domain) RETURN DISTINCT n.name, labels(n) LIMIT 25) # 7. 确认 GUI follow 状态 → finding / OPPLAN 工具落库对应独立 OSS 运行时将 1/6 两步替换为bhce_ingest_zip(path...)同样轮询至Complete与bhce_cypher(query..., include_propertiestrue)并以bhce_status先行确认实例健康。常见误用与规避误用后果正确做法发现域名/打开 GUI 后直接声称图已就绪图未填充分析基于空数据先完成上传 数据质量检查空图即安全把采集缺失当负面证据上报缺少采集访问把 A 实例数据当当前演练数据伪证据、越权判定严守托管图与独立实例隔离语义工具能答的问题直接用 Cypher无界查询拖垮实例、可读性差优先exposure_finder/shortest_pathCypher 兜底且有界未核对 GUI follow 状态即声称操作员已看到证据链断裂以返回的 follow 状态为准把候选图路径当作已证明的动作假阳性结论独立证据验证后再记录向 MCP 传密码/哈希凭据泄露面扩大只使用/workspace缓存小结bloodhound-query技能在 Decepticon 中承担 AD 分析数据进入图之后的全部工作它用bloodhound_mcp_*完成托管演练的上传 → 采集 → 质量检查 → 对象/暴露面/最短路径 → 有界 Cypher → GUI 验证 → 落库闭环用bhce_*支撑独立 OSS 运行时的等价能力并以空图不等于安全的判定红线约束结论输出。背后是 ADR-0005 确立的直连官方 BHCE REST API、弃用自研重实现的架构方向以及bhce_client.py对 HMAC 签名链的字节级兼容实现。对红队自动化而言这套技能既是操作手册也是图结果本身不构成入侵证据的纪律约束。赞分享【免费下载链接】DecepticonAutonomous Hacking Agent for Red Team项目地址https://gitcode.com/gh_mirrors/de/Decepticon点击查看免费下载相关推荐Decepticon 实战指南BloodHound CE 运行时选择与 AD 攻击路径分析bloodhound-bhce SkillDecepticon 实战指南BloodHound CE 运行时选择与 AD 攻击路径分析bloodhound bhce Skill 本文面向使用 Dec从数据采集到路径分析BloodHound完整技术栈解密从数据采集到路径分析BloodHound完整技术栈解密 BloodHound作为一款基于图论的Active Directory与Azure环境分析工具其技术网络安全应用安全BloodHound CE 内网侦察 API 实战指南Python 驱动、Cypher 攻击路径查询与自动化采集BloodHound CE 内网侦察 API 实战指南Python 驱动、Cypher 攻击路径查询与自动化采集 导读 本指南以 conducting int网络安全AI 技能/插件渗透测试红蓝对抗上一篇codeforces-go 题解LCM 结合律与栈模拟实现相邻非互质数合并LeetCode 283 周赛 D 题下一篇【前端开发】条形码生成难题的JavaScript解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考