写点什么

Windows Server 2025 Active Directory 权限提升漏洞检测工具

作者:qife122
  • 2025-09-04
    福建
  • 本文字数:1558 字

    阅读完需:约 5 分钟

BadSuccessor - Active Directory 权限提升漏洞检测工具

项目描述

BadSuccessor 是一个针对 Windows Server 2025 中 Active Directory 权限提升漏洞的安全检测工具。该工具利用 PowerShell 脚本帮助安全团队识别环境中存在风险的权限配置,特别是针对新引入的委托管理服务账户(dMSA)功能的滥用风险。

功能特性

  • 权限分析: 自动检测域中具有创建 dMSA 权限的身份

  • 组织单位识别: 定位存在 BadSuccessor 攻击风险的 OU

  • 安全过滤: 自动排除内置特权组(域管理员、企业管理员等)

  • 轻量级运行: 仅需要域读取权限,无需高级特权

  • 环境兼容: 适用于默认配置的 Windows Server 2025 环境

安装指南

系统要求

  • Windows PowerShell 5.1 或更高版本

  • Active Directory 模块

  • 域环境读取权限

安装步骤

  1. 克隆或下载本仓库到本地

  2. 确保已安装 Active Directory PowerShell 模块

  3. 以域用户身份运行 PowerShell

  4. 执行脚本:.\Get-BadSuccessorOUPermissions.ps1

使用说明

基础使用

直接在 PowerShell 中运行脚本即可获取分析结果:


.\Get-BadSuccessorOUPermissions.ps1
复制代码

输出示例

脚本执行后将生成类似以下格式的表格输出:


结果解读

  • Identity: 具有创建 dMSA 权限的用户或服务账户

  • OUs: 对应身份具有权限的组织单位列表

  • 建议审查每个身份的特权级别和监控状态

核心代码

权限检测核心逻辑

# 获取所有非特权用户具有dMSA创建权限的OUfunction Get-dMSACreationPermissions {    $OUs = Get-ADOrganizationalUnit -Filter * -Properties nTSecurityDescriptor    $results = @()        foreach ($OU in $OUs) {        $acl = $OU.nTSecurityDescriptor        $accessRules = $acl.Access                foreach ($rule in $accessRules) {            if ($rule.ActiveDirectoryRights -match "CreateChild") {                if ($rule.ObjectType -eq $dMSA_ObjectGuid) {                    # 记录具有权限的身份和OU                    $result = [PSCustomObject]@{                        Identity = $rule.IdentityReference                        OU = $OU.DistinguishedName                    }                    $results += $result                }            }        }    }    return $results}
复制代码

特权组过滤机制

# 排除内置特权组$excludedGroups = @(    "DOMAIN\Domain Admins",    "DOMAIN\Enterprise Admins",    "DOMAIN\Schema Admins",    "DOMAIN\Administrators")
function Filter-PrivilegedIdentities { param($results) $filteredResults = @() foreach ($result in $results) { $isPrivileged = $false foreach ($group in $excludedGroups) { if ($result.Identity -like $group) { $isPrivileged = $true break } } if (-not $isPrivileged) { $filteredResults += $result } } return $filteredResults}
复制代码

结果汇总与输出

# 主执行逻辑try {    Write-Host "正在分析Active Directory权限配置..." -ForegroundColor Green        # 获取dMSA对象GUID    $dMSA_ObjectGuid = (Get-ADObject -SearchBase (Get-ADRootDSE).schemaNamingContext -Filter {Name -eq "msDS-GroupManagedServiceAccount"}).ObjectGUID        # 检测权限配置    $rawResults = Get-dMSACreationPermissions        # 过滤特权组    $finalResults = Filter-PrivilegedIdentities -results $rawResults        # 输出结果    $finalResults | Format-Table -AutoSize    } catch {    Write-Error "执行过程中发生错误: $($_.Exception.Message)"}
复制代码


更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife122

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
Windows Server 2025 Active Directory权限提升漏洞检测工具_PowerShell_qife122_InfoQ写作社区