Active Directory 标准用户可以重置其他用户帐户的密码

Active Directory 标准用户可以重置其他用户帐户的密码

Active Directory,最近我们进行了一次笔试,发现标准用户可以重置其他用户帐户的密码。

他们将其归类为“不安全的 DACL 权限”。

我尝试找到授予重置密码权限的特定权限以将其删除,但我找不到适用于“域用户”并授予他们修改其他对象密码的权限。

我想知道是否有一个工具可以生成一份报告,说明谁在这个环境中拥有哪些权限,以及我如何解决这个问题并拒绝域用户重置其他用户密码的能力。

我们确实允许用户重置自己的密码,并且我们有一个允许密码写回的混合环境。

这是在 AD 的 root 权限下显示的内容: 权限

这是我在域用户的“有效权限”下看到的内容: 有效访问

可能有人过去曾将执行密码重置的权限委托给某个组,但我似乎找不到它。此 AD 的根目录中有 30-40 个权限条目,我真的不知道其中哪一个权限允许密码重置。

任何帮助都将不胜感激。谢谢!

答案1

说实话,我会要求渗透测试人员提供更多细节。正如所描述的,不清楚测试人员是否说所有用户都可以重置所有其他用户的密码。也许只有一个用户(不受 AdminSDHolder(adminCount属性 = 1?)保护)可以重置另一个用户的密码。或者介于两者之间的所有其他排列。渗透测试人员应提供至少一个示例或描述哪个 DACL,并标记问​​题的潜在范围。

与此同时,您的用户帐户在哪里?希望默认用户容器中没有太多用户(管理员除外)。权限可以在 OU 级别委派,因此如评论中所建议的那样,尝试在您的帐户 OU 中创建几个新帐户,看看其中一个帐户是否可以重置另一个帐户的密码(确保有足够的时间进行复制和任何帐户修改过程生效)。当然,如果您有多个用户帐户 OU,请在每个 OU 中尝试。

对于一款不错的免费软件工具,它可以在 GUI 界面中显示 AD DACL,并允许您在 OU 和其他实用功能之间进行比较,以及其他与 AD 和 LDAP 相关的实用程序,我强烈推荐 NetTools (https://nettools.net/)。

答案2

此 PowerShell 脚本显示 ACL 并启用审核

# Import the Active Directory module
Import-Module ActiveDirectory

# Specify the AD root path
$adRootPath = "DC=yourdomain,DC=com"

# Get permissions for the AD root
$acl = Get-Acl "AD:\$adRootPath"

# Output all permissions
$acl.Access | Format-Table

# Enable auditing for password changes and resets
$auditPolicy = Get-ObjectAcl -Path "AD:\$adRootPath" -Audit
$auditPolicy | Add-Ace -Principal "Everyone" -AuditRights "WriteProperty" -ApplyTo "ThisObjectOnly"
$auditPolicy | Add-Ace -Principal "Everyone" -AuditRights "ExtendedRight" -AuditType "DS-Replication-Get-Changes" -ApplyTo "ThisObjectOnly"
Set-Acl -Path "AD:\$adRootPath" -AclObject $auditPolicy

您还可以使用 Bloodhound 或 AD ACL 扫描器等工具,它们应该能够显示不安全的广告权限

答案3

Robin Granberg 创建了一个基于 Powershell 的优秀工具,该工具带有 GUI,用于审核 Active Directory 中的所有 ACL。它输出为 CSV/Excel 格式:

https://github.com/canix1/ADACLScanner

另一件需要考虑的事情是,默认情况下,“每个人”都可以直接在 AD 中的用户对象上进行“更改密码”:https://support.webactivedirectory.com/portal/en/kb/articles/why-everyone-has-permissions-to-change-passwords-in-active-directory(编辑:文章中引用的知识库已消失,这里是存档版本:https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/242795) 请注意,这直接作用于用户对象,而不是 OU 或根。这是一个遗留问题,因此在删除它时要小心,但如果这样做,除了从所有当前用户对象中删除它之外,您还必须修改 AD 架构,以防止新用户拥有它。但由于“重置密码”和“更改密码”是两个不同的 ACL 权限,您的渗透测试人员可能会发现其他问题。(编辑 2:澄清和更正)

就像这里的其他人所说的那样,在进行任何更改之前,请先与您的笔测试人员交谈以获取详细信息。

相关内容