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 安全, 多人体追踪, 活动目录审计