
GPOHound — 已更新!
攻击性GPO转储与分析工具,利用并丰富BloodHound数据
GPOHound
GPOHound 是一款用于从 SYSVOL 共享中提取和分析组策略对象(GPO)的工具。
它提供结构化的、形式化的格式,帮助发现在 Active Directory 环境中的错误配置、不安全设置以及权限提升路径。
该工具与 BloodHound 的 Neo4j 数据库集成,将其用作 Active Directory 信息的类似 LDAP 来源,同时通过基于分析结果添加新的关系(边)和节点属性来丰富数据。
功能
转储
- 以结构化的 JSON 或树形格式转储 GPO
- 处理多个域
- 将 GPO 名称与 GPO GUID 关联
- 按 GPO 文件、GPO GUID 和域过滤输出
- 使用正则表达式搜索键值对
分析
- 按受影响对象(例如本地组、注册表)分组设置
- 检测添加到本地特权组的成员
- 检测不安全的注册表设置、存储的凭据和特权权限
- 支持解密 VNC 凭据和 GPP 密码
- 查找受 GPO 影响的域、容器和 OU
- 获取应用于特定用户、计算机、OU、容器或域的 GPO
- 通过关系和属性丰富 BloodHound 数据
安装
使用 pip 安装
git clone "https://github.com/cogiceo/GPOHound"
cd GPOHound
pip install .
使用 pipx 安装
pipx install "git+https://github.com/cogiceo/GPOHound"
为 Neo4j 设置 APOC
你需要设置 Neo4j APOC 以进行 BloodHound 数据丰富:
-
如果你使用的是标准 Neo4j 安装,可以通过将 APOC
jar文件复制到插件文件夹,然后重启 Neo4j 来启用 APOC:cp /var/lib/neo4j/labs/apoc-* /var/lib/neo4j/plugins/ neo4j restart -
如果你使用“Docker Compose”安装 Neo4j,请添加环境变量
NEO4J_PLUGINS=["apoc"]:neo4j: image: neo4j:latest environment: - NEO4J_PLUGINS=["apoc"]
有关更多详细信息或其他安装方法,请参阅官方 APOC 文档。
添加 BloodHound 查询
要可视化 GPOHound 添加的关系和属性,你可以从 customqueries.json 文件导入自定义查询到 BloodHound。默认情况下,此文件位于 ~/.config/bloodhound/customqueries.json。
先决条件
转储 SYSVOL
首先从域控制器下载 SYSVOL 内容。
-
下载完整的
SYSVOL:gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD -
仅下载 GPO:
gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD --gpos -
排除部分内容下载:
gpohound sysvol --dc $DC_HOST -u $USER -p $PASSWORD --exclude '/Policydefinitions/','/scripts/' --max-size 100
转储 LDAP
从 LDAP 检索所有必要数据:
gpohound ldap --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD
BloodHound
为了进行 BloodHound 数据丰富,你必须使用诸如 bloodhound.py 或 SharpHound.exe 之类的收集器收集 BloodHound 数据,并将收集到的数据导入 BloodHound 界面。
使用
example.zip 中提供了示例 GPOHound 文件。使用 unzip example.zip 解压它们。
有关自定义默认值和配置的说明,请参见 CONFIG.md。
gpohound --neo4j-user $USER --neo4j-pass $PASS dump
gpohound --neo4j-user $USER --neo4j-pass $PASS analysis
解析
gpohound parse "gpos/sysvols/$DOMAIN/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol"
转储
gpohound dump
gpohound dump --list
gpohound dump --guid 31B2F340-016D-11D2-945F-00C04FB984F9
gpohound dump --policies scripts psscripts
gpohound dump --search 'VNC.*Server' --show
分析
gpohound analysis
gpohound analysis --affected
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL'
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --list
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --dump
gpohound analysis --enrich
gpohound analysis --enrich-ce
当前分析与丰富
[!IMPORTANT]
- 安全筛选器、WMI 筛选器和项目级定位等条件不会被解释。
- 不会模拟 GPO 冲突,以避免遗漏有效的设置。
本地组
-
检测登录时分配给特权本地组的用户
-
检测重命名的内置特权本地组
-
检测使用“首选项进程变量”(例如 %ComputerName%、%DomainName%)添加到特权本地组的受托人
-
检测使用
sAMAccountName劫持的可滥用受托人 -
检测添加到特权本地组的任何受托人:
组 边 Administrators AdminToRemote Desktop Users CanRDPDistributed COM Users ExecuteDCOMRemote Management Users CanPSRemoteBackup Operators CanPrivEscPrint Operators CanPrivEscNetwork Configuration Operators CanPrivEsc
注册表
| 分析 | 属性 |
|---|---|
| “Everyone” 组包含“Anonymous Logon” | — |
| SMB 服务器会话签名未启用 | smbSigningEnabled: false |
| SMB 服务器会话签名非必需 | smbSigningRequired: false |
| 支持 NTLMv1 身份验证 | NTLMv1Support: true |
| Windows 自动登录默认密码 | — |
| VNC 凭据(通用:RealVNC、TightVNC、TigerVNC 等) | *VNC*PASS*(各种) |
| FileZilla 存储的密码 | — |
| PuTTY 代理密码 | — |
| TeamViewer 存储的凭据 | — |
| WinSCP 保存的会话 | — |
| Picasa 存储的密码 | — |
特权权限
默认特权受托人以及 SID 以 S-1-5-8 开头的服务帐户会被排除在分析之外。
| 权限 | 描述 | 边 |
|---|---|---|
| SeDebugPrivilege | 允许用户调试并与任何进程交互 | CanPrivEsc |
| SeBackupPrivilege | 授予对敏感文件的访问权限 | CanPrivEsc |
| SeRestorePrivilege | 在还原期间绕过对象权限 | CanPrivEsc |
| SeAssignPrimaryTokenPrivilege | 启用令牌模拟以提升至 SYSTEM | CanPrivEsc |
| SeImpersonatePrivilege | 允许在另一个用户的上下文中创建进程 | CanPrivEsc |
| SeTakeOwnershipPrivilege | 允许用户获取系统对象的所有权 | CanPrivEsc |
| SeTcbPrivilege | 授予作为操作系统一部分执行的能力 | CanPrivEsc |
| SeCreateTokenPrivilege | 允许创建身份验证令牌 | CanPrivEsc |
| SeLoadDriverPrivilege | 授权加载/卸载驱动程序 | CanPrivEsc |
| SeManageVolumePrivilege | 授予卷或磁盘管理权限 | CanPrivEsc |
| SeEnableDelegationPrivilege | 允许计算机和用户帐户被信任用于委派 |
改进
- 改进日志记录
- 集成 LDAP
- 集成 SMB
- 解析其余扩展
- Web 界面
- 高亮显示 GPO 之间的潜在冲突
GPO 文档
SYSVOL 和 LDAP
- [MS-GPAC] 审核配置扩展
- [MS-GPCAP] 中央访问策略协议扩展
- [MS-GPEF] 加密文件系统扩展
- [MS-GPFAS] 防火墙和高级安全数据结构
- [MS-GPFR] 文件夹重定向协议扩展
- [MS-GPIE] Internet Explorer 维护扩展
- [MS-GPNAP] 网络访问保护(NAP)扩展
- [MS-GPNRPT] 名称解析策略表(NRPT)数据扩展
- [MS-GPOL] 核心协议
- [MS-GPPREF] 首选项扩展数据结构
- [MS-GPREG] 注册表扩展编码
- [MS-GPSB] 安全协议扩展
- [MS-GPSCR] 脚本扩展编码
- [MS-GPSI] 软件安装协议扩展
仅 LDAP
- [MS-GPDPC] 已部署打印机连接扩展
- [MS-GPWL] 无线/有线协议扩展