fatihpurtas/Kerberoastable-scanner

GitHub: fatihpurtas/Kerberoastable-scanner

一款无需管理员权限的 PowerShell 脚本,通过 LDAP 查询审计 Active Directory 中存在 Kerberoasting 风险的服务账户并导出报告。

Stars: 0 | Forks: 0

# Kerberoastable 账户扫描器 此 PowerShell 脚本会审计 **Active Directory** 中的 **Kerberoastable 服务 账户**(即设置了服务主体名称或 SPN 的用户对象),并将 结果导出到 CSV 文件。 ## 目的 任何经过身份验证的域用户都可以为 设置了 SPN 的账户请求 Kerberos 服务票据 (TGS)。该票据的一部分 使用服务账户的密码哈希进行加密,因此攻击者可以请求并 **离线**破解它(例如 Hashcat 模式 13100)。这被称为 **Kerberoasting**。 仍然允许 **RC4**(或 DES)并拥有**旧密码**的账户 最容易破解,因此脚本会同时突出显示这两者。 - 检测所有设置了 `servicePrincipalName` 的**用户**对象(不包括计算机账户,因为它们的机器密码既长又随机)。 - 排除 `krbtgt`,并且默认排除禁用的账户。 - 标记特权账户(`adminCount >= 1`)和弱加密 (RC4/DES)。 ## 主要功能 - 仅使用内置的 **System.DirectoryServices** 类,**不需要 ActiveDirectory 模块**。 - **无需管理员权限**即可运行;只需对 AD 具有读取权限。 - 可在已加入域的环境下运行,或通过 `-Server` 对特定 DC 运行。 - 将 `msDS-SupportedEncryptionTypes` 解码为可读列表,并计算密码期限。 - 分页 LDAP 查询(1000/页),适用于大型域。 ## 工作原理 1. 绑定到 `RootDSE` 以发现默认命名上下文(或使用 `-SearchBase`)。 2. 运行 LDAP 过滤器: (&(objectCategory=person)(objectClass=user)(servicePrincipalName=*)(!(sAMAccountName=krbtgt))) (除非使用 `-IncludeDisabled`,否则会附加 `(!(...:=2))` 子句以跳过已禁用的账户) 3. 解码加密类型,计算密码期限,并映射属性。 4. 导出结果并打印摘要。 ## 用法 ``` .\Kerberoastable.ps1 .\Kerberoastable.ps1 -Server dc01.example.com -OutputPath C:\Audit\kerberoast.csv .\Kerberoastable.ps1 -IncludeDisabled ``` | 参数 | 描述 | |-----------|-------------| | `-Server` | 直接查询的域控制器(`dc01.example.com` 或 `:636`)。 | | `-SearchBase` | 用于限定搜索范围的可分辨名称。 | | `-OutputPath` | CSV 输出路径。默认为 `.\kerberoastable_.csv`。 | | `-IncludeDisabled` | 包含已禁用的账户(默认排除)。 | ## CSV 列 Name, SamAccountName, Enabled, AdminCount, SpnCount, WeakEncryption, SupportedEncryption, PwdLastSet, PwdAgeDays, ServicePrincipalNames, DistinguishedName. ## 要求 - PowerShell 5.1 或更高版本 - 域连接(已加入域或可通过 `-Server` 访问的 DC) - 对 Active Directory 的读取权限 ## 安全影响 - **优先处理特权、弱加密、旧密码账户**,这些是攻击者的低成本突破口。 - 尽可能**使用组托管服务账户 (gMSA)**:其 240 字符的随机密码在实践中是无法破解的。 - **对于经典的服务账户**,设置长(25 个字符以上)随机密码并**禁用 RC4**(`msDS-SupportedEncryptionTypes` 仅设置为 AES)。 - **监控**请求大量带有 RC4 的 TGS 票据的单个主体(事件 ID 4769),将其作为 Kerberoasting 的信号。
标签:AI合规, Checkov, IPv6, Kerberoasting, Libemu, PowerShell, Terraform 安全, 多人体追踪, 活动目录审计