首页
搜索 搜索
当前位置:商业资讯 > 正文

基于AD Event日志实时检测DSRM后门

2023-01-12 12:33:33 程序员客栈

01、简介


(资料图片)

每个域控制器都有一个目录还原模式(DSRM)帐户,它的密码是在安装域控时设置的,实际上它对应的就是sam文件里的本地管理员“administrator”,基本很少会被重置,因此有着极强的隐蔽性。攻击者通过获取域控的DSRM密码,就可以使用帐户通过网络登录到域控服务器,从而达到权限维持的目的。

域内权限维持的方式有很多,每增加一条安全检测规则,就多一层安全保障。针对DSRM后门,基于AD Event日志能够帮助我们提供什么维度的检测,我们通过一个后门利用实例来看一下。

02、利用方式

(1)获取域内用户Hash

使用mimikatz查看域内用户test的NTLM Hash。

mimikatz # privilege::debugmimikatz # lsadump::lsa /patch /name:test

(2)将DSRM帐户和域用户的NTLM Hash同步

使用DSRM的密码和指定域用户test的密码进行同步,在命令行环境中使用ntdsutil工具重置DSRM管理员密码。

(3)抓取DSRM密码

因同步域内用户test的NTLM Hash,可以发现,DSRM Hash 和域用户test的NTLM Hash一致。

mimikatz#privilege::debugmimikatz # token::elevatemimikatz # lsadump::sam

(4)修改DSRM登录方式

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

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

如果要使用 DSRM 账号通过网络登录域控制器,需要将该值设置为 2。

修改注册表:

reg add "HKLM\System\CurrentControlSet\Control\Lsa" /f /v DsrmAdminLogonBehavior /t REG_DWORD /d 2

(5)使用DSRM远程登录

在域成员服务器上使用DSRM进行远程登录,注意domain使用域控的主机名。

mimikatz # privilege::debugmimikatz # sekurlsa::pth /user:administrator /domain:win-dc01 /ntlm:44f077e27f6fef69e7bd834c7242b040

03、攻击检测

当攻击者尝试重置DSRM管理员密码或是指定域内用户NTLM Hash同步时,都会生成4769事件,因此可以实时监控4794事件,一旦攻击者尝试修改DSRM密码就会触发告警。

4794事件:每次更改目录还原模式(DSRM)管理员密码时,就会生成此事件,包含SID和帐户名,以及调用方工作站。

安全规则:

index=ad  EventCode=4794 | stats count earliest(_time) AS start_time latest(_time) AS end_time  by dest user| eval start_time=strftime(start_time,"%Y-%m-%d %H:%M:%S")| eval end_time=strftime(end_time,"%Y-%m-%d %H:%M:%S") | eval message="在"+start_time+"到"+end_time+"时间内,域控服务器:"+dest +" 疑似DSRM域后门行为,试图设置目录服务还原模式管理员密码"+count+"次,操作账号:"+user| table start_time end_time user message

安全告警效果如下图: