fatihpurtas/ADDelegation-scanner

GitHub: fatihpurtas/ADDelegation-scanner

一个无需 AD 模块和管理员权限的 PowerShell 脚本,用于审计 Active Directory 中三类 Kerberos 委派配置并将结果导出为 CSV。

Stars: 0 | Forks: 0

# Active Directory 委派扫描器 此 PowerShell 脚本用于审计 **Active Directory** 的 **Kerberos 委派** 配置(非约束性、约束性和基于资源的),并将 结果导出至 CSV 文件。 ## 目的 Kerberos 委派允许服务向其他服务模拟用户。 错误配置的委派是导致域 完全沦陷的最常见路径之一,因此每个委派账户都应是已知且有正当理由的。 该脚本报告以下三个类别: | 类型 | 检测方式 | 风险 | |------|-------------|------| | **非约束性** | `userAccountControl` 位 `0x80000` (524288) | 最高。主机一旦被攻陷,就会捕获任何向其进行身份验证的用户的 TGT。域控制器合法拥有此属性,并被标记为 `IsDC = True`。 | | **约束性** | 设置了 `msDS-AllowedToDelegateTo` | 仅限于特定的目标服务。“协议转换”(任何身份验证协议)被单独列出,因为其风险更高。 | | **基于资源的 (RBCD)** | 设置了 `msDS-AllowedToActOnBehalfOfOtherIdentity` | 允许委派给该对象的主体将从安全描述符中解析并列出。 | ## 主要特性 - 仅使用内置的 **System.DirectoryServices** 类,**不需要 ActiveDirectory 模块**。 - **无需管理员权限**即可运行;只需对 AD 的读取权限。 - 一次运行即可覆盖**用户和计算机**的所有三种委派类型。 - 从原始安全描述符解析 RBCD 主体以获取账户名称。 - 标记域控制器,以便过滤掉预期的非约束性委派。 - 分页 LDAP 查询(每页 1000 条),适用于大型域。 ## 工作原理 1. 绑定到 `RootDSE` 以发现默认命名上下文(或使用 `-SearchBase`)。 2. 运行三个 LDAP 搜索: - `(userAccountControl:1.2.840.113556.1.4.803:=524288)` 用于非约束性委派 - `(msDS-AllowedToDelegateTo=*)` 用于约束性委派 - `(msDS-AllowedToActOnBehalfOfOtherIdentity=*)` 用于 RBCD 3. 对每个对象进行分类,解析 RBCD 主体,并标记 DC。 4. 导出合并的结果并打印摘要。 ## 用法 ``` .\ADDelegation.ps1 .\ADDelegation.ps1 -Server dc01.example.com -OutputPath C:\Audit\delegation.csv .\ADDelegation.ps1 -IncludeDisabled ``` | 参数 | 描述 | |-----------|-------------| | `-Server` | 直接查询的域控制器(`dc01.example.com` 或 `:636`)。 | | `-SearchBase` | 用于限定搜索范围的可分辨名称。 | | `-OutputPath` | CSV 输出路径。默认为 `.\ad_delegation_.csv`。 | | `-IncludeDisabled` | 包含已禁用的账户(默认排除)。 | ## CSV 列 Name, SamAccountName, ObjectType, Enabled, DelegationType, IsDC, Targets, DistinguishedName。 ## 要求 - PowerShell 5.1 或更高版本 - 域连接(已加入域或可通过 `-Server` 访问 DC) - 对 Active Directory 的读取权限 ## 安全影响 - **消除非域控制器上的任何非约束性委派**。迁移到约束性或基于资源的委派。 - **将敏感账户添加到受保护用户组**,和/或将它们标记为“账户敏感,无法被委派”,以便它们永远不会被委派。 - **仔细审查带有协议转换的约束性委派**账户,因为它们可以获取从未向其进行身份验证的用户的票据。 - **审计 RBCD 写入者**:任何能够写入对象 `msDS-AllowedToActOnBehalfOfOtherIdentity` 属性的人,都可以针对该对象发起委派攻击。
标签:Active Directory, AI合规, Checkov, IPv6, Kerberos委派, Libemu, Plaso, PowerShell, 多人体追踪, 配置检查