Active Directory 持久性 3:DSRM 持久性 v2

2022-01-24 16:46:04 浏览数 (1)

目录恢复模式帐户

每个域控制器都有一个用于 DC 的内部“Break glass”本地管理员帐户,称为目录服务还原模式 (DSRM) 帐户。DSRM 密码是在提升新 DC 时设置的,并且密码很少更改。

DSRM 帐户名称为“Administrator”,是域控制器的本地管理员帐户。 我们可以通过将本地 SAM 凭据转储到域控制器上来向 Mimikatz 确认这一点。

Mimikatz “token::elevate” “lsadump::sam” 退出

使用 DSRM 凭证(标准方法)

一旦您知道 DSRM 帐户密码(DC 上的本地管理员帐户),就可以使用一些技巧。

使用 DSRM 帐户登录 DC:

  1. 在目录服务还原模式下重新启动 ( bcdedit /set safeboot dsrepair )
  2. 无需重新启动即可访问 DSRM(Windows Server 2008 和更新版本)
    1. 将注册表项 DsrmAdminLogonBehavior 设置为 1
    2. 停止 Active Directory 服务
    3. 在控制台上使用 DSRM 凭据登录。
  3. 无需重新启动即可访问 DSRM(Windows Server 2008 和更新版本)
    1. 将注册表项 DsrmAdminLogonBehavior 设置为 2
    2. 在控制台上使用 DSRM 凭据登录。
  4. 远程桌面客户端连接到“控制台”时,即 Windows Server 2008 之前的“mstsc /console”和 Windows Server 2008 及更高版本的“mstsc /admin”。在 Windows Server 2008 R2 上测试。Windows Server 2012R2 似乎拒绝通过 RDP 控制台登录 DSRM。

DSRM 帐户是本地管理员帐户,所以让我们看看还有什么可能......

使用 DSRM 凭据的高级方法 (Windows 2012 R2)

这个帐户真正有趣的是,由于它是一个有效的本地管理员帐户,它可用于通过网络向 DC 进行身份验证(确保 DsrmAdminLogonBehavior regkey 设置为 2)。此外,攻击者不需要知道实际密码,只需要密码哈希即可。这意味着一旦攻击者获得 DSRM 帐户的密码哈希,就可以使用 Pass-the-Hash 将其“传递”到 DC,以便管理员通过网络对 DC 进行有效访问。这已在 Windows Server 2008 R2 和 2012 R2 域控制器上的有限实验室测试中成功测试。

Mimikatz “privilege::debug” “sekurlsa::pth /domain:ADSDC03 /user:Administrator /ntlm:7c08d63a2f48f045971bc2236ed3f3ac” 退出

访问域控制器的文件系统很好,但我们可以做得更好!

DSRM PTH 到 DCSync!

既然可以为 DSRM 帐户传递哈希,为什么不利用此访问权限来提取使用 Mimikatz DCSync 的任何域帐户的密码数据。我们可以针对特定的域控制器,并通过使用 DC 的短名称,我们强制 NTLM 身份验证。 Mimikatz “lsadump::dcsync /domain:lab.adsecurity.org /dc:adsdc03 /user:krbtgt

结论

如果攻击者可以在运行 Windows Server 2008 R2 或 2012 R2(DsrmAdminLogonBehavior regkey 设置为 2)的域控制器上获取 DSRM 帐户密码,则 DSRM 帐户可用于通过散列传递在网络上进行身份验证到 DC(强制 NTLM 身份验证)。这使攻击者能够在更改所有域用户和计算机密码时保留域控制器管理员权限。

DSRM 帐户现在提供了一种有用的攻击方法来提取域凭据,尽管它是一个“本地”管理员帐户。

非常感谢 Benjamin Delpy(Mimikatz 的作者)帮助解决这个问题!

减轻

唯一真正缓解此问题的方法是确保 DSRM 帐户密码对于每个域控制器都是唯一的,并且定期更改(至少与其他帐户密码一样频繁)。此外,确保 DsrmAdminLogonBehavior 注册表项 *not* 设置为 2 - 默认情况下此注册表项不存在。将此 regkey 设置为 1 会强制管理员停止目录服务服务以使 DSRM 登录正常工作。

注册表项 HKLMSystemCurrentControlSetControlLsaDsrmAdminLogonBehavior不应存在​​或设置为 1。

0 人点赞