引言:Windows Server 2025 引入了委托托管服务账户(Delegated Managed Service Accounts,简称 dMSA),为传统服务账户提供了一种更安全的替代方案。它通过将身份验证绑定到特定机器身份,实现了更强的安全性。与标准服务账户不同,dMSA 实现了密码自动管理,支持多台服务器,并防止诸如 Kerberoasting 的凭据收集攻击。
dMSA 的认证秘密来源于机器账户凭据,由域控制器(DC)加密,从不在本地存储,从而具备极强的抵抗力,难以被攻破。
在迁移过程中,dMSA 会取代现有的服务账户,同时保持对先前授权资源的访问,阻止使用旧凭据的认证。此外,“凭据防护(Credential Guard,CG)”能保护存储的密钥不被窃取,确保只有在 Active Directory 中映射的授权设备才能使用 dMSA。这种方法显著减少了攻击面,简化了身份管理,使 dMSA 成为现代 Active Directory 环境中关键的安全增强功能。
服务账户概述:服务账户是专用于在 Windows 环境中运行服务和应用程序的账户。传统服务账户常需手动管理密码,这增加了凭据泄露、误用和配置错误的风险。它们通常使用静态密码,因此容易成为 Kerberoasting 和 Pass-the-Hash 等攻击的目标。
托管服务账户(MSA)是在 Windows Server 2008 R2 和 Windows 7 中引入的,作为域账户每 30 天自动轮换密码。
为进一步降低风险,Windows Server 2012 引入了组托管服务账户(gMSA),对标准服务账户进行了增强。gMSA 提供自动密码轮换,支持多台服务器分布式工作负载,并将密码安全存储在 Active Directory 中,仅允许授权机器通过 Kerberos 检索密码。
攻击流程:
假设我们对“Managed Service Accounts”容器拥有“Generic All”(完全控制)权限。
默认情况下,用户可以枚举该容器,但无法访问其子对象。
我们可以使用以下命令验证是否拥有“Generic All”权限:
dsacls "CN=Managed Service Accounts,DC=kingdom,DC=local"
我们也可以通过“Active Directory 用户和计算机”工具检查权限。
更改继承级别:即便我们对容器拥有完全控制权限,但如果没有推送权限继承,仍可能无法读取子对象,仅能看到一个无属性的“stub”对象。
Active Directory 中的 ACL 继承基于父子关系运作。MSA 容器是父对象,而每个单独的 MSA(如 dMSA-POC)是子对象。
要强制将完全控制权限继承到子对象,我们可以运行以下命令:
dsacls "CN=Managed Service Accounts,DC=kingdom,DC=local" /G "KINGDOMpoc:GA" /T /I:S
其中::GA = Full Control,/T = 递归,/I:S = 继承到子树
再次使用 dsacls 可确保我们对容器中子对象拥有完全控制权限。
在完全控制子对象之后,我们就可以完全看到容器中的对象。
我们还可以获得 dMSA 对象的所有权(默认情况下是 domain admins 组为所有者)。
实现持久化:我们可以通过创建另一个我们拥有完全控制权限的 dMSA 实现持久化。此外,还可以通过将我们的用户或机器账户添加到 PrincipalAllowedToRetrieveManagedPassword 字段,成为有权接收托管密码的实体。
缓解措施:首先启用仅适用于 Windows 11 24H2 和 Windows Server 2025 或更高版本的设置。
在客户端设备上,需激活以下组策略设置:
为了进行监控,以下事件描述了对具有“写入”权限的对象的访问:
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...