BadSuccessor攻击检测工具 - 发现Windows Server 2025中的Active Directory权限提升漏洞
BadSuccessor攻击检测工具
项目描述
BadSuccessor是一个针对Windows Server 2025中Active Directory权限提升漏洞的检测工具集。该工具能够帮助安全团队识别环境中存在风险的OU(组织单位)和身份,检测可能被利用的BadSuccessor攻击路径。
BadSuccessor攻击利用了Windows Server 2025新引入的委托管理服务账户(dMSA)功能中的漏洞,在默认配置下允许攻击者以Active Directory中任何用户的权限执行操作,且目前微软尚未提供补丁。
功能特性
- 风险识别:检测域中哪些身份具有创建dMSA的权限
- 影响范围分析:识别哪些OU可能受到BadSuccessor攻击影响
- 轻量级检测:仅需要域读取权限即可运行
- 智能过滤:自动排除内置特权组(域管理员、企业管理员等)
- 清晰输出:以表格形式展示高风险身份和对应OU
安装指南
- 
确保系统满足以下要求: - Windows PowerShell 5.1或更新版本
- Active Directory模块
- 域读取权限
 
- 
下载脚本文件: Invoke-WebRequest -Uri "https://raw.githubusercontent.com/akamai/BadSuccessor/main/Get-BadSuccessorOUPermissions.ps1" -OutFile "Get-BadSuccessorOUPermissions.ps1"
- 
直接运行脚本: .\Get-BadSuccessorOUPermissions.ps1
使用说明
基础使用
# 运行检测脚本
.\Get-BadSuccessorOUPermissions.ps1
# 示例输出格式
Identity          OUs
--          ---
CORP\svc_app      {OU=Apps,DC=corp,DC=local}
CORP\UserCreators {OU=Tier1,OU=IT,DC=corp,DC=local}
典型使用场景
- 安全审计:定期运行脚本检查环境中是否存在新的风险身份
- 权限收紧:根据输出结果审查并移除不必要的OU权限
- 监控加强:对识别出的高风险身份加强监控措施
核心代码
<#
.SYNOPSIS
    Detects identities with permissions to create dMSAs in the domain
    
.DESCRIPTION
    This script identifies which identities have permissions to create dMSAs in OUs,
    highlighting where the BadSuccessor attack could be executed.
    
.NOTES
    - Requires only domain read permissions
    - Excludes built-in privileged groups
    - Does not calculate effective permissions or expand group memberships
#>
# 获取域中所有非特权用户
$nonPrivilegedIdentities = Get-ADUser -Filter * | 
    Where-Object {
        -not ($_.MemberOf -match "Domain Admins|Enterprise Admins|Administrators")
    }
# 获取所有OU并检查dMSA创建权限
$allOUs = Get-ADOrganizationalUnit -Filter *
$results = @()
foreach ($ou in $allOUs) {
    $acl = Get-Acl "AD:$($ou.DistinguishedName)"
    
    foreach ($identity in $nonPrivilegedIdentities) {
        # 检查是否有创建dMSA的权限
        if (Test-dMSAPermission -Acl $acl -Identity $identity) {
            $results += [PSCustomObject]@{
                Identity = $identity.SamAccountName
                OUs      = $ou.DistinguishedName
            }
        }
    }
}
# 输出结果
$results | Format-Table -AutoSize
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码

 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号