
BadSuccessor是一个针对Windows Server 2025中Active Directory权限提升漏洞的安全检测工具。该工具利用PowerShell脚本帮助安全团队识别环境中存在风险的权限配置,特别是针对新引入的委托管理服务账户(dMSA)功能的滥用风险。
.\Get-BadSuccessorOUPermissions.ps1直接在PowerShell中运行脚本即可获取分析结果:
.\Get-BadSuccessorOUPermissions.ps1脚本执行后将生成类似以下格式的表格输出:
Identity | OUs |
|---|---|
CORP\svc_app | OU=Apps,DC=corp,DC=local |
CORP\UserCreators | OU=Tier1,OU=IT,DC=corp,DC=local |
# 获取所有非特权用户具有dMSA创建权限的OU
function 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)"
}原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。