zrnge/Z-Hound

GitHub: zrnge/Z-Hound

Z-Hound 是一个无需安装且无需后端数据库的浏览器单文件工具,用于可视化分析 Active Directory 和 Azure 环境的攻击路径与安全风险。

Stars: 9 | Forks: 1

# Z-Hound — Reforged [![Live Demo](https://img.shields.io/badge/Live_Demo-zrnge.github.io%2FZ--Hound-0ea5e9?style=for-the-badge&logo=github&logoColor=white)](https://zrnge.github.io/Z-Hound/) [![License](https://img.shields.io/badge/License-MIT-22c55e?style=for-the-badge)](LICENSE) [![Stars](https://img.shields.io/github/stars/zrnge/Z-Hound?style=for-the-badge&logo=github&color=fbbf24)](https://github.com/zrnge/Z-Hound/stargazers) [![Single File](https://img.shields.io/badge/Single_File-HTML-e34c26?style=for-the-badge&logo=html5&logoColor=white)](index.html) [![No Install](https://img.shields.io/badge/No_Install-Required-22c55e?style=for-the-badge&logo=checkmarx&logoColor=white)](https://zrnge.github.io/Z-Hound/) [![Offline Ready](https://img.shields.io/badge/Offline-Ready-8b5cf6?style=for-the-badge&logo=googlechrome&logoColor=white)](index.html) [![SharpHound](https://img.shields.io/badge/SharpHound-v3%20%7C%20v4%20%7C%20v5-c0392b?style=for-the-badge)](https://github.com/BloodHoundAD/SharpHound) [![AzureHound](https://img.shields.io/badge/AzureHound-Supported-0078d4?style=for-the-badge&logo=microsoftazure&logoColor=white)](https://github.com/BloodHoundAD/AzureHound) 由 [zrnge](https://www.github.com/zrnge) 构建 ## 立即试用 **在线使用 — 无需下载:** **[https://zrnge.github.io/Z-Hound/](https://zrnge.github.io/Z-Hound/)** 或下载 `index.html` 并在本地打开以实现完全离线使用。所有处理均在浏览器中进行 — 无论哪种方式,您的数据都不会离开您的机器。 ## 它是什么? Z-Hound 是一个单 HTML 文件,用于解析 SharpHound 和 AzureHound ZIP 文件,并渲染 Active Directory / Azure 环境的交互式攻击图。它替代了启动 Neo4j 和 BloodHound 的需求,适用于快速排查、便携式评估以及无法安装工具的客户现场工作。 专为需要零基础设施、快速离线 AD 分析的渗透测试人员、红队和防御者而构建。 ![Screen1](https://github.com/zrnge/Z-Hound/blob/main/Screens/zhound1.png) ## 快速开始 | 选项 | 步骤 | |---|---| | **在线** | 访问 [zrnge.github.io/Z-Hound](https://zrnge.github.io/Z-Hound/) → 点击 **Upload ZIP / JSON** → 选择您的 SharpHound 输出 | | **离线** | 下载 `index.html` → 在浏览器中打开 → 点击 **Upload ZIP / JSON** → 选择您的 SharpHound 输出 | ## 功能特性 ### 数据摄入 - 上传 **SharpHound ZIP**(自动处理所有 JSON 文件)或单个 JSON 文件 - 上传 **AzureHound ZIP** 以进行完整的 Azure / Entra ID 分析 - 支持 SharpHound **v3 / v4 / v5** 输出格式和 BloodHound CE 图导出 - 解析 `Sessions`、`PrivilegedSessions` 和 `RegistrySessions` - 从 `Properties.objectsid` 和 `item.ObjectIdentifier` 解析 SID 和 GUID - 自动合成 SharpHound 未显式收集的已知内置域组 - 每次会话限制 500 MB 解压数据 / 100,000 个节点 ### 图可视化 - 由 [Cytoscape.js](https://cytoscape.js.org/) 驱动的交互式图 - 五种布局模式:**Concentric**(默认)、Hierarchical (Dagre)、Breadth-First、Force-Directed、Grid - 按类型对节点颜色和形状编码:Users、Groups、Computers、Domains、OUs、GPOs、Cert Templates 以及所有 Azure 对象类型 - 节点大小和边框辉光随 **风险评分** 缩放 — 最危险的对象瞬间凸显 - 具备 DCSync 能力的主体以红色渲染;高价值目标以金色渲染 - 单击任意节点以聚焦并显示其邻域 - 框选、缩放(0.02×–12×)、完整平移支持 - 短 / 完整 / 仅类型标签模式;SID 叠加开关 ![Screen2](https://github.com/zrnge/Z-Hound/blob/main/Screens/zhound2.png) ### 过滤器与快速视图 - 开关:隐藏孤立节点、Structure 边、ACL 边、Exec/Admin 边 - **快速视图下拉菜单**,包含自动构建的类别: - 专项分析:DCSync Principals、High Value Targets + Paths - **NTLM Relay**:SMB Relay Targets、WebClient Hosts、Coerce → Relay 链条 *(当存在 signing/webclient 属性时自动出现)* - 高风险 ACL、Privilege & Exec、Delegation & Trust、ADCS、GPO - 易受攻击属性(Kerberoastable、AS-REP、Unconstrained Delegation 等) - **Azure / Entra ID** 组 *(加载 AzureHound 数据时自动出现)* - 用于未知边类型的动态 "Other Edges" 组 ### 攻击路径分析 #### 预构建快速查询(Paths 标签页) | 按钮 | 查找内容 | |---|---| | Kerberoastable | 所有可 Kerberoast 的用户 → 到 DA 的最短路径 | | AS-REP | 可 AS-REP Roast 的账户 → DA | | Unconstrained Deleg | 具有非约束委派的计算机 → DA | | Constrained Deleg | 约束委派目标 | | RBCD | 计算机上的 WriteAccountRestrictions / AddAllowedToAct | | Shadow Cred | AddKeyCredentialLink 边 | | LAPS | ReadLAPSPassword 边 | | GMSA | ReadGMSAPassword 边 | | DCSync | 所有具备 DCSync 能力的主体 | | Writable ACLs | GenericAll / WriteDacl / WriteOwner / GenericWrite | | Forest Trusts | 跨林信任边和跨域 DA 路径 | | ADCS ESC | ESC1–ESC6 证书模板漏洞 | | **Azure GA** | Azure Global Admin / Privileged Role Admin 持有者 + 本地 → Azure GA 混合路径 | | **Relay Targets** | 禁用 SMB 签名的计算机 → DA 路径 | | **WebClient** | 运行 WebClient 的计算机(HTTP coerce 候选)→ DA 路径 | | **⚡ Relay Chain** | 完整的 coerce → NTLMRelay → 目标 → DA 链条 | | ☠ From Owned | 从所有标记为已沦陷的节点出发的路径 | #### 手动路径查找 - **Find DA Path** — 从任意搜索节点到 Domain Admins 的 BFS 最短路径 - **All Paths** — 枚举每条 User/Computer → DA 路径,按跳数排序(Critical ≤2 跳,High ≤4,Medium 5+) - 单击任意路径行以在图中用红色高亮显示 ![Screen3](https://github.com/zrnge/Z-Hound/blob/main/Screens/zhound3.png) ### 风险评分 每个节点自动评分 **0–100**: | 标志 | 分数 | |---|---| | DCSync capability | +95 | | Admin / High Value | +50 | | Unconstrained Delegation | +60 | | Constrained Delegation | +30 | | AS-REP Roastable | +45 | | Kerberoastable (SPN) | +40 | | SID History present | +35 | | **WebClient Running** | +25 | | **SMB Relay Target** | +30 | | **SMBv1 Enabled** | +20 | | Password Never Expires | +20 | | AdminCount = 1 | +15 | | Account Disabled | −40 | | Deleted / Tombstoned | −50 | ### 风险检测 - **DCSync** — 域对象上的 `GetChanges` + `GetChangesAll` 或 `AllExtendedRights` - **Kerberoastable** — `hasspn = true`,账户已启用 - **AS-REP Roastable** — `dontreqpreauth = true` - **Unconstrained Delegation** — 具有无限制委派的计算机 - **关键 ACL** — 高价值目标上的 `GenericAll`、`WriteDacl`、`WriteOwner`、`Owns`、`AllExtendedRights` - **SID History** 滥用路径 - **NTLM Relay Target** — 计算机对象上的 `signing = false` 或 `signingrequired = false` - **WebClient Running** — 计算机对象上的 `webclient = true`(HTTP coerce 攻击面) - **SMBv1 Enabled** — `smb1enabled = true` ![Screen4](https://github.com/zrnge/Z-Hound/blob/main/Screens/zhound4.png) ### NTLM Relay 路径分析 当 SharpHound 收集了 SMB 签名和 WebClient 属性时: - **Relay Targets** — 不需要 SMB 签名的计算机,在节点详细信息中以 `RELAY TARGET` 徽章可视化 - **WebClient Hosts** — 运行 WebDAV WebClient 服务的计算机,以 `WEBCLIENT` 徽章可视化 - **Relay Chain 综合** — 构建完整的 `coerce → NTLMRelay → 目标 → DA` 路径,包括直接的 `AdminTo` relay 链条 - Relay 攻击面显示在计算机节点详细信息面板中:SMB Signing、SMB Signing Required、SMBv1、WebClient 状态 — 全部颜色编码 - `NTLMRelay` 虚拟边类型映射到 MITRE **T1557.001** (Adversary-in-the-Middle: SMB Relay) ### ADCS 漏洞检测 根据证书模板属性自动检测 ESC 漏洞: | ESC | 条件 | |---|---| | ESC1 | 注册者提供的 SAN + Client Auth EKU + 无需管理员批准 | | ESC2 | 任意用途 EKU 或空 EKU,无批准 | | ESC3 | Certificate Request Agent EKU | | ESC4 | 对模板的写入权限 (GenericWrite / WriteProperty / WriteDacl) | | ESC6 | 带有 `EDITF_ATTRIBUTESUBJECTALTNAME2` 标志的 CA | ### Azure / Entra ID 支持(完整) 加载 AzureHound 输出(可与其他数据一起或单独加载)以进行混合 AD + Azure 分析。 **解析的关系类型**(来自 AzureHound 数组): `GlobalAdmins`、`PrivilegedRoleAdmins`、`Owners`、`Contributors`、`UserAccessAdmins`、`AddMembers`、`AddOwners`、`ResetPasswords`、`AddSecrets`、`GetSecretUsers`、`GetKeyUsers`、`GetCertificateUsers`、`VMAdmins`、`RunCommandAdmins`、`GrantAppRoles`、`AppRoleAssignments`、`InboundTransitiveRoles` **支持的 Azure 节点类型:** `AZUser`、`AZGroup`、`AZDevice`、`AZApp`、`AZServicePrincipal`、`AZTenant`、`AZSubscription`、`AZResourceGroup`、`AZVM`、`AZKeyVault`、`AZMgmtGroup` **Azure 特定功能:** - `AZTenant` 标记为高价值(相当于 Domain root 的 Azure 等价物) - **Azure GA** 快速查询 — 提取 Global Admin 和 Privileged Role Admin 持有者;查找本地 → Azure GA 混合攻击路径 - Azure 节点详细信息面板:Tenant ID、App ID、Object ID、SP Type、持有/授予的角色、入站高风险权限(AZAddSecret、AZExecuteCommand、AZResetPassword、AZOwns) - Report 面板中的 Azure 部分:对象清单、GA 列表、Priv Role Admins、应用机密访问、VM 执行、密码重置 - Azure 发现结果包含在 HTML 报告导出中 ### 节点详细信息面板 **Computer 节点:** - **NTLM Relay 攻击面** — SMB Signing、SMB Signing Required、SMBv1、WebClient 状态,带有颜色编码的风险徽章 - 本地管理员(显式 / 展开 / 外部域) - 入站执行权限 — RDP / DCOM(直接和组委派) - SQL 管理员 - 活动会话 *(可点击)* **User 节点:** - 观察到的会话 *(可点击)* - 同一 OU 中的同级对象 - 可达的高价值目标 *(可点击)* - 有效的入站 GPO - 出站 / 入站对象控制 - 风险标志:Kerberoastable、AS-REP Roastable、Unconstrained Delegation、SID History **Group 节点:** - 组成员的会话 *(可点击)* - 可达的高价值目标 *(可点击)* - 直接 / 传递 / 外部成员 *(可点击)* - 执行权限(RDP / DCOM) - 出站 / 入站对象控制 **Azure 节点:** - Tenant ID、App ID、Object ID、SP Type - 持有的角色和授予此对象的角色 - 入站 AZAddSecret / AZExecuteCommand / AZResetPassword / AZOwns 计数 - 出站高风险权限计数 - 可达的高价值目标 ** / GPO / Domain 节点:** 完整的 BloodHound 风格详细信息,包括信任关系、DCSync 主体、有效 GPO、证书模板。 ### 统计栏 数据加载时的实时指标: ``` Objects | Edges | Kerberoastable | AS-REP | DCSync Risk | Critical ACLs | Unconstrained Deleg | Cert Templates | Relay Targets | WebClient | Paths to DA ``` ### 导出 | 格式 | 内容 | |---|---| | **PNG** | 2× 分辨率的图快照 | | **CSV** | 三部分:节点(名称、类型、风险评分、标志、SID、域)+ 边(from、to、label、isACL、riskWeight、MITRE)+ ADCS 发现 | | **HTML** | 完整的独立评估报告 — 执行摘要、关键发现、凭据窃取、委派、ADCS、NTLM Relay、Azure/Entra ID、高风险节点 Top 列表、攻击路径。浅色主题,可打印,无外部依赖。 | ## 识别的边类型(50+) | 类别 | 边标签 | |---|---| | Membership / Structure | MemberOf、Contains、GPLink | | ACL | GenericAll、WriteDacl、WriteOwner、Owns、ForceChangePassword、AddMember、AddKeyCredentialLink、ReadLAPSPassword、AllExtendedRights、GenericWrite、WriteProperty、AddSelf、WriteAccountRestrictions、WriteSPN、ReadGMSAPassword、AddAllowedToAct、AddMembers | | Execution | AdminTo、CanRDP、ExecuteDCOM、CanPSRemote、SQLAdmin、HasSession、CanAbuseGPO | | Delegation | AllowedToDelegate、AllowedToAct、SPNTarget | | DCSync | GetChanges、GetChangesAll | | ADCS | Enroll、ManageCA、ManageCertificates、ADCSESC1–ADCSESC13 | | Trust | TrustedBy | | **NTLM Relay** | **NTLMRelay**(合成 — T1557.001) | | Azure | AZGlobalAdmin、AZPrivilegedRoleAdmin、AZOwns、AZContributor、AZAddMembers、AZAddOwner、AZAddSecret、AZGetSecrets、AZGetKeys、AZGetCertificates、AZExecuteCommand、AZVMAdminLogin、AZVMContributor、AZResetPassword、AZUserAccessAdmin、AZGrantAppRoles、AZHasRole、AZMGAddMember、AZMGAddOwner、AZMGAddSecret、AZMGGrantAppRoles、AZMGGrantRole | | Misc | SyncLAPSPassword、WriteGPLink、CoerceToTGT、SyncedToEntraUser、HostsCAService | 未知的边类型会被自动捕获并添加到快速视图中。 ## 支持的输入文件 | 文件模式 | 内容 | |---|---| | `*computers*.json` | 计算机对象、会话、本地管理员、SMB 属性 | | `*users*.json` | 用户对象、SPN、属性 | | `*groups*.json` | 组成员身份 | | `*domains*.json` | 域信任关系、ACL | | `*ous*.json` | 组织单位结构、GPLinks | | `*gpos*.json` | 组策略对象 | | `*containers*.json` | 容器对象 | | `*certtemplates*.json` / `*cas*.json` | ADCS 证书模板 | | AzureHound `Az_*.json` | Azure / Entra ID 对象和关系 | ## 技术栈 | 库 | 版本 | 用途 | |---|---|---| | [Cytoscape.js](https://cytoscape.js.org/) | 3.28.1 | 图渲染 | | [cytoscape-dagre](https://github.com/cytoscape/cytoscape.js-dagre) | 2.5.0 | 层次布局 | | [dagre](https://github.com/dagrejs/dagre) | 0.8.5 | 布局引擎 | | [JSZip](https://stuk.github.io/jszip/) | 3.10.1 | 客户端 ZIP 提取 | | [Tailwind CSS](https://tailwindcss.com/) | CDN | 样式 | 单 HTML 文件 — 无需构建步骤、无后端、无框架、无安装。 ## 系统要求 - 现代浏览器(Chrome 90+、Firefox 88+、Edge 90+) - 仅在首次加载时需要互联网连接(此后 CDN 脚本会被缓存 — 之后可完全离线使用) - SharpHound 收集输出 — ZIP 或单个 JSON 文件 - AzureHound 输出 — ZIP(可选,用于 Azure 分析) ## 对比 BloodHound / PlumHound | | Z-Hound | BloodHound CE | PlumHound | |---|---|---|---| | 零安装 | ✅ | ❌ | ❌ | | 离线 / 物理隔离 | ✅ | 部分 | ❌ | | 交互式图 | ✅ | ✅ | ❌ | | HTML 报告导出 | ✅ | ❌ | ✅ | | 风险评分 (0–100) | ✅ | ❌ | 部分 | | NTLM relay 路径 | ✅ | ❌ | ❌ | | ADCS ESC 检测 | ✅ | 部分 | 部分 | | 边上的 MITRE ATT&CK | ✅ | ❌ | ❌ | | Azure / Entra ID | ✅ 完整 | ✅ | 部分 | | 持久化数据存储 | ❌ | ✅ (Neo4j) | ✅ | | 自定义 Cypher 查询 | ❌ | ✅ | ✅ | | 数百万对象规模 | ❌ | ✅ | ✅ | ## 已知限制 - 包含 >5 万条边的数据集可能会拖慢浏览器 — 请使用快速视图过滤器缩小图范围 - 无会话持久化 — 重新加载页面需要重新上传收集的数据 - NTLM relay 功能要求 SharpHound 已收集 `signing`、`signingrequired` 和 `webclient` 属性(在扩展 / BloodHound CE 收集中可用);标准收集不会显示 relay 数据 - 如果未包含外部域对象的 JSON 文件,它们可能显示为未解析的 SID ## 免责声明 Z-Hound 仅旨在用于 **授权的安全评估、渗透测试和防御性安全工作**。请仅在您拥有明确书面许可进行测试的环境中使用它。 ## 许可证 MIT
标签:Active Directory, AzureHound, Azure安全, BloodHound, CTF学习, DNS解析, HTML5, Neo4j替代, Plaso, SharpHound, Web安全, 交互式图表, 内网渗透, 前端, 协议分析, 单文件, 后端开发, 多模态安全, 开源项目, 攻击图, 攻击路径分析, 数据可视化, 无服务器, 权限提升, 横向移动, 离线工具, 编程规范, 网络安全, 蓝队分析, 隐私保护, 零安装